Releases: bazelbuild/bazel
8.2.1rc1
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
VirtualActionInput
s 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
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 theplatform
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 thetoolchain
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 ofbazel_dep
can now be set toNone
to mark it a "nodep" dependency -- that is, thebazel_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
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 theplatform
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 thetoolchain
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 ofbazel_dep
can now be set toNone
to mark it a "nodep" dependency -- that is, thebazel_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
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 theplatform
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 thetoolchain
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 ofbazel_dep
can now be set toNone
to mark it a "nodep" dependency -- that is, thebazel_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
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 theplatform
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 thetoolchain
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 ofbazel_dep
can now be set toNone
to mark it a "nodep" dependency -- that is, thebazel_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
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
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
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
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
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.