This page covers Bazel's governance model and contribution policy.
The Bazel project is led and managed by Google and has a large community of contributors outside of Google. Some Bazel components (such as specific rules repositories under the bazelbuild organization) are led, maintained, and managed by members of the community. The Google Bazel team reviews suggestions to add community-owned repositories (such as rules) to the bazelbuild GitHub organization.
Here are outlines of the roles in the Bazel project, including their responsibilities:
- Owners: The Google Bazel team. Owners are responsible for:
- Strategy, maintenance, and leadership of the Bazel project.
- Building and maintaining Bazel's core functionality.
- Appointing Maintainers and approving new repositories.
- Maintainers: The Google Bazel team and designated GitHub users.
Maintainers are responsible for:
- Building and maintaining the primary functionality of their repository.
- Reviewing and approving contributions to areas of the Bazel code base.
- Supporting users and contributors with timely and transparent issue management, PR review, and documentation.
- Releasing, testing and collaborating with Bazel Owners.
- Contributors: All users who contribute code or documentation to the
- Creating well-written PRs to contribute to Bazel's codebase and documentation.
- Using standard channels, such as GitHub Issues, to propose changes and report issues.
Becoming a Maintainer
Bazel Owners may appoint Maintainers to lead well-defined areas of code, such as rule sets. Contributors with a record of consistent, responsible past contributions who are planning major contributions in the future could be considered to become qualified Maintainers.
The Bazel project accepts contributions from external contributors. Here are the contribution policies for Google-managed and Community-managed areas of code.
- Licensing. All Maintainers and Contributors must sign the Google’s Contributor License Agreement.
- Contributions. Owners and Maintainers should make every effort to accept
worthwhile contributions. All contributions must be:
- Well written and well tested
- Discussed and approved by the Maintainers of the relevant area of code. Discussions and approvals happen on GitHub Issues and in GitHub PRs. Larger contributions require a design review.
- Added to Bazel's Continuous Integration system if not already present.
- Supportable and aligned with Bazel product direction
- Code review. All changes in all
bazelbuildrepositories require review:
- All PRs must be approved by an Owner or Maintainer.
- Only Owners and Maintainers can merge PRs.
- Compatibility. Owners may need to reject or request modifications to PRs in the unlikely event that the change requires substantial modifications to internal Google systems.
- Documentation. Where relevant, feature contributions should include documentation updates.
For more details on contributing to Bazel, see our contribution guidelines.