blob: c6d07fc9466ed187319db62bb28f24c4e23153fb [file] [log] [blame] [view] [edit]
Project: /_project.yaml
Book: /_book.yaml
# Bazel Special Interest Groups
{% include "_buttons.html" %}
Bazel hosts Special Interest Groups (SIGs) to focus collaboration on particular
areas and to support communication and coordination between [Bazel owners,
maintainers, and contributors](/contribute/policy). This policy
applies to [`bazelbuild`](http://github.com/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](https://github.com/bazelbuild/community/tree/main/sigs){: .external}.
### 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 creationthanks 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){: .external}
or from their own repository in the
[`bazelbuild`](https://github.com/bazelbuild){: .external} 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){: .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.
### 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){: .external}.
### 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){: .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.
### 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){: .external},
[bazel-dev](https://groups.google.com/g/bazel-dev){: .external}).
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 Tensorflows
[SIG playbook](https://www.tensorflow.org/community/sig_playbook){: .external}
with modifications.*