Project: /_project.yaml Book: /_book.yaml
Bazel hosts Special Interest Groups (SIGs) to focus collaboration on particular areas and to support communication and coordination between Bazel owners, maintainers, and contributors. This policy applies to bazelbuild
{: .external}.
SIGs do their work in public. The ideal scope for a SIG covers a well-defined domain, where the majority of participation is from the community. SIGs may focus on community maintained repositories in bazelbuild
(such as language rules) or focus on areas of code in the Bazel repository (such as Remote Execution).
While not all SIGs will have the same level of energy, breadth of scope, or governance models, there should be sufficient evidence that there are community members willing to engage and contribute should the interest group be established. Before joining, review the group's work, and then get in touch with the SIG leader. Membership policies vary on a per-SIG basis.
See the complete list of Bazel SIGs{: .external}.
SIGs are intended to facilitate collaboration on shared work. A SIG is therefore:
Bazel Owners take a conservative approach to SIG creation—thanks to the ease of starting projects on GitHub, there are many avenues where collaboration can happen without the need for a SIG.
This section covers how to create a SIG.
To propose a new SIG group, first gather evidence for approval, as specified below. Some possible avenues to consider are:
Even if the need for a SIG seems self-evident, the research and consultation is still important to the success of the group.
The new group should follow the below process for chartering. In particular, it must demonstrate:
bazelbuild/community
{: .external} or from their own repository in the bazelbuild
{: .external} GitHub organization. SIGs may link to external resources if they choose to organize their work outside of the bazelbuild
GitHub organizationBefore entering the formal parts of the process, you should consult with the Bazel product team, at product@bazel.build. Most SIGs require conversation and iteration before approval.
The formal request for the new group is done by submitting a charter as a PR to bazelbuild/community
{: .external}, and including the request in the comments on the PR following the template below. On approval, the PR for the group is merged and the required resources created.
To request a new SIG, use the template in the community repo: SIG-request-template.md{: .external}.
To establish a group, you need a charter and must follow the Bazel code of conduct{: .external}. Archives of the group will be public. Membership may either be open to all without approval, or available on request, pending approval of the group administrator.
The charter must nominate an administrator. As well as an administrator, the group must include at least one person as lead (these may be the same person), who serves as point of contact for coordination as required with the Bazel product team.
Group creators must post their charter to the group mailing list. The community repository in the Bazel GitHub organization archives such documents and policies. As groups evolve their practices and conventions, they should update their charters within the relevant part of the community repository.
While not mandated, the group should choose to make use of collaboration via scheduled conference calls or chat channels to conduct meetings. Any such meetings should be advertised on the mailing list, and notes posted to the mailing list afterwards. Regular meetings help drive accountability and progress in a SIG.
Bazel product team members may proactively monitor and encourage the group to discussion and action as appropriate.
Required activities:
Optional activities:
The Bazel owners make a best effort to ensure the health of SIGs. Bazel owners occasionally request the SIG lead to report on the SIG‘s work, to inform the broader Bazel community of the group’s activity.
If a SIG no longer has a useful purpose or interested community, it may be archived and cease operation. The Bazel product team reserves the right to archive such inactive SIGs to maintain the overall health of the project, though it is a less preferable outcome. A SIG may also opt to disband if it recognizes it has reached the end of its useful life.
This content has been adopted from Tensorflow’s SIG playbook{: .external} with modifications.