| --- | |
| title: 'Bazel Special Interest Groups' | |
| --- | |
| Bazel hosts Special Interest Groups (SIGs) to focus collaboration on particular | |
| areas and to support communication and coordination between [Bazel owners, | |
| maintainers, and contributors](/versions/9.3.0/contribute/policy). This policy | |
| applies to [`bazelbuild`](http://github.com/bazelbuild). | |
| 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](https://github.com/bazelbuild/community/tree/main/sigs). | |
| ### Non-goals: What a SIG is not | |
| SIGs are intended to facilitate collaboration on shared work. A SIG is | |
| therefore: | |
| - *Not a support forum:* a mailing list and a SIG is not the same thing | |
| - *Not immediately required:* early on in a project's life, you may not know | |
| if you have shared work or collaborators | |
| - *Not free labor:* energy is required to grow and coordinate the work | |
| collaboratively | |
| 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. | |
| ## SIG lifecycle | |
| This section covers how to create a SIG. | |
| ### Research and consultation | |
| To propose a new SIG group, first gather evidence for approval, as specified | |
| below. Some possible avenues to consider are: | |
| - A well-defined problem or set of problems the group would solve | |
| - Consultation with community members who would benefit, assessing both the | |
| benefit and their willingness to commit | |
| - For existing projects, evidence from issues and PRs that contributors care | |
| about the topic | |
| - Potential goals for the group to achieve | |
| - Resource requirements of running the group | |
| Even if the need for a SIG seems self-evident, the research and consultation is | |
| still important to the success of the group. | |
| ### Create the new group | |
| The new group should follow the below process for chartering. In particular, it | |
| must demonstrate: | |
| - A clear purpose and benefit to Bazel (either around a sub-project or | |
| application area) | |
| - Two or more contributors willing to act as group leads, existence of other | |
| contributors, and evidence of demand for the group | |
| - Each group needs to use at least one publicly accessible mailing list. A SIG | |
| may reuse one of the public lists, such as | |
| [bazel-discuss](https://groups.google.com/g/bazel-discuss), ask for a list | |
| for @bazel.build, or create their own list | |
| - Resources the SIG initially requires (usually, mailing list and regular | |
| video call.) | |
| - SIGs can serve documents and files from their directory in | |
| [`bazelbuild/community`](https://github.com/bazelbuild/community) | |
| or from their own repository in the | |
| [`bazelbuild`](https://github.com/bazelbuild) GitHub | |
| organization. SIGs may link to external resources if they choose to organize | |
| their work outside of the `bazelbuild` GitHub organization | |
| - Bazel Owners approve or reject SIG applications and consult other | |
| stakeholders as necessary | |
| Before 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`](https://github.com/bazelbuild/community), | |
| 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. | |
| ### Template Request for New SIG | |
| To request a new SIG, use the template in the community repo: | |
| [SIG-request-template.md](https://github.com/bazelbuild/community/blob/main/governance/SIG-request-template.md). | |
| ### Chartering | |
| To establish a group, you need a charter and must follow the Bazel | |
| [code of conduct](https://github.com/bazelbuild/bazel/blob/HEAD/CODE_OF_CONDUCT.md). | |
| 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. | |
| ### Collaboration and inclusion | |
| 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. | |
| ### Launch a SIG | |
| Required activities: | |
| - Notify Bazel general discussion groups | |
| ([bazel-discuss](https://groups.google.com/g/bazel-discuss), | |
| [bazel-dev](https://groups.google.com/g/bazel-dev)). | |
| Optional activities: | |
| - Create a blog post for the Bazel blog | |
| ### Health and termination of SIGs | |
| 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. | |
| ## Note | |
| *This content has been adopted from Tensorflow’s | |
| [SIG playbook](https://www.tensorflow.org/community/sig_playbook) | |
| with modifications.* |