Release 8.8.1 (2026-09-24)

Release Notes:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9fab545..a582099 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,177 @@
+## Release 8.8.1 (2026-09-24)
+
+```
+
+Release Notes:
+
+```
+
+## Release 10.0.0-pre.20260911.2 (2026-09-18)
+
+```
+Baseline: d4c275b89348663ec7b84e58f75ec8ab46f62101
+
+Cherry picks:
+
+   + 27f9635b3723ff4a2e5b782c768b80b160e8722e:
+     Make the hash codes of providers and configured targets stable.
+```
+
+Incompatible changes:
+
+  - --experimental_sibling_repository_layout is now a no-op.
+
+Important changes:
+
+  - Support `dict(label, string)` aspect attributes in `query
+    --output=proto`.
+  - Transitive rule and toolchain resolution errors are now formatted
+    into a multi-line indented hierarchy.
+    Fixes https://github.com/bazelbuild/bazel/issues/15791
+  - Fix NullPointerException and improve error messages when Starlark
+    implicit output templates reference unset or unknown attributes.
+
+This release contains contributions from many people at Google, as well as Chris McDonald, David Zbarsky, Fabian Meumertzheim, James Judd, Tamir Duberstein, Vladimir Sitnikov.
+
+## Release 10.0.0-pre.20260908.2 (2026-09-15)
+
+```
+Baseline: 6a4878da6a4abeca65ceb60d5bc772123fa53c4a
+
+Cherry picks:
+
+   + 2ce8da8d5c24d7ccf2f6becdc16d7262f2f3c882:
+     Rollback of
+     https://github.com/bazelbuild/bazel/commit/f72ac81d9b589a62012f49
+     b32cf915f4a64c8cfb.
+```
+
+Important changes:
+
+  - Invalidate cached action execution results when remote
+    cache/executor endpoints or `--remote_instance_name` change
+    between invocations.
+  - Fix issue where `bazel test --nobuild` failed with
+    `TEST_WITH_NOANALYZE` instead of succeeding after analysis.
+  - With Build without the Bytes, a requested top-level output that
+    was deleted locally is now reliably redownloaded in the next
+    build that requests it, even if other invocations ran in between.
+  - Avoid redundant remote CAS uploads when using combined disk and
+    remote caching with a cold disk cache.
+  - Fix incremental remote builds failing to create output
+    directories beneath stale dangling symlinks.
+  - credential-helper: treat `null` values in response as unset.
+  - Fixed a rare crash with `NullPointerException` in
+    `ActionInputMap.getIndex` when an action discovers additional
+    inputs while executing.
+  - Add `repository_ctx.patch(directory)`
+  - Disk cache entries deleted by a concurrent garbage collection are
+    now treated as cache misses and don't result in failures.
+  - Fix an issue where Java compilation actions re-execute on every
+    build due to an Action Cache digest mismatch when
+    `--experimental_output_paths=strip` and in-memory `.jdeps` files
+    are enabled.
+  - Credential helper failures now abort HTTP downloads instead of
+    continuing without authentication.
+
+This release contains contributions from many people at Google, as well as Armando Montanez, Fabian Meumertzheim, George Gensure, Henner Zeller, James Judd, Jason Bedard, Jonathan Perry, Keith Smiley, Ming Zhao, Morax, Tamir Duberstein, Yannic Bonenberger.
+
+## Release 10.0.0-pre.20260902.1 (2026-09-10)
+
+```
+Baseline: e2e4c35d7400a1f3cdf3e337bb53e4fa0eafd001
+```
+
+Important changes:
+
+  - Starlark `fail()` calls now format error messages with `Error: `
+    instead of `Error in fail: `.
+    Resolves https://github.com/bazelbuild/bazel/issues/21523.
+  - Aquery now supports the `config(expr, word)` function.
+  - Fixed unnecessary remote-cache hits in incremental BwoB builds
+    after a previous invocation used a broader remote output download
+    policy.
+  - Fix an issue on Windows where empty environment variables (e.g.
+    `--action_env=VAR=`) caused test execution failures in the test
+    wrapper.
+  - `--experimental_override_platform_cpu_name` renamed to
+    `--override_platform_cpu_name`
+  - The macOS sandbox now allows actions to bind sockets when network
+    access is blocked, matching the behavior of the Linux sandbox.
+    Note that macOS cannot restrict inbound connections by peer, so
+    an action that listens on a non-loopback address is reachable
+    from other hosts on the network; outbound traffic remains
+    restricted to loopback.
+  - Clean up unused stashed sandbox directories when shutting down
+    the Bazel server.
+  - Downloader rewrites to endpoints that refuse connections no
+    longer repeat the connector's full retry sequence.
+  - Fix `grep: invalid option -- P` errors on macOS when running
+    release and documentation scripts.
+  - Remote execution, remote caching, and auth flags can now be reset
+    to their default unset state on the command line by passing an
+    empty value (e.g., `--remote_cache=`, `--remote_executor=`,
+    `--google_credentials=`).
+
+This release contains contributions from many people at Google, as well as Alex Eagle, Angus Lees, Armando Montanez, Fabian Meumertzheim, Fabian Meumertzheim, Henner Zeller, jjj-n, Jonathan Perry, justinswe, Keith Smiley, Kip Hamiltons, Salma Samy, Samuel Bronson, Tyler Breisacher, zozo123.
+
+## Release 10.0.0-pre.20260826.1 (2026-09-08)
+
+```
+Baseline: 609cb51089a86f7e40552a1f79c16992376f06db
+
+Cherry picks:
+
+   + bd75cfcf5c906fb6b88515c993edcd34bfadeecb:
+     Update protobuf to 36.0.bcr.1
+     (https://github.com/bazelbuild/bazel/pull/30886)
+```
+
+Incompatible changes:
+
+  - `--rewind_lost_inputs` is now enabled by default. Builds with
+    BwoB automatically recover from remote cache eviction by
+    rewinding actions that generated lost inputs.
+
+New features:
+
+  - With the new
+    `--experimental_keep_change_prunable_nodes_during_gc` flag,
+    Skyframe will keep computed nodes that aren't requested by the
+    current evaluation but whose dependencies would be verified clean
+    after change pruning.
+
+Important changes:
+
+  - `--server_javabase` and nojdk builds of Bazel can now use JREs in
+    addition to JDKs.
+  - Test targets can now be built for a target platform that no
+    execution platform is compatible with, e.g. to cross-compile
+    them. Running such a test fails with an error at execution time
+    instead of failing analysis.
+  - Disk cache action results are now always trusted with
+    `--rewind_lost_inputs`, even if Build without the Bytes makes it
+    so that the outputs are not available locally.
+  - Cycles between `MODULE.bazel` files connected via `include()` are
+    now reported as an error instead of hanging the build.
+  - Fixed a crash while evaluating `MODULE.bazel` files when Skyframe
+    dropped its temporary state in response to memory pressure.
+  - Fixed a build failure with `--execution_log_compact_file` when a
+    C++ action template has no inputs.
+  - Files uploaded to the disk cache are now copied with a
+    copy-on-write clone where the filesystem supports it, so a cache
+    entry can share its blocks with the output it was uploaded from.
+  - Module extensions are now correctly rerun when the root module
+    changes the `dev_dependency` value of a `use_extension` call,
+    which is visible to extensions as
+    `module_ctx.root_module_has_non_dev_dependency`.
+  - None
+    RELNOTES: None
+  - The C++ include scanner now properly resolves headers that are
+    generated at build time and included as part of the toolchain.
+
+This release contains contributions from many people at Google, as well as Alex Eagle, Armando Montanez, Benjamin Peterson, Chi Wang, David Ostrovsky, David Zbarsky, Fabian Meumertzheim, Fabian Meumertzheim, Fabian Meumertzheim, Fabian Meumertzheim, Garrett Holmstrom, Han-Wen Nienhuys, Herdiyan Adam Putra, Hoyt Summers Pittman, JonathanPerry651, Jordan Mele, Ladd Van Tol, Rahul Butani, Rajkaran Yadav, Tamir Duberstein, Tyler French, wade-arista.
+
 ## Release 8.8.0 (2026-08-31)
 
 ```
@@ -4829,11 +5003,11 @@
 
   - Bazel no longer increases the delay between progress updates when
     there is no cursor control.
-  - `--incompatible_always_include_files_in_data` is flipped

-    to true. See https://github.com/bazelbuild/bazel/issues/16654 for

+  - `--incompatible_always_include_files_in_data` is flipped
+    to true. See https://github.com/bazelbuild/bazel/issues/16654 for
     details.
-  - `cquery --output=files` also outputs source files.

-    

+  - `cquery --output=files` also outputs source files.
+    
     Closes #16602.
   - `--incompatible_strict_conflict_checks` is flipped to true. See
     https://github.com/bazelbuild/bazel/issues/16729 for details.
@@ -4841,10 +5015,10 @@
     configuration. Mitigation is to set Python version on the targets.
   - `--features` only applies to targets built in the target
     configuration, and `--host_features` is used for the host / exec
-    configuration (gated behind `--incompatible_use_host_features`)

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13839

-    

+    configuration (gated behind `--incompatible_use_host_features`)
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13839
+    
     Closes #16626.
 
 New features:
@@ -4859,11 +5033,11 @@
     accepted by the `Rlocation` function of runfiles libraries. This
     is the preferred way to access data dependencies at runtime and
     works on all platforms, even when runfiles are not enabled (e.g.,
-    on Windows by default).

-    

-    Work towards #16124

-    Fixes #10923

-    

+    on Windows by default).
+    
+    Work towards #16124
+    Fixes #10923
+    
     Closes #16428.
   - Starlark `print()` statements are now emitted iff the line of
     code is executed. They are no longer replayed on subsequent
@@ -4895,12 +5069,12 @@
     involve module extensions.
   - Added a new `max_compatibility_level` attribute to the
     `bazel_dep` directive, which allows version selection to upgrade
-    a dependency up to the specified compatibility level.

-    

+    a dependency up to the specified compatibility level.
+    
     Co-authored-by: Brentley Jones <github@brentleyjones.com>
   - `--experimental_remote_grpc_log` has been renamed to
-    `--remote_grpc_log`

-    

+    `--remote_grpc_log`
+    
     Closes #18180.
 
 This release contains contributions from many people at Google, as well as Ben Lee, Brentley Jones, Ezekiel Warren, Fabian Meumertzheim, keertk, Keith Smiley, Krzysztof Naglik, kshyanashree, lunch-glide-pepper, oquenchil, Patrick Balestra, Son Luong Ngoc, Ted Kaplan, Ted Kaplan, UebelAndre, Xùdōng Yáng, Yannic, yuzhy8701.
@@ -6299,8 +6473,8 @@
 Incompatible changes:
 
   - GrpcRemoteDownloader only includes relevant headers instead of
-    sending all credentials.

-    

+    sending all credentials.
+    
     Closes #16439.
 
 Important changes:
@@ -6861,17 +7035,17 @@
 Incompatible changes:
 
   - GrpcRemoteDownloader only includes relevant headers instead of
-    sending all credentials.

-    

+    sending all credentials.
+    
     Closes #16439.
   - analysis_test moved into testing.analysis_test
 
 Important changes:
 
-  - alias() can now select() directly on constraint_value()

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13047.

-    

+  - alias() can now select() directly on constraint_value()
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13047.
+    
     Closes #14310.
   - Fixed an issue where Bazel could erroneously report a test passes
     in coverage mode without actually running the test.
@@ -6879,16 +7053,16 @@
   - Add coverage configuration fragment, used to expose
     output_generator label.
   - Bazel now no longer includes system headers on macOS in coverage
-    reports (#14969).

-    

+    reports (#14969).
+    
     Closes #14971.
-  - Starlark test rules can use the new inherited_environment

+  - Starlark test rules can use the new inherited_environment
     parameter of testing.TestEnvironment to specify environment
-    variables

-    whose values should be inherited from the shell environment.

-    

+    variables
+    whose values should be inherited from the shell environment.
+    
     Closes #14849.
-  - none

+  - none
     RELNOTES:none
   - Enable merging permissions during Android manifest merging with
     the --merge_android_manifest_permissions flag.
@@ -6896,16 +7070,16 @@
     the MODULE.bazel file, to replace the
     {execution_platforms,toolchains}_to_register attributes on the
     module() directive.
-  - Add support for fetching RPC credentials from credential helper.

-    

-    Progress on https://github.com/bazelbuild/bazel/issues/15856

-    

+  - Add support for fetching RPC credentials from credential helper.
+    
+    Progress on https://github.com/bazelbuild/bazel/issues/15856
+    
     Closes #15947.
   - `cquery`'s new output mode
     [`--output=files`](https://bazel.build/docs/cquery#files-output)
     lists the output files of the targets matching the query. It
-    takes the current value of `--output_groups` into account.

-    

+    takes the current value of `--output_groups` into account.
+    
     Closes #15552.
   - Fix for desugaring failure on Bazel+Android+Windows build
     scenario.
@@ -6914,11 +7088,11 @@
     accepted by the `Rlocation` function of runfiles libraries. This
     is the preferred way to access data dependencies at runtime and
     works on all platforms, even when runfiles are not enabled (e.g.,
-    on Windows by default).

-    

-    Work towards #16124

-    Fixes #10923

-    

+    on Windows by default).
+    
+    Work towards #16124
+    Fixes #10923
+    
     Closes #16667.
 
 This release contains contributions from many people at Google, as well as amberdixon, Andreas Fuchs, Benjamin Peterson, Brentley Jones, Chenchu Kolli, Dan Fleming, Danny Wolf, Emil Kattainen, Fabian Meumertzheim, Gowroji Sunil, hvadehra, Juh-Roch, Keith Smiley, Krzysztof Naglik, kshyanashree, Niyas Sait, Noa Resare, Oliver Eikemeier, oquenchil, Peter Mounce, Philipp Schrader, Ryan Beasley, Thi Doãn, Xùdōng Yáng, Yannic, Zhongpeng Lin.
@@ -7294,11 +7468,11 @@
 
   - Bazel no longer increases the delay between progress updates when
     there is no cursor control.
-  - `--incompatible_always_include_files_in_data` is flipped

-    to true. See https://github.com/bazelbuild/bazel/issues/16654 for

+  - `--incompatible_always_include_files_in_data` is flipped
+    to true. See https://github.com/bazelbuild/bazel/issues/16654 for
     details.
-  - `cquery --output=files` also outputs source files.

-    

+  - `cquery --output=files` also outputs source files.
+    
     Closes #16602.
   - `--incompatible_strict_conflict_checks` is flipped to true. See
     https://github.com/bazelbuild/bazel/issues/16729 for details.
@@ -7306,10 +7480,10 @@
     configuration. Mitigation is to set Python version on the targets.
   - `--features` only applies to targets built in the target
     configuration, and `--host_features` is used for the host / exec
-    configuration (gated behind `--incompatible_use_host_features`)

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13839

-    

+    configuration (gated behind `--incompatible_use_host_features`)
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13839
+    
     Closes #16626.
 
 Important changes:
@@ -7319,11 +7493,11 @@
     accepted by the `Rlocation` function of runfiles libraries. This
     is the preferred way to access data dependencies at runtime and
     works on all platforms, even when runfiles are not enabled (e.g.,
-    on Windows by default).

-    

-    Work towards #16124

-    Fixes #10923

-    

+    on Windows by default).
+    
+    Work towards #16124
+    Fixes #10923
+    
     Closes #16428.
   - Starlark `print()` statements are now emitted iff the line of
     code is executed. They are no longer replayed on subsequent
@@ -8212,11 +8386,11 @@
 
   - Bazel no longer increases the delay between progress updates when
     there is no cursor control.
-  - `--incompatible_always_include_files_in_data` is flipped

-    to true. See https://github.com/bazelbuild/bazel/issues/16654 for

+  - `--incompatible_always_include_files_in_data` is flipped
+    to true. See https://github.com/bazelbuild/bazel/issues/16654 for
     details.
-  - `cquery --output=files` also outputs source files.

-    

+  - `cquery --output=files` also outputs source files.
+    
     Closes #16602.
   - `--incompatible_strict_conflict_checks` is flipped to true. See
     https://github.com/bazelbuild/bazel/issues/16729 for details.
@@ -8224,10 +8398,10 @@
     configuration. Mitigation is to set Python version on the targets.
   - `--features` only applies to targets built in the target
     configuration, and `--host_features` is used for the host / exec
-    configuration (gated behind `--incompatible_use_host_features`)

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13839

-    

+    configuration (gated behind `--incompatible_use_host_features`)
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13839
+    
     Closes #16626.
 
 Important changes:
@@ -8237,11 +8411,11 @@
     accepted by the `Rlocation` function of runfiles libraries. This
     is the preferred way to access data dependencies at runtime and
     works on all platforms, even when runfiles are not enabled (e.g.,
-    on Windows by default).

-    

-    Work towards #16124

-    Fixes #10923

-    

+    on Windows by default).
+    
+    Work towards #16124
+    Fixes #10923
+    
     Closes #16428.
   - Starlark `print()` statements are now emitted iff the line of
     code is executed. They are no longer replayed on subsequent
@@ -8714,11 +8888,11 @@
 
   - Bazel no longer increases the delay between progress updates when
     there is no cursor control.
-  - `--incompatible_always_include_files_in_data` is flipped

-    to true. See https://github.com/bazelbuild/bazel/issues/16654 for

+  - `--incompatible_always_include_files_in_data` is flipped
+    to true. See https://github.com/bazelbuild/bazel/issues/16654 for
     details.
-  - `cquery --output=files` also outputs source files.

-    

+  - `cquery --output=files` also outputs source files.
+    
     Closes #16602.
   - `--incompatible_strict_conflict_checks` is flipped to true. See
     https://github.com/bazelbuild/bazel/issues/16729 for details.
@@ -8726,10 +8900,10 @@
     configuration. Mitigation is to set Python version on the targets.
   - `--features` only applies to targets built in the target
     configuration, and `--host_features` is used for the host / exec
-    configuration (gated behind `--incompatible_use_host_features`)

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13839

-    

+    configuration (gated behind `--incompatible_use_host_features`)
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13839
+    
     Closes #16626.
 
 Important changes:
@@ -8739,11 +8913,11 @@
     accepted by the `Rlocation` function of runfiles libraries. This
     is the preferred way to access data dependencies at runtime and
     works on all platforms, even when runfiles are not enabled (e.g.,
-    on Windows by default).

-    

-    Work towards #16124

-    Fixes #10923

-    

+    on Windows by default).
+    
+    Work towards #16124
+    Fixes #10923
+    
     Closes #16428.
   - Starlark `print()` statements are now emitted iff the line of
     code is executed. They are no longer replayed on subsequent
@@ -9115,11 +9289,11 @@
 
   - Bazel no longer increases the delay between progress updates when
     there is no cursor control.
-  - `--incompatible_always_include_files_in_data` is flipped

-    to true. See https://github.com/bazelbuild/bazel/issues/16654 for

+  - `--incompatible_always_include_files_in_data` is flipped
+    to true. See https://github.com/bazelbuild/bazel/issues/16654 for
     details.
-  - `cquery --output=files` also outputs source files.

-    

+  - `cquery --output=files` also outputs source files.
+    
     Closes #16602.
   - `--incompatible_strict_conflict_checks` is flipped to true. See
     https://github.com/bazelbuild/bazel/issues/16729 for details.
@@ -9127,10 +9301,10 @@
     configuration. Mitigation is to set Python version on the targets.
   - `--features` only applies to targets built in the target
     configuration, and `--host_features` is used for the host / exec
-    configuration (gated behind `--incompatible_use_host_features`)

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13839

-    

+    configuration (gated behind `--incompatible_use_host_features`)
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13839
+    
     Closes #16626.
 
 Important changes:
@@ -9140,11 +9314,11 @@
     accepted by the `Rlocation` function of runfiles libraries. This
     is the preferred way to access data dependencies at runtime and
     works on all platforms, even when runfiles are not enabled (e.g.,
-    on Windows by default).

-    

-    Work towards #16124

-    Fixes #10923

-    

+    on Windows by default).
+    
+    Work towards #16124
+    Fixes #10923
+    
     Closes #16428.
   - Starlark `print()` statements are now emitted iff the line of
     code is executed. They are no longer replayed on subsequent
@@ -9621,11 +9795,11 @@
     #16355, #16323, and #16391.
   - Bazel no longer increases the delay between progress updates when
     there is no cursor control.
-  - `--incompatible_always_include_files_in_data` is flipped

-    to true. See https://github.com/bazelbuild/bazel/issues/16654 for

+  - `--incompatible_always_include_files_in_data` is flipped
+    to true. See https://github.com/bazelbuild/bazel/issues/16654 for
     details.
-  - `cquery --output=files` also outputs source files.

-    

+  - `cquery --output=files` also outputs source files.
+    
     Closes #16602.
   - `--incompatible_strict_conflict_checks` is flipped to true. See
     https://github.com/bazelbuild/bazel/issues/16729 for details.
@@ -9844,11 +10018,11 @@
     accepted by the `Rlocation` function of runfiles libraries. This
     is the preferred way to access data dependencies at runtime and
     works on all platforms, even when runfiles are not enabled (e.g.,
-    on Windows by default).

-    

-    Work towards #16124

-    Fixes #10923

-    

+    on Windows by default).
+    
+    Work towards #16124
+    Fixes #10923
+    
     Closes #16428.
   - Starlark `print()` statements are now emitted iff the line of
     code is executed. They are no longer replayed on subsequent
@@ -10388,17 +10562,17 @@
 Incompatible changes:
 
   - GrpcRemoteDownloader only includes relevant headers instead of
-    sending all credentials.

-    

+    sending all credentials.
+    
     Closes #16439.
   - analysis_test moved into testing.analysis_test
 
 Important changes:
 
-  - alias() can now select() directly on constraint_value()

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13047.

-    

+  - alias() can now select() directly on constraint_value()
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13047.
+    
     Closes #14310.
   - Fixed an issue where Bazel could erroneously report a test passes
     in coverage mode without actually running the test.
@@ -10406,16 +10580,16 @@
   - Add coverage configuration fragment, used to expose
     output_generator label.
   - Bazel now no longer includes system headers on macOS in coverage
-    reports (#14969).

-    

+    reports (#14969).
+    
     Closes #14971.
-  - Starlark test rules can use the new inherited_environment

+  - Starlark test rules can use the new inherited_environment
     parameter of testing.TestEnvironment to specify environment
-    variables

-    whose values should be inherited from the shell environment.

-    

+    variables
+    whose values should be inherited from the shell environment.
+    
     Closes #14849.
-  - none

+  - none
     RELNOTES:none
   - Enable merging permissions during Android manifest merging with
     the --merge_android_manifest_permissions flag.
@@ -10423,16 +10597,16 @@
     the MODULE.bazel file, to replace the
     {execution_platforms,toolchains}_to_register attributes on the
     module() directive.
-  - Add support for fetching RPC credentials from credential helper.

-    

-    Progress on https://github.com/bazelbuild/bazel/issues/15856

-    

+  - Add support for fetching RPC credentials from credential helper.
+    
+    Progress on https://github.com/bazelbuild/bazel/issues/15856
+    
     Closes #15947.
   - `cquery`'s new output mode
     [`--output=files`](https://bazel.build/docs/cquery#files-output)
     lists the output files of the targets matching the query. It
-    takes the current value of `--output_groups` into account.

-    

+    takes the current value of `--output_groups` into account.
+    
     Closes #15552.
   - Fix for desugaring failure on Bazel+Android+Windows build
     scenario.
@@ -10441,11 +10615,11 @@
     accepted by the `Rlocation` function of runfiles libraries. This
     is the preferred way to access data dependencies at runtime and
     works on all platforms, even when runfiles are not enabled (e.g.,
-    on Windows by default).

-    

-    Work towards #16124

-    Fixes #10923

-    

+    on Windows by default).
+    
+    Work towards #16124
+    Fixes #10923
+    
     Closes #16667.
 
 This release contains contributions from many people at Google, as well as amberdixon, Andreas Fuchs, Benjamin Peterson, Brentley Jones, Chenchu Kolli, Dan Fleming, Danny Wolf, Emil Kattainen, Fabian Meumertzheim, Gowroji Sunil, hvadehra, Juh-Roch, Keith Smiley, Krzysztof Naglik, kshyanashree, Niyas Sait, Noa Resare, Oliver Eikemeier, oquenchil, Peter Mounce, Philipp Schrader, Ryan Beasley, Thi Doãn, Xùdōng Yáng, Yannic, Zhongpeng Lin.
@@ -11470,8 +11644,8 @@
   - Remove `--experimental_profile_cpu_usage`.
   - flipped --incompatible_java_common_parameters (see #12373)
   - GrpcRemoteDownloader only includes relevant headers instead of
-    sending all credentials.

-    

+    sending all credentials.
+    
     Closes #16439.
 
 New features:
@@ -11654,10 +11828,10 @@
     renamed to  --incompatible_existing_rules_immutable_view
   - Bazel no longer supports Java 8. From this version on, the
     minimum required JDK is OpenJDK 11.
-  - alias() can now select() directly on constraint_value()

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13047.

-    

+  - alias() can now select() directly on constraint_value()
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13047.
+    
     Closes #14310.
   - Fixed an issue where Bazel could erroneously report a test passes
     in coverage mode without actually running the test.
@@ -11665,16 +11839,16 @@
   - Add coverage configuration fragment, used to expose
     output_generator label.
   - Bazel now no longer includes system headers on macOS in coverage
-    reports (#14969).

-    

+    reports (#14969).
+    
     Closes #14971.
-  - Starlark test rules can use the new inherited_environment

+  - Starlark test rules can use the new inherited_environment
     parameter of testing.TestEnvironment to specify environment
-    variables

-    whose values should be inherited from the shell environment.

-    

+    variables
+    whose values should be inherited from the shell environment.
+    
     Closes #14849.
-  - none

+  - none
     RELNOTES:none
   - Enable merging permissions during Android manifest merging with
     the --merge_android_manifest_permissions flag.
@@ -11682,16 +11856,16 @@
     the MODULE.bazel file, to replace the
     {execution_platforms,toolchains}_to_register attributes on the
     module() directive.
-  - Add support for fetching RPC credentials from credential helper.

-    

-    Progress on https://github.com/bazelbuild/bazel/issues/15856

-    

+  - Add support for fetching RPC credentials from credential helper.
+    
+    Progress on https://github.com/bazelbuild/bazel/issues/15856
+    
     Closes #15947.
   - `cquery`'s new output mode
     [`--output=files`](https://bazel.build/docs/cquery#files-output)
     lists the output files of the targets matching the query. It
-    takes the current value of `--output_groups` into account.

-    

+    takes the current value of `--output_groups` into account.
+    
     Closes #15552.
   - Fix for desugaring failure on Bazel+Android+Windows build
     scenario.
@@ -12409,8 +12583,8 @@
 Incompatible changes:
 
   - GrpcRemoteDownloader only includes relevant headers instead of
-    sending all credentials.

-    

+    sending all credentials.
+    
     Closes #16439.
 
 Important changes:
@@ -13155,10 +13329,10 @@
 
 Important changes:
 
-  - alias() can now select() directly on constraint_value()

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13047.

-    

+  - alias() can now select() directly on constraint_value()
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13047.
+    
     Closes #14310.
   - Fixed an issue where Bazel could erroneously report a test passes
     in coverage mode without actually running the test.
@@ -13166,16 +13340,16 @@
   - Add coverage configuration fragment, used to expose
     output_generator label.
   - Bazel now no longer includes system headers on macOS in coverage
-    reports (#14969).

-    

+    reports (#14969).
+    
     Closes #14971.
-  - Starlark test rules can use the new inherited_environment

+  - Starlark test rules can use the new inherited_environment
     parameter of testing.TestEnvironment to specify environment
-    variables

-    whose values should be inherited from the shell environment.

-    

+    variables
+    whose values should be inherited from the shell environment.
+    
     Closes #14849.
-  - none

+  - none
     RELNOTES:none
   - Enable merging permissions during Android manifest merging with
     the --merge_android_manifest_permissions flag.
@@ -13183,16 +13357,16 @@
     the MODULE.bazel file, to replace the
     {execution_platforms,toolchains}_to_register attributes on the
     module() directive.
-  - Add support for fetching RPC credentials from credential helper.

-    

-    Progress on https://github.com/bazelbuild/bazel/issues/15856

-    

+  - Add support for fetching RPC credentials from credential helper.
+    
+    Progress on https://github.com/bazelbuild/bazel/issues/15856
+    
     Closes #15947.
   - `cquery`'s new output mode
     [`--output=files`](https://bazel.build/docs/cquery#files-output)
     lists the output files of the targets matching the query. It
-    takes the current value of `--output_groups` into account.

-    

+    takes the current value of `--output_groups` into account.
+    
     Closes #15552.
   - Fix for desugaring failure on Bazel+Android+Windows build
     scenario.
@@ -13687,10 +13861,10 @@
 
 Important changes:
 
-  - alias() can now select() directly on constraint_value()

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13047.

-    

+  - alias() can now select() directly on constraint_value()
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13047.
+    
     Closes #14310.
   - Fixed an issue where Bazel could erroneously report a test passes
     in coverage mode without actually running the test.
@@ -13698,16 +13872,16 @@
   - Add coverage configuration fragment, used to expose
     output_generator label.
   - Bazel now no longer includes system headers on macOS in coverage
-    reports (#14969).

-    

+    reports (#14969).
+    
     Closes #14971.
-  - Starlark test rules can use the new inherited_environment

+  - Starlark test rules can use the new inherited_environment
     parameter of testing.TestEnvironment to specify environment
-    variables

-    whose values should be inherited from the shell environment.

-    

+    variables
+    whose values should be inherited from the shell environment.
+    
     Closes #14849.
-  - none

+  - none
     RELNOTES:none
   - Enable merging permissions during Android manifest merging with
     the --merge_android_manifest_permissions flag.
@@ -13715,16 +13889,16 @@
     the MODULE.bazel file, to replace the
     {execution_platforms,toolchains}_to_register attributes on the
     module() directive.
-  - Add support for fetching RPC credentials from credential helper.

-    

-    Progress on https://github.com/bazelbuild/bazel/issues/15856

-    

+  - Add support for fetching RPC credentials from credential helper.
+    
+    Progress on https://github.com/bazelbuild/bazel/issues/15856
+    
     Closes #15947.
   - `cquery`'s new output mode
     [`--output=files`](https://bazel.build/docs/cquery#files-output)
     lists the output files of the targets matching the query. It
-    takes the current value of `--output_groups` into account.

-    

+    takes the current value of `--output_groups` into account.
+    
     Closes #15552.
   - Fix for desugaring failure on Bazel+Android+Windows build
     scenario.
@@ -14462,10 +14636,10 @@
 
 Important changes:
 
-  - alias() can now select() directly on constraint_value()

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13047.

-    

+  - alias() can now select() directly on constraint_value()
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13047.
+    
     Closes #14310.
   - Fixed an issue where Bazel could erroneously report a test passes
     in coverage mode without actually running the test.
@@ -14473,16 +14647,16 @@
   - Add coverage configuration fragment, used to expose
     output_generator label.
   - Bazel now no longer includes system headers on macOS in coverage
-    reports (#14969).

-    

+    reports (#14969).
+    
     Closes #14971.
-  - Starlark test rules can use the new inherited_environment

+  - Starlark test rules can use the new inherited_environment
     parameter of testing.TestEnvironment to specify environment
-    variables

-    whose values should be inherited from the shell environment.

-    

+    variables
+    whose values should be inherited from the shell environment.
+    
     Closes #14849.
-  - none

+  - none
     RELNOTES:none
   - Enable merging permissions during Android manifest merging with
     the --merge_android_manifest_permissions flag.
@@ -14490,16 +14664,16 @@
     the MODULE.bazel file, to replace the
     {execution_platforms,toolchains}_to_register attributes on the
     module() directive.
-  - Add support for fetching RPC credentials from credential helper.

-    

-    Progress on https://github.com/bazelbuild/bazel/issues/15856

-    

+  - Add support for fetching RPC credentials from credential helper.
+    
+    Progress on https://github.com/bazelbuild/bazel/issues/15856
+    
     Closes #15947.
   - `cquery`'s new output mode
     [`--output=files`](https://bazel.build/docs/cquery#files-output)
     lists the output files of the targets matching the query. It
-    takes the current value of `--output_groups` into account.

-    

+    takes the current value of `--output_groups` into account.
+    
     Closes #15552.
   - Fix for desugaring failure on Bazel+Android+Windows build
     scenario.
@@ -15162,10 +15336,10 @@
 
 Important changes:
 
-  - alias() can now select() directly on constraint_value()

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13047.

-    

+  - alias() can now select() directly on constraint_value()
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13047.
+    
     Closes #14310.
   - Fixed an issue where Bazel could erroneously report a test passes
     in coverage mode without actually running the test.
@@ -15173,14 +15347,14 @@
   - Add coverage configuration fragment, used to expose
     output_generator label.
   - Bazel now no longer includes system headers on macOS in coverage
-    reports (#14969).

-    

+    reports (#14969).
+    
     Closes #14971.
-  - Starlark test rules can use the new inherited_environment

+  - Starlark test rules can use the new inherited_environment
     parameter of testing.TestEnvironment to specify environment
-    variables

-    whose values should be inherited from the shell environment.

-    

+    variables
+    whose values should be inherited from the shell environment.
+    
     Closes #14849.
 
 This release contains contributions from many people at Google, as well as amberdixon, Andreas Fuchs, Benjamin Peterson, Brentley Jones, Chenchu Kolli, Dan Fleming, Danny Wolf, Fabian Meumertzheim, hvadehra, Keith Smiley, Niyas Sait, Noa Resare, Oliver Eikemeier, oquenchil, Peter Mounce, Philipp Schrader, Thi Doãn, Xùdōng Yáng, Yannic, Zhongpeng Lin.
@@ -15702,10 +15876,10 @@
 
 Important changes:
 
-  - alias() can now select() directly on constraint_value()

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13047.

-    

+  - alias() can now select() directly on constraint_value()
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13047.
+    
     Closes #14310.
   - Fixed an issue where Bazel could erroneously report a test passes
     in coverage mode without actually running the test.
@@ -15713,8 +15887,8 @@
   - Add coverage configuration fragment, used to expose
     output_generator label.
   - Bazel now no longer includes system headers on macOS in coverage
-    reports (#14969).

-    

+    reports (#14969).
+    
     Closes #14971.
 
 This release contains contributions from many people at Google, as well as amberdixon, Benjamin Peterson, Brentley Jones, Dan Fleming, Danny Wolf, Fabian Meumertzheim, Keith Smiley, Niyas Sait, Noa Resare, Oliver Eikemeier, oquenchil, Philipp Schrader, Xùdōng Yáng, Yannic.
@@ -15974,10 +16148,10 @@
 
 Important changes:
 
-  - alias() can now select() directly on constraint_value()

-    

-    Fixes https://github.com/bazelbuild/bazel/issues/13047.

-    

+  - alias() can now select() directly on constraint_value()
+    
+    Fixes https://github.com/bazelbuild/bazel/issues/13047.
+    
     Closes #14310.
   - Fixed an issue where Bazel could erroneously report a test passes
     in coverage mode without actually running the test.
@@ -15985,8 +16159,8 @@
   - Add coverage configuration fragment, used to expose
     output_generator label.
   - Bazel now no longer includes system headers on macOS in coverage
-    reports (#14969).

-    

+    reports (#14969).
+    
     Closes #14971.
 
 This release contains contributions from many people at Google, as well as amberdixon, Benjamin Peterson, Brentley Jones, Dan Fleming, Danny Wolf, Fabian Meumertzheim, Keith Smiley, Niyas Sait, Noa Resare, Oliver Eikemeier, oquenchil, Philipp Schrader, Xùdōng Yáng, Yannic.