Project: /_project.yaml Book: /_book.yaml
{% dynamic setvar source_file “site/en/contribute/index.md” %} {% include “_buttons.html” %}
There are many ways to help the Bazel project and ecosystem.
As you use Bazel, you may find things that can be improved. You can help by reporting issues{: .external} when:
bazel clean
.You can engage with the Bazel community by:
Bazel is a large project and making a change to the Bazel source code can be difficult.
You can contribute to the Bazel ecosystem by:
Before making a change, create a GitHub issue{: .external} or email bazel-discuss@{: .external}.
The most helpful contributions fix bugs or add features (as opposed to stylistic, refactoring, or “cleanup” changes). Your change should include tests and documentation, keeping in mind backward-compatibility, portability, and the impact on memory usage and performance.
To learn about how to submit a change, see the patch acceptance process.
Bazel has a large codebase with code in multiple locations. See the codebase guide for more details.
Bazel is organized as follows:
src/main/cpp
and provides the command-line interface.src/main/protobuf
.src/main/java
and src/test/java
.com.google.devtools.build.lib.rules
and in com.google.devtools.build.lib.bazel.rules
. You might want to read about the Challenges of Writing Rules first.src/main/native
.To quickly search through Bazel‘s source code, use Bazel Code Search. You can navigate Bazel’s repositories, branches, and files. You can also view history, diffs, and blame information. To learn more, see the Bazel Code Search User Guide.