Bazel 6.0 launched!
Today, we launch Bazel 6.0 LTS! Bazel 6.0 delivers many requested customer updates to simplify Bazel usage and eliminate common Android app development roadblocks.
Bzlmod becomes Generally available
Bzlmod automatically resolves transitive dependencies, allowing projects to scale while staying fast and resource-efficient. In development since 2021, Bzlmod enters general availability with Bazel 6.0.
- Pipelines to automatically check common dependencies and rulesets into the Bazel Central Registry.
- Updated Bzlmod Migration Guide includes scripts and documentation for migration.
- Added Bzlmod support for
rules_jvm_external, allowing users to download Maven dependencies for Java projects.
Build Android apps with Bazel
By popular customer request, Bazel 6.0 uses D8 for dexing and desugaring by default. With D8, you leverage the latest Android tooling when building mobile apps. Through community contributions, Bazel Android builds now also support a variety of quality-of-life and efficiency improvements, such as persistent workers for resource processing and (optional) manifest permission merging.
Our Developer Satisfaction survey indicated that rule authors want support for improved toolchain development. Bazel 6.0 allows authors to write rules using an optional, high performance toolchains when available, with a fallback implementation for other platforms.
New build performance profiles
Optimize for build productivity with new system and CPU related metrics data.
- system load average (
- worker memory usage (
- system network usage (
.bzl dependencies with load visibility
Now, rule and macro authors can declare a load visibility for their
.bzl files by calling the new visibility() built-in function. This restricts what parts of the workspace may
.bzl file, so that macros and rules do not automatically become public APIs.