Releases: bazelbuild/bazel
7.2.0
Note
If you are looking for rolling releases, please visit this page.
Release 7.2.0 (2024-06-10)
Bazel 7.2.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.
C++ / Objective-C
- The default Unix C++ toolchain now supports the
parse_headers
feature to validate header files with--process_headers_in_dependencies
. (#22369)
CLI
- Bazel on Linux and BSD now respects the XDG_CACHE_HOME environment variable instead of assuming that ~/.cache/bazel is writable. (#21817)
Configurability
- aquery:
//foo:bar
now means "all configured targets with label//foo:bar
" instead of "choose an arbitrary configured target with label//foo:bar
". This is in line with cquery behavior. (#22135) - Starlark command-line flags can now be referred to through
alias
targets. (#22212)
External Deps
- Added a new flag
--incompatible_disable_native_repo_rules
to disable native repo rule usage in WORKSPACE. All native repo rules now have a Starlark counterpart that can be used in both WORKSPACE and Bzlmod; see #22080 for more details. (#22203) - The format for
MODULE.bazel.lock
is now less likely to result in merge conflicts and is updated incrementally, with only new files downloaded from registries and existing ones taken from the repository cache (if configured). (#22351) - Added a new
include()
directive toMODULE.bazel
files, which allows the root module file to be divided into multiple segments. (#22204) - Fixed certain deadlocks in repo fetching with worker threads (
--experimental_worker_for_repo_fetching=auto
). (#22261, #22573) - bzlmod
git_override
now accepts thestrip_prefix
arg and passes it to the underlyinggit_repository
call. (#22137) - The source.json file in registries now supports the overlay attribute in addition to patches. http_archive now has two more attributes, remote_file_urls and remote_file_integrity, to support this use case. (#22325, #22525)
print
statements in module files are now only executed for the root module and modules subject to non-registry overrides (e.g.local_path_override
). (#22263)- The new
refresh
value for--lockfile_mode
behaves like theupdate
mode, but additionally forces a refresh of mutable registry content (yanked versions and missing module versions) when switched to or from time to time while enabled. (#22371) bazel fetch
now more reliably fetches repos required for a build by triggering the analysis phase. (#21841)Label
instances passed toprint
orfail
as positional arguments are now formatted with apparent repository names (optimized for human readability). (#22460)- Changes to environment variables read via
mctx.getenv
now correctly invalidate module extensions. (#22541) - Git merge conflicts in
MODULE.bazel.lock
files can be resolved automatically. See https://bazel.build/external/lockfile#automatic-resolution for the required setup. (#22650)
Local Execution
- Paths in the Linux sandbox are now again identical to those outside the sandbox, even with
--incompatible_sandbox_hermetic_tmp
. (#22407)
Remote Execution
- The combined coverage report produced via
--combined_report=lcov
is now announced on the BES via the newCoverageReport
event. (#22327) - The compact and full execution logs now contain start times for spawns (if available). (#22341)
- Added a new flag
--incompatible_modify_execution_info_additive
, which causes the--modify_execution_info
flag to become additive when specified multiple times. (#22316) - Added new flags
--experimental_remote_output_service
and--experimental_remote_output_service_output_path_prefix
for remote output service
Starlark / Build Language
- Starlark
min
andmax
buitins now allow akey
callback, similarly tosorted
. (#21960) native.package_relative_label
can now be used in rule initializers.
Refer to the full list of commits for more details.
Acknowledgements:
This release contains contributions from many people at Google, as well as Brentley Jones, Cameron Martin, Daniel Wagner-Hall, Douglas Thor, Fabian Meumertzheim, George Gensure, Isaac Torres, Keith Smiley, Mark Elliot, Romain Chossart, Son Luong Ngoc, Spencer Putt, and Thomas Weischuh.
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.2.0rc3
Note
If you are looking for rolling releases, please visit this page.
Release 7.2.0rc3 (2024-06-05)
Bazel 7.2.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.
C++ / Objective-C
- The default Unix C++ toolchain now supports the
parse_headers
feature to validate header files with--process_headers_in_dependencies
. (#22369)
CLI
- Bazel on Linux and BSD now respects the XDG_CACHE_HOME environment variable instead of assuming that ~/.cache/bazel is writable. (#21817)
Configurability
- aquery:
//foo:bar
now means "all configured targets with label//foo:bar
" instead of "choose an arbitrary configured target with label//foo:bar
". This is in line with cquery behavior. (#22135) - Starlark command-line flags can now be referred to through
alias
targets. (#22212)
External Deps
- Added a new flag
--incompatible_disable_native_repo_rules
to disable native repo rule usage in WORKSPACE. All native repo rules now have a Starlark counterpart that can be used in both WORKSPACE and Bzlmod; see #22080 for more details. (#22203) - The format for
MODULE.bazel.lock
is now less likely to result in merge conflicts and is updated incrementally, with only new files downloaded from registries and existing ones taken from the repository cache (if configured). (#22351) - Added a new
include()
directive toMODULE.bazel
files, which allows the root module file to be divided into multiple segments. (#22204) - Fixed certain deadlocks in repo fetching with worker threads (
--experimental_worker_for_repo_fetching=auto
). (#22261, #22573) - bzlmod
git_override
now accepts thestrip_prefix
arg and passes it to the underlyinggit_repository
call. (#22137) - The source.json file in registries now supports the overlay attribute in addition to patches. http_archive now has two more attributes, remote_file_urls and remote_file_integrity, to support this use case. (#22325, #22525)
print
statements in module files are now only executed for the root module and modules subject to non-registry overrides (e.g.local_path_override
). (#22263)- The new
refresh
value for--lockfile_mode
behaves like theupdate
mode, but additionally forces a refresh of mutable registry content (yanked versions and missing module versions) when switched to or from time to time while enabled. (#22371) bazel fetch
now more reliably fetches repos required for a build by triggering the analysis phase. (#21841)Label
instances passed toprint
orfail
as positional arguments are now formatted with apparent repository names (optimized for human readability). (#22460)- Changes to environment variables read via
mctx.getenv
now correctly invalidate module extensions. (#22541) - Git merge conflicts in
MODULE.bazel.lock
files can be resolved automatically. See https://bazel.build/external/lockfile#automatic-resolution for the required setup. (#22650)
Local Execution
- Paths in the Linux sandbox are now again identical to those outside the sandbox, even with
--incompatible_sandbox_hermetic_tmp
. (#22407)
Remote Execution
- The combined coverage report produced via
--combined_report=lcov
is now announced on the BES via the newCoverageReport
event. (#22327) - The compact and full execution logs now contain start times for spawns (if available). (#22341)
- Added a new flag
--incompatible_modify_execution_info_additive
, which causes the--modify_execution_info
flag to become additive when specified multiple times. (#22316) - Added new flags
--experimental_remote_output_service
and--experimental_remote_output_service_output_path_prefix
for remote output service
Starlark / Build Language
- Starlark
min
andmax
buitins now allow akey
callback, similarly tosorted
. (#21960) native.package_relative_label
can now be used in rule initializers.
Refer to the full list of commits for more details.
Acknowledgements:
This release contains contributions from many people at Google, as well as Brentley Jones, Cameron Martin, Daniel Wagner-Hall, Douglas Thor, Fabian Meumertzheim, George Gensure, Isaac Torres, Keith Smiley, Mark Elliot, Romain Chossart, Son Luong Ngoc, Spencer Putt, and Thomas Weischuh.
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.2.0rc2
Note
If you are looking for rolling releases, please visit this page.
Release 7.2.0rc2 (2024-05-29)
Bazel 7.2.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.
C++ / Objective-C
- The default Unix C++ toolchain now supports the
parse_headers
feature to validate header files with--process_headers_in_dependencies
. (#22369)
CLI
- Bazel on Linux and BSD now respects the XDG_CACHE_HOME environment variable instead of assuming that ~/.cache/bazel is writable. (#21817)
Configurability
- aquery:
//foo:bar
now means "all configured targets with label//foo:bar
" instead of "choose an arbitrary configured target with label//foo:bar
". This is in line with cquery behavior. (#22135) - Starlark command-line flags can now be referred to through
alias
targets. (#22212)
External Deps
- Added a new flag
--incompatible_disable_native_repo_rules
to disable native repo rule usage in WORKSPACE. All native repo rules now have a Starlark counterpart that can be used in both WORKSPACE and Bzlmod; see #22080 for more details. (#22203) - The format for
MODULE.bazel.lock
is now less likely to result in merge conflicts and is updated incrementally, with only new files downloaded from registries and existing ones taken from the repository cache (if configured). (#22351) - Added a new
include()
directive toMODULE.bazel
files, which allows the root module file to be divided into multiple segments. (#22204) - Fixed certain deadlocks in repo fetching with worker threads (
--experimental_worker_for_repo_fetching=auto
). (#22261, #22573) - bzlmod
git_override
now accepts thestrip_prefix
arg and passes it to the underlyinggit_repository
call. (#22137) - The source.json file in registries now supports the overlay attribute in addition to patches. http_archive now has two more attributes, remote_file_urls and remote_file_integrity, to support this use case. (#22325, #22525)
print
statements in module files are now only executed for the root module and modules subject to non-registry overrides (e.g.local_path_override
). (#22263)- The new
refresh
value for--lockfile_mode
behaves like theupdate
mode, but additionally forces a refresh of mutable registry content (yanked versions and missing module versions) when switched to or from time to time while enabled. (#22371) bazel fetch
now more reliably fetches repos required for a build by triggering the analysis phase. (#21841)Label
instances passed toprint
orfail
as positional arguments are now formatted with apparent repository names (optimized for human readability). (#22460)- Changes to environment variables read via
mctx.getenv
now correctly invalidate module extensions. (#22541)
Local Execution
- Paths in the Linux sandbox are now again identical to those outside the sandbox, even with
--incompatible_sandbox_hermetic_tmp
. (#22407)
Remote Execution
- The combined coverage report produced via
--combined_report=lcov
is now announced on the BES via the newCoverageReport
event. (#22327) - The compact and full execution logs now contain start times for spawns (if available). (#22341)
- Added a new flag
--incompatible_modify_execution_info_additive
, which causes the--modify_execution_info
flag to become additive when specified multiple times. (#22316) - Added new flags
--experimental_remote_output_service
and--experimental_remote_output_service_output_path_prefix
for remote output service
Starlark / Build Language
- Starlark
min
andmax
buitins now allow akey
callback, similarly tosorted
. (#21960) native.package_relative_label
can now be used in rule initializers.
Refer to the full list of commits for more details.
Acknowledgements:
This release contains contributions from many people at Google, as well as Brentley Jones, Cameron Martin, Daniel Wagner-Hall, Douglas Thor, Fabian Meumertzheim, George Gensure, Isaac Torres, Keith Smiley, Mark Elliot, Romain Chossart, Son Luong Ngoc, Spencer Putt, and Thomas Weischuh.
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.2.0rc1
Note
If you are looking for rolling releases, please visit this page.
Release 7.2.0rc1 (2024-05-15)
Baseline: 3e4e2af
Bazel 7.2.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.
C++ / Objective-C
- The default Unix C++ toolchain now supports the
parse_headers
feature to validate header files with--process_headers_in_dependencies
. (#22369)
Configurability
- aquery:
//foo:bar
now means "all configured targets with label//foo:bar
" instead of "choose an arbitrary configured target with label//foo:bar
". This is in line with cquery behavior. (#22135) - Starlark command-line flags can now be referred to through
alias
targets. (#22212)
External Deps
- Added a new flag
--incompatible_disable_native_repo_rules
to disable native repo rule usage in WORKSPACE. All native repo rules now have a Starlark counterpart that can be used in both WORKSPACE and Bzlmod; see #22080 for more details. (#22203) - The format for
MODULE.bazel.lock
is now less likely to result in merge conflicts and is updated incrementally, with only new files downloaded from registries and existing ones taken from the repository cache (if configured). (#22351) - bzlmod
git_override
now accepts thestrip_prefix
arg and passes it to the underlyinggit_repository
call. (#22137) - Added a new
include()
directive toMODULE.bazel
files, which allows the root module file to be divided into multiple segments. (#22204)- Known issue: bazel mod tidy doesn't yet work with include()d segments. Will be fixed in rc2.
- Fixed certain deadlocks in repo fetching with worker threads (
--experimental_worker_for_repo_fetching=auto
). (#22261) print
statements in module files are now only executed for the root module and modules subject to non-registry overrides (e.g.local_path_override
). (#22263)- The new
refresh
value for--lockfile_mode
behaves like theupdate
mode, but additionally forces a refresh of mutable registry content (yanked versions and missing module versions) when switched to or from time to time while enabled. (#22371) bazel fetch
now more reliably fetches repos required for a build by triggering the analysis phase. (#21841)
Remote Execution
- The combined coverage report produced via
--combined_report=lcov
is now announced on the BES via the newCoverageReport
event. (#22327) - The compact and full execution logs now contain start times for spawns (if available). (#22341)
- Added a new flag
--incompatible_modify_execution_info_additive
, which causes the--modify_execution_info
flag to become additive when specified multiple times. (#22316) - Added new flags
--experimental_remote_output_service
and--experimental_remote_output_service_output_path_prefix
for remote output service
Starlark / Build Language
- Starlark
min
andmax
buitins now allow akey
callback, similarly tosorted
. (#21960) native.package_relative_label
can now be used in rule initializers.
Refer to the full list of commits for more details.
Acknowledgements:
This release contains contributions from many people at Google, as well as Brentley Jones, Cameron Martin, Daniel Wagner-Hall, Douglas Thor, Fabian Meumertzheim, George Gensure, Mark Elliot, Romain Chossart, Son Luong Ngoc, Spencer Putt, and Thomas Weischuh.
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.1.2
Note
If you are looking for rolling releases, please visit this page.
Release 7.1.2 (2024-05-08)
Baseline: 3e4e2af
Bazel 7.1.2 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.
Android
- Set public visibility for R8 desugar binary (#22176)
External Deps
- Fixed excessive repo fetching caused by changes to
.netrc
(#22186)
Remote Execution
- Don't upload remote input to remote cache (#21941)
- Implement RemoteActionFileSystem#statIfFound correctly when the path cannot be canonicalized (#21889)
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.1.2rc2
Note
If you are looking for rolling releases, please visit this page.
Release 7.1.2rc2 (2024-05-08)
Baseline: 3e4e2af
Bazel 7.1.2 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.
Android
- Set public visibility for R8 desugar binary (#22176)
External Deps
- Fixed excessive repo fetching caused by changes to
.netrc
(#22186)
Remote Execution
- Don't upload remote input to remote cache (#21941)
- Implement RemoteActionFileSystem#statIfFound correctly when the path cannot be canonicalized (#21889)
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.1.2rc1
Note
If you are looking for rolling releases, please visit this page.
Release 7.1.2rc1 (2024-05-06)
Baseline: 3e4e2af
Bazel 7.1.2 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.
External Deps
- Fixed excessive repo fetching caused by changes to
.netrc
(#22186)
Remote Execution
- Don't upload remote input to remote cache (#21941)
- Implement RemoteActionFileSystem#statIfFound correctly when the path cannot be canonicalized (#21889)
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.1.1
Note
If you are looking for rolling releases, please visit this page.
Release 7.1.1 (2024-03-21)
Baseline: 9b39cca
Bazel 7.1.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.
External Deps
- Fix
bazel mod tidy
failure with no changes (#21662) - Allow any canonical repo name to be used with
bazel mod show_repo
(#21694) - Fix two
bazel mod tidy
crashes (#21700) - Reverted the 7.1.0 change to make
bazel fetch
usecquery
under the hood (#21735)
Local Execution
- Also inject a failure for createWritableDirectory when testing that ActionOutputDirectoryHelper propagates exceptions. (#21683)
- Fix race condition and add more logging for null entry error message (#21692)
- Fix sandbox cleanup crashing after server restart (#21733)
Performance
- Actually use shouldPublish() to determine whether to publish the execution log to the BEP. (#21671)
- Use execution info instead of hard-coded mnemonics for Java path mapping (#21703)
Java
- Let native Turbine image find
ct.sym
with non-hermeticjava_runtime
(#21670)
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.1.1rc2
Note
If you are looking for rolling releases, please visit this page.
Release 7.1.1rc2 (2024-03-19)
Baseline: 9b39cca
Bazel 7.1.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.
External Deps
- Fix
bazel mod tidy
failure with no changes (#21662) - Allow any canonical repo name to be used with
bazel mod show_repo
(#21694) - Fix two
bazel mod tidy
crashes (#21700) - Reverted the 7.1.0 change to make
bazel fetch
usecquery
under the hood (#21735)
Local Execution
- Also inject a failure for createWritableDirectory when testing that ActionOutputDirectoryHelper propagates exceptions. (#21683)
- Fix race condition and add more logging for null entry error message (#21692)
- Fix sandbox cleanup crashing after server restart (#21733)
Performance
- Actually use shouldPublish() to determine whether to publish the execution log to the BEP. (#21671)
- Use execution info instead of hard-coded mnemonics for Java path mapping (#21703)
Java
- Let native Turbine image find
ct.sym
with non-hermeticjava_runtime
(#21670)
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.1.1rc1
Note
If you are looking for rolling releases, please visit this page.
Release 7.1.1rc1 (2024-03-15)
Baseline: 9b39cca
Bazel 7.1.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.
External Deps
- Fix
bazel mod tidy
failure with no changes (#21662) - Allow any canonical repo name to be used with
bazel mod show_repo
(#21694) - Fix two
bazel mod tidy
crashes (#21700)
Local Execution
- Also inject a failure for createWritableDirectory when testing that ActionOutputDirectoryHelper propagates exceptions. (#21683)
- Fix race condition and add more logging for null entry error message (#21692)
Performance
- Actually use shouldPublish() to determine whether to publish the execution log to the BEP. (#21671)
- Use execution info instead of hard-coded mnemonics for Java path mapping (#21703)
Java
- Let native Turbine image find
ct.sym
with non-hermeticjava_runtime
(#21670)
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.