We are happy to announce Bazel’s first Long Term Support (LTS) release, Bazel 4.0. To serve as a solid foundation for long-term support, Bazel 4.0 includes a number of updates intended to make it easier to use and extend the release's usefulness throughout the LTS track’s lifetime. These updates can be grouped into the following themes:
- Usability: Making Bazel easier to understand or harder to misconfigure by accident.
- Consistency: Removing inconsistent or easily misused behaviors in Starlark and the Starlark build API.
- Openness: Allowing definitions and rules to evolve independently of Bazel releases by moving them into separate Github repositories.
- Extensibility: Migrating built-in native rules to Starlark to support extensibility of rulesets.
- Stability: Updates to native language support for C++ and proto, removing obsolete, incorrect, or otherwise problematic behaviors.
Bazel 4.0 also supports these new features:
- Shorthand forms for Starlark-defined flags to make them easier to type on the command line with a familiar syntax.
- Building Java code targeting JDK 15.
- Skipping incompatible targets per platform to allow running
bazel test //…
. - Multiplex persistent workers for Javac actions to reduce Bazel’s resource footprint while building Java.
Remember that you can stay on your current release if you are not ready to move to Bazel 4.0.
We are excited about Bazel 4.0's new features improving Bazel's usability, consistency, and openness for the Bazel community. For a detailed list of incompatible flags flipping in Bazel 4.0, click here. Watch the Bazel blog for the Bazel 4.0 release notes for more detailed technical information.