Skip to content

Releases: bazelbuild/bazel

8.2.1rc1

15 Apr 20:25
5301289
Compare
Choose a tag to compare
8.2.1rc1 Pre-release
Pre-release

Note

If you are looking for rolling releases, please visit this page.

Release 8.2.1rc1 (2025-04-15)

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

External Dependencies

  • Fixed crash when setting --noincompatible_enable_deprecated_label_apis with native.repository_name() (#25850)

Performance

  • Fix atomic writes of VirtualActionInputs on Windows (#25857)

Remote Execution

  • Fix crash on lost inputs that are symlinks (#25856)

Refer to the full list of commits for more details.

Acknowledgements:
This release contains contributions from many people at Google, as well as Fabian Meumertzheim.

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.2.0

14 Apr 17:42
Compare
Choose a tag to compare

Note

If you are looking for rolling releases, please visit this page.

Release 8.2.0 (2025-04-14)

Bazel 8.2.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.

Build Event Protocol

  • BEP will now always attempt to set exit_code on TestResult from the result of the test runner. (#25278)

Configurability

  • Add missing_toolchain_error to the platform rule, to customize error messages when a required toolchain type can't be found for a platform. (#25284)
  • Add use_target_platform_constraints attribute to the toolchain rule. Although it is not used, it enables writing custom test toolchains that will more naturally match the target platform in Bazel 9.0. (#25685)
  • Skylib's analysis_test supports testing Starlark analysis logic with --experimental_* and --incompatible_* flags. (#25536)
  • Include DefaultInfo in cquery's Starlark output. (#25719)

External Dependencies

  • The repo_name parameter of bazel_dep can now be set to None to mark it a "nodep" dependency -- that is, the bazel_dep specification is only honored if the target module already exists in the dependency graph by some other means. (#25381)
  • --experimental_downloader_config is now no longer experimental, and has been renamed to --downloader_config. The old flag name can still be used. (#25660)
  • Added sparse_checkout_patterns and sparse_checkout_file arguments to the git_repository rule. If non-empty, this will cause the rule to perform a sparse checkout of the repository, only checking out files that match the .gitignore-style patterns in this list. (#25765)
  • Literal dicts are now allowed as extra keyword args in MODULE.bazel files. This makes it possible to use repo names that are not valid Starlark identifiers in override_repo and use_repo. (#25611)

Remote Execution

  • Fix a deadlock when using --remote_cache_async and HTTP cache. (#25788)

Starlark / Build Language

  • Set generator_name, generator_function, generator_location, and the full Starlark stack for rule targets instantiated in a symbolic macro. (#25772)
  • Added a new boolean flag --incompatible_disable_autoloads_in_main_repo, defaulting to false. When set to true, autoloads specified by --incompatible_autoload_externally are fully disabled in the main repo. This flag will be flipped to true by default in Bazel 9. (#25530)

Refer to the full list of commits for more details.

Acknowledgements:

This release contains contributions from many people at Google, as well as Aaron Sky, Chuck Grindel, Fabian Meumertzheim, Jim Carroll, jjudd, Keith Lea, kxxt, Roman Salvador, and Tyler French.

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.2.0rc3

10 Apr 16:34
98f8b2e
Compare
Choose a tag to compare
8.2.0rc3 Pre-release
Pre-release

Note

If you are looking for rolling releases, please visit this page.

Release 8.2.0rc3 (2025-04-10)

Bazel 8.2.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.

Build Event Protocol

  • BEP will now always attempt to set exit_code on TestResult from the result of the test runner. (#25278)

Configurability

  • Add missing_toolchain_error to the platform rule, to customize error messages when a required toolchain type can't be found for a platform. (#25284)
  • Add use_target_platform_constraints attribute to the toolchain rule. Although it is not used, it enables writing custom test toolchains that will more naturally match the target platform in Bazel 9.0. (#25685)
  • Skylib's analysis_test supports testing Starlark analysis logic with --experimental_* and --incompatible_* flags. (#25536)
  • Include DefaultInfo in cquery's Starlark output. (#25719)

External Dependencies

  • The repo_name parameter of bazel_dep can now be set to None to mark it a "nodep" dependency -- that is, the bazel_dep specification is only honored if the target module already exists in the dependency graph by some other means. (#25381)
  • --experimental_downloader_config is now no longer experimental, and has been renamed to --downloader_config. The old flag name can still be used. (#25660)
  • Added sparse_checkout_patterns and sparse_checkout_file arguments to the git_repository rule. If non-empty, this will cause the rule to perform a sparse checkout of the repository, only checking out files that match the .gitignore-style patterns in this list. (#25765)
  • Literal dicts are now allowed as extra keyword args in MODULE.bazel files. This makes it possible to use repo names that are not valid Starlark identifiers in override_repo and use_repo. (#25611)

Remote Execution

  • Fix a deadlock when using --remote_cache_async and HTTP cache. (#25788)

Starlark / Build Language

  • Set generator_name, generator_function, generator_location, and the full Starlark stack for rule targets instantiated in a symbolic macro. (#25772)
  • Added a new boolean flag --incompatible_disable_autoloads_in_main_repo, defaulting to false. When set to true, autoloads specified by --incompatible_autoload_externally are fully disabled in the main repo. This flag will be flipped to true by default in Bazel 9. (#25530)

Refer to the full list of commits for more details.

Acknowledgements:

This release contains contributions from many people at Google, as well as Aaron Sky, Chuck Grindel, Fabian Meumertzheim, Jim Carroll, jjudd, Keith Lea, kxxt, Roman Salvador, and Tyler French.

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.2.0rc2

09 Apr 16:57
22c782d
Compare
Choose a tag to compare
8.2.0rc2 Pre-release
Pre-release

Note

If you are looking for rolling releases, please visit this page.

Release 8.2.0rc2 (2025-04-09)

Bazel 8.2.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.

Build Event Protocol

  • BEP will now always attempt to set exit_code on TestResult from the result of the test runner. (#25278)

Configurability

  • Add missing_toolchain_error to the platform rule, to customize error messages when a required toolchain type can't be found for a platform. (#25284)
  • Add use_target_platform_constraints attribute to the toolchain rule. Although it is not used, it enables writing custom test toolchains that will more naturally match the target platform in Bazel 9.0. (#25685)
  • Skylib's analysis_test supports testing Starlark analysis logic with --experimental_* and --incompatible_* flags. (#25536)
  • Include DefaultInfo in cquery's Starlark output. (#25719)

External Dependencies

  • The repo_name parameter of bazel_dep can now be set to None to mark it a "nodep" dependency -- that is, the bazel_dep specification is only honored if the target module already exists in the dependency graph by some other means. (#25381)
  • --experimental_downloader_config is now no longer experimental, and has been renamed to --downloader_config. The old flag name can still be used. (#25660)
  • Added sparse_checkout_patterns and sparse_checkout_file arguments to the git_repository rule. If non-empty, this will cause the rule to perform a sparse checkout of the repository, only checking out files that match the .gitignore-style patterns in this list. (#25765)
  • Literal dicts are now allowed as extra keyword args in MODULE.bazel files. This makes it possible to use repo names that are not valid Starlark identifiers in override_repo and use_repo. (#25611)

Remote Execution

  • Fix a deadlock when using --remote_cache_async and HTTP cache. (#25788)

Starlark / Build Language

  • Set generator_name, generator_function, generator_location, and the full Starlark stack for rule targets instantiated in a symbolic macro. (#25772)
  • Added a new boolean flag --incompatible_disable_autoloads_in_main_repo, defaulting to false. When set to true, autoloads specified by --incompatible_autoload_externally are fully disabled in the main repo. This flag will be flipped to true by default in Bazel 9. (#25530)

Refer to the full list of commits for more details.

Acknowledgements:

This release contains contributions from many people at Google, as well as Aaron Sky, Chuck Grindel, Fabian Meumertzheim, Jim Carroll, jjudd, Keith Lea, kxxt, Roman Salvador, and Tyler French.

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.2.0rc1

07 Apr 20:37
b14b557
Compare
Choose a tag to compare
8.2.0rc1 Pre-release
Pre-release

Note

If you are looking for rolling releases, please visit this page.

Release 8.2.0rc1 (2025-04-07)

Bazel 8.2.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.

Build Event Protocol

  • BEP will now always attempt to set exit_code on TestResult from the result of the test runner. (#25278)

Configurability

  • Add missing_toolchain_error to the platform rule, to customize error messages when a required toolchain type can't be found for a platform. (#25284)
  • Add use_target_platform_constraints attribute to the toolchain rule. Although it is not used, it enables writing custom test toolchains that will more naturally match the target platform in Bazel 9.0. (#25685)
  • Skylib's analysis_test supports testing Starlark analysis logic with --experimental_* and --incompatible_* flags. (#25536)
  • Include DefaultInfo in cquery's Starlark output. (#25719)

External Dependencies

  • The repo_name parameter of bazel_dep can now be set to None to mark it a "nodep" dependency -- that is, the bazel_dep specification is only honored if the target module already exists in the dependency graph by some other means. (#25381)
  • --experimental_downloader_config is now no longer experimental, and has been renamed to --downloader_config. The old flag name can still be used. (#25660)
  • Added sparse_checkout_patterns and sparse_checkout_file arguments to the git_repository rule. If non-empty, this will cause the rule to perform a sparse checkout of the repository, only checking out files that match the .gitignore-style patterns in this list. (#25765)
  • Literal dicts are now allowed as extra keyword args in MODULE.bazel files. This makes it possible to use repo names that are not valid Starlark identifiers in override_repo and use_repo. (#25611)

Starlark / Build Language

  • Set generator_name, generator_function, generator_location, and the full Starlark stack for rule targets instantiated in a symbolic macro. (#25772)
  • Added a new boolean flag --incompatible_disable_autoloads_in_main_repo, defaulting to false. When set to true, autoloads specified by --incompatible_autoload_externally are fully disabled in the main repo. This flag will be flipped to true by default in Bazel 9. (#25530)

Refer to the full list of commits for more details.

Acknowledgements:

This release contains contributions from many people at Google, as well as Aaron Sky, Chuck Grindel, Fabian Meumertzheim, Jim Carroll, jjudd, Keith Lea, kxxt, Roman Salvador, and Tyler French.

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.

7.6.1

31 Mar 17:52
Compare
Choose a tag to compare

Note

If you are looking for rolling releases, please visit this page.

Release 7.6.1 (2025-03-31)

Bazel 7.6.1 is a patch LTS release. It is fully backward compatible with Bazel 7.0 and contains selected changes by the Bazel community and Google engineers.

Remote Execution

  • Don't leak in-flight execution in RemoteSpawnCache (#25688)

Refer to the full list of commits for more details.

Acknowledgements:

This release contains contributions from many people at Google, as well as Fabian Meumertzheim.

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.

7.6.1rc1

27 Mar 18:14
0bddcab
Compare
Choose a tag to compare
7.6.1rc1 Pre-release
Pre-release

Note

If you are looking for rolling releases, please visit this page.

Release 7.6.1rc1 (2025-03-27)

Bazel 7.6.1 is a patch LTS release. It is fully backward compatible with Bazel 7.0 and contains selected changes by the Bazel community and Google engineers.

Remote Execution

  • Don't leak in-flight execution in RemoteSpawnCache (#25688)

Refer to the full list of commits for more details.

Acknowledgements:

This release contains contributions from many people at Google, as well as Fabian Meumertzheim.

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.

7.6.0

24 Mar 16:46
Compare
Choose a tag to compare

Note

If you are looking for rolling releases, please visit this page.

Release 7.6.0 (2025-03-24)

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

General

  • LCOV parsing does not break on FN lines including an end line number. (#25549)

External Deps

  • The repo_name parameter of bazel_dep can now be set to None to mark it a "nodep" dependency -- that is, the bazel_dep specification is only honored if the target module already exists in the dependency graph by some other means. (#25509)
  • Emit BAZEL_CURRENT_REPOSITORY when using @rules_cc//cc/runfiles (#25424)
  • Permit literal dicts as extra keyword args in MODULE.bazel (#25614)
  • Handle large numeric segments in Bazel module versions (#25632)

Java

  • Use runfiles path instead of root relative path in JavaStarlarkCommon.collectNativeLibsDirs (#25548)
  • Don't attempt to enable the Security Manager for jdk >= 24 (#25658)

Performance

  • build metrics: Do not set start/end of mnemonics that were only created but not executed. (#25598)

Remote Execution

  • Don't download all artifacts with BwoB when their TTL expires (#25490)
  • Avoid downloading the empty Tree message (#25489)
  • Actually fix setting the mtime on a shared disk cache. (#25473)

Refer to the full list of commits for more details.

Acknowledgements:

This release contains contributions from many people at Google, as well as Fabian Meumertzheim, James Judd, and timothyklim, Stig Rohde Døssing, and Garrett Holmstrom.

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.

7.6.0rc5

21 Mar 16:40
806a6e8
Compare
Choose a tag to compare
7.6.0rc5 Pre-release
Pre-release

Note

If you are looking for rolling releases, please visit this page.

Release 7.6.0rc5 (2025-03-21)

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

General

  • LCOV parsing does not break on FN lines including an end line number. (#25549)

External Deps

  • The repo_name parameter of bazel_dep can now be set to None to mark it a "nodep" dependency -- that is, the bazel_dep specification is only honored if the target module already exists in the dependency graph by some other means. (#25509)
  • Emit BAZEL_CURRENT_REPOSITORY when using @rules_cc//cc/runfiles (#25424)
  • Permit literal dicts as extra keyword args in MODULE.bazel (#25614)
  • Handle large numeric segments in Bazel module versions (#25632)

Java

  • Use runfiles path instead of root relative path in JavaStarlarkCommon.collectNativeLibsDirs (#25548)
  • Don't attempt to enable the Security Manager for jdk >= 24 (#25658)

Performance

  • build metrics: Do not set start/end of mnemonics that were only created but not executed. (#25598)

Remote Execution

  • Don't download all artifacts with BwoB when their TTL expires (#25490)
  • Avoid downloading the empty Tree message (#25489)
  • Actually fix setting the mtime on a shared disk cache. (#25473)

Refer to the full list of commits for more details.

Acknowledgements:

This release contains contributions from many people at Google, as well as Fabian Meumertzheim, James Judd, and timothyklim, Stig Rohde Døssing, and Garrett Holmstrom.

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.

7.6.0rc4

19 Mar 21:18
4122595
Compare
Choose a tag to compare
7.6.0rc4 Pre-release
Pre-release

Note

If you are looking for rolling releases, please visit this page.

Release 7.6.0rc4 (2025-03-19)

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

General

  • LCOV parsing does not break on FN lines including an end line number. (#25549)

External Deps

  • The repo_name parameter of bazel_dep can now be set to None to mark it a "nodep" dependency -- that is, the bazel_dep specification is only honored if the target module already exists in the dependency graph by some other means. (#25509)
  • Emit BAZEL_CURRENT_REPOSITORY when using @rules_cc//cc/runfiles (#25424)
  • Permit literal dicts as extra keyword args in MODULE.bazel (#25614)
  • Handle large numeric segments in Bazel module versions (#25632)

Java

  • Use runfiles path instead of root relative path in JavaStarlarkCommon.collectNativeLibsDirs (#25548)

Performance

  • build metrics: Do not set start/end of mnemonics that were only created but not executed. (#25598)

Remote Execution

  • Don't download all artifacts with BwoB when their TTL expires (#25490)
  • Avoid downloading the empty Tree message (#25489)
  • Actually fix setting the mtime on a shared disk cache. (#25473)

Refer to the full list of commits for more details.

Acknowledgements:

This release contains contributions from many people at Google, as well as Fabian Meumertzheim, James Judd, and timothyklim, Stig Rohde Døssing, and Garrett Holmstrom.

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.