Release Notes:
CLI: + Add a new optional param to fail() to allow pretty-printing user erro… (#28817)
Configurability: + Fix NPE caused by –repo_env with no value set (https://github.com/bazelbuild/bazel/pull/28606) (#28640) + Fix visibility for implicit deps of parent rules (https://github.com/bazelbuild/bazel/pull/28627) (#28687) + Refactor flag aliases to be passed around as labels (#28835) + rules_python flag alias fixes (#28854) + Support external repository labels in package_group (https://github.com/bazelbuild/bazel/pull/28811) (#28895) + Emit helpful error when using removed providers (#28360)
Core: + Fix typo in SkyframeActionExecutor: Use lastEndTime instead of firstStartTime. (#28397) + Prevent a Blaze crash when an aspect uses a test’s TestRunner action. (#28756)
ExternalDeps: + Revert “Upgrade Apache Commons Compress from 1.26.1 to 1.28.0” (https… (#28550) + Fix disk cache failures on concurrent read-write access on Windows (h… (#28552) + Error on single_version_override patch with wrong patch_strip (https://github.com/bazelbuild/bazel/pull/28566) (#28622) + Force rctx.{download_and,}extract to create user-readable files (https://github.com/bazelbuild/bazel/pull/28531) (#28649) + Fix StarlarkBaseExternalContext#checkInOutputDirectory (https://github.com/bazelbuild/bazel/pull/28581) (#28677) + Update and minimize the JDK for Windows arm64 builds (https://github.com/bazelbuild/bazel/pull/28632) (#28714) + Only use workspace facts for validation with –lockfile_mode=error (h… (#28767) + Replant symlinks before caching repos (https://github.com/bazelbuild/bazel/pull/28582) (#28785)
General: + Release 9.0.0 (2026-01-20) + Update all embedded JDKs to 25.0.2 (https://github.com/bazelbuild/bazel/pull/28543) (#28548) + Update buildozer to v8.5.1 (https://github.com/bazelbuild/bazel/pull/28650) (#28679)
OSS: + Support proto_library targets in @bazel_tools//src/main/protobuf (https://github.com/bazelbuild/bazel/pull/28428) (#28502) + Patch rules_graalvm for Bazel 9 (#28908)
Performance: + Fix overflow in network metrics counters (https://github.com/bazelbuild/bazel/pull/28856) (#28864)
Remote-Exec: + Fix a deadlock in RemotePathChecker when using a disk cache (https://github.com/bazelbuild/bazel/pull/28416) (#28465) + Introduce RunfilesProxyArtifactValue. (#28516)
Rules-CPP: + Fix clang warnings on Windows (https://github.com/bazelbuild/bazel/pull/28748) (#28775) + Cherry-pick cfedf9c into 9.0.1 (#28889)
Rules-Python: + Add deprecation warning to –build_python_zip (#28586)
Acknowledgements:
This release contains contributions from many people at Google, as well as bazel.build machine account, Fabian Meumertzheim, Greg, Joseph Gette, Keith Smiley, Ted Kaplan, Will Stranton.
Notice: Bazel installers contain binaries licensed under the GPLv2 with Classpath exception. Those installers should always be redistributed along with the source code.
Some versions of Bazel contain a bundled version of OpenJDK. The license of the bundled OpenJDK and other open-source components can be displayed by running the command bazel license. The vendor and version information of the bundled OpenJDK can be displayed by running the command bazel info java-runtime. The binaries and source-code of the bundled OpenJDK can be downloaded from our mirror server.
Security: All our binaries are signed with our public key 3D5919B448457EE0.