Google provides governance and maintenance of the "core" Bazel engine, in an Open-Source repository https://github.com/bazelbuild/bazel. There is a major release every year or so. This course is updated for Bazel 8, which was released in December 2024.
In the past, Bazel had support for some languages built-in, such as Python, C++ and Java. This was historical baggage and has been largely removed, so you can now assume that Bazel core provides no built-in support for any language.
"Rulesets" provide the plugins to add support for more languages and frameworks. These can be written by anyone.
Google provides a few rulesets in the https://github.com/bazelbuild GitHub Organization. The quality of maintenance and releases varies a lot. Some are "abandonware" - so do not assume that a repository under the bazelbuild
org is “official” or actively maintained.
Always take care when depending on third-party code, including Bazel rulesets! Note that as of Fall 2024, Google is donating some of their repositories to the Linux Foundation. See this spreadsheet.
As of October 2024, 23% of the ruleset releases on the Bazel Central Registry are from Aspect!
Of course, there is ongoing work as new versions are released. A language may have a new release, which means the compiler has a new version and may require an upgrade of some runtime system library like glibc
. Then the Bazel rulesets need to be released with support for it, and those need to keep up with releases of Bazel itself. This "churn" contributes to the Total Cost of Ownership of the build system.
In 2024, The Linux Foundation took over governance of the bazel-contrib
GitHub org at https://github.com/bazel-contrib. Aspect led this transformation and has donated some of our own rulesets. We are also significant maintainers and contributors. However this org relies on donations from companies like yours. Please consider asking your manager about joining the funders at https://opencollective.com/bazel-rules-authors-sig.