blob: 1a21fb2abf15533461a2072f7ab66b7f38249776 [file] [log] [blame] [view]
Project: /_project.yaml
Book: /_book.yaml
# Patch Acceptance Process
{% include "_buttons.html" %}
This page outlines how contributors can propose and make changes to the Bazel
code base.
1. Read the [Bazel Contribution policy](/contribute/policy).
1. Create a [GitHub issue](https://github.com/bazelbuild/bazel/){: .external} to
discuss your plan and design. Pull requests that change or add behavior
need a corresponding issue for tracking.
1. If you're proposing significant changes, write a
[design document](/contribute/design-documents).
1. Ensure you've signed a [Contributor License
Agreement](https://cla.developers.google.com){: .external}.
1. Prepare a git commit that implements the feature. Don't forget to add tests
and update the documentation. If your change has user-visible effects, please
[add release notes](/contribute/release-notes). If it is an incompatible change,
read the [guide for rolling out breaking changes](/contribute/breaking-changes).
1. Create a pull request on
[GitHub](https://github.com/bazelbuild/bazel/pulls){: .external}. If you're new to GitHub,
read [about pull
requests](https://help.github.com/articles/about-pull-requests/){: .external}. Note that
we restrict permissions to create branches on the main Bazel repository, so
you will need to push your commit to [your own fork of the
repository](https://help.github.com/articles/working-with-forks/){: .external}.
1. A Bazel maintainer should assign you a reviewer within two business days
(excluding holidays in the USA and Germany). If you aren't assigned a
reviewer in that time, you can request one by emailing
[bazel-discuss@googlegroups.com]
(mailto:bazel-discuss@googlegroups.com){: .external}.
1. Work with the reviewer to complete a code review. For each change, create a
new commit and push it to make changes to your pull request. If the review
takes too long (for instance, if the reviewer is unresponsive), send an email to
[bazel-discuss@googlegroups.com]
(mailto:bazel-discuss@googlegroups.com){: .external}.
1. After your review is complete, a Bazel maintainer applies your patch to
Google's internal version control system.
This triggers internal presubmit checks
that may suggest more changes. If you haven't expressed a preference, the
maintainer submitting your change adds "trivial" changes (such as
[linting](https://en.wikipedia.org/wiki/Lint_(software))) that don't affect
design. If deeper changes are required or you'd prefer to apply
changes directly, you and the reviewer should communicate preferences
clearly in review comments.
After internal submission, the patch is exported as a Git commit,
at which point the GitHub pull request is closed. All final changes
are attributed to you.