Skip to content

Release history

Bazel releases

a fast, scalable, multi-language and extensible build system

All releases

9 shown

Review required
9.1.1 Breaking risk
Breaking upgrade

CcInfo removal

8.7.0 New feature
Notable features
  • `package_group` now accepts labels with external repositories in the `packages` attribute.
  • Added `strip_components` attribute to `extract`, `download_and_extract`, and `http_archive` for path stripping on extraction.
  • Experimental flag `--experimental_remote_cache_chunking` enables chunked reads/writes of large blobs to remote cache (server support required).
Full changelog

[!NOTE]
If you are looking for rolling releases, please visit this page.

Release 8.7.0 (2026-05-07)

Bazel 8.7.0 is a minor LTS release. It is fully backward compatible with Bazel 8.0 and contains selected changes by the Bazel community and Google engineers.

Configurability

  • Fix launcher/launcher_maker for cross build, e.g. build windows binary on linux machine. (#29240)

External Dependencies

  • package_group now supports labels with external repositories in the packages attribute (#28896).
  • Added SOCKS proxy support. Bazel now accepts socks://, socks4://, and socks5:// URLs in HTTPS_PROXY/HTTP_PROXY environment variables and related system properties. (#29305)
  • Adds the strip_components attribute to extract/download_and_extract/http_archive to allow stripping of path components when extracting files. (#29367)

Remote Execution

  • Bazel now has experimental support for --rewind_lost_inputs, which can rerun actions within a single build to recover from (remote or disk) cache evictions. (#28971)
  • Added --experimental_remote_cache_chunking flag to read and write large blobs to/from the remote cache in chunks. Requires server support. (#28900)

Starlark / Build Language

  • string.splitlines() no longer treat u+0085 as a newline character when internal_starlark_utf_8_byte_strings is set (which defaults to true) (#28932)

Acknowledgments

This release contains contributions from many people at Google, as well as Boleyn Su, Fabian Meumertzheim, H5-O5, Jacob Nowjack, Justin Won, Keith Smiley, Mike Lundy, Sarad Pant, and 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.

9.1.0 Breaking risk
Notable features
  • Experimental --rewind_lost_inputs flag to recover from cache evictions
  • Added --experimental_remote_cache_chunking for large blob remote cache operations
  • package_group now supports labels with external repositories
Full changelog

[!NOTE]
If you are looking for rolling releases, please visit this page.

Release 9.1.0 (2026-04-20)

Bazel 9.1.0 is a minor LTS release. It is fully backward compatible with Bazel 9.0 and contains selected changes by the Bazel community and Google engineers.

IMPORTANT

Compatibility Note: CcInfo removal and rules_go

If you encounter the error "The CcInfo symbol has been removed", this is due to an intentional change in Bazel 9 regarding C++ Starlarkification. While this change was present in 9.0.0, a bug fixed in 9.0.1 (#28360) now correctly surfaces this error instead of failing silently or with a confusing message. To fix this, please upgrade rules_go, rules_nodejs or any broken rulesets. For example,

# Add repo_name = None if you don't directly depend on them.
bazel_dep(name = "rules_go", version = "0.59.0") 
bazel_dep(name = "rules_nodejs", version = "6.7.3")

CLI

  • Reporting of cached test results can now be suppressed with --test_summary=short_uncached or --test_summary=detailed_uncached. (#29263)

Configurability

  • Fix launcher/launcher_maker for cross build, e.g. build windows binary on linux machine. (#29239)

External Deps

  • The `compatibility_level` and `max_compatibility_level` attributes of `module` in MODULE.bazel are now no-ops. Module maintainers should stop specifying those attributes and provide clear build time error messages and actionable migration paths when making major breaking changes. (#28616)
  • `package_group` now supports labels with external repositories in the `packages` attribute. (#28893)
  • `rctx.symlink` now implicitly watches the target if it falls back to a copy. (#28741)
  • The local and remote repo contents cache now include the host OS and CPU architecture in the cache key. (#29195)
  • The remote repo contents cache now supports all reproducible repo rules. (#29225)

Remote Execution

  • Bazel now has experimental support for `--rewind_lost_inputs`, which can rerun actions within a single build to recover from (remote or disk) cache evictions. (#28958)
  • Added `--experimental_remote_cache_chunking` flag to read and write large blobs to/from the remote cache in chunks. Requires server support. (#28903)

Starlark / Build Language

  • `string.splitlines()` no longer incorrectly treats u+0085 (`NEL`) as a newline character (#28931)

Acknowledgments

This release contains contributions from many people at Google, as well as Armando Montanez, ashutosh0x, Boleyn Su, Fabian Meumertzheim, H5-O5, Joseph Gette, Keith Smiley, Paul Tarjan, Ted Kaplan, Tyler French, and 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.

8.6.0 New feature
Notable features
  • Test summary filtering options
  • Symlink target_type support
6.6.0 Bug fix

Minor LTS release fixing macOS Tahoe compatibility. Updated minimum glibc requirement to 2.25 on Linux.

9.0.0 Breaking risk
Breaking changes
  • WORKSPACE logic removed
  • C++ rules moved to rules_cc
  • --incompatible_autoload_externally defaults to empty string
Notable features
  • Bzlmod always enabled
  • Protobuf prebuilt compiler support
8.5.1 Bug fix

Patch LTS release fixing skyframe error checking, coverage-related conflicts, and repository cache issues. Improved remote execution with local fallback option.

Beta — feedback welcome: [email protected]