Project: /_project.yaml Book: /_book.yaml translation: human page_type: lcat
Contribution policy
{% include “_buttons.html” %}
This page covers Bazel's governance model and contribution policy.
Governance model
The Bazel project{: .external} 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{: .external} 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{: .external} GitHub organization.
Contributor roles
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 Bazel project.
- 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.
Contribution policy {:#contribution-policy}
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{: .external}.
- 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
bazelbuild
repositories 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.