Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

--run_under doesn't work with script in external repository #12545

Closed
lizan opened this issue Nov 24, 2020 · 5 comments
Closed

--run_under doesn't work with script in external repository #12545

lizan opened this issue Nov 24, 2020 · 5 comments
Assignees
Labels
team-Remote-Exec Issues and PRs for the Execution (Remote) team untriaged

Comments

@lizan
Copy link

lizan commented Nov 24, 2020

Description of the problem / feature request:

We use --run_under with collect_coverage to get fuzz-coverage in Envoy:
https://github.com/envoyproxy/envoy/blob/master/.bazelrc#L149

This works perfectly with Bazel 3.6.0 but broken in Bazel 3.7.0

Bugs: what's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.

Checkout https://github.com/envoyproxy/envoy/
Run: ci/run_envoy_docker.sh "ci/do_ci.sh bazel.fuzz_coverage //test/integration:h1_capture_fuzz_test"

What operating system are you running Bazel on?

Ubuntu 18.04

What's the output of bazel info release?

release 3.7.0

Any other information, logs, or outputs that you want to share?

With subcommands, bazel 3.6.0 generates:

external/bazel_tools/tools/test/test-setup.sh external/bazel_tools/tools/test/collect_coverage.sh external/envoy/bazel/coverage/fuzz_coverage_wrapper.sh test/integration/h1_capture_fuzz_test ...

While bazel 3.7.0 generates:

external/bazel_tools/tools/test/test-setup.sh external/bazel_tools/tools/test/collect_coverage.sh envoy/bazel/coverage/fuzz_coverage_wrapper.sh test/integration/h1_capture_fuzz_test ...

Lacking of external/ in the 2nd parameter is why this is broken.

Our failing CI logs can be found at https://dev.azure.com/cncf/envoy/_build/results?buildId=58183&view=logs&j=7b6d60aa-b5de-5f9b-678c-063d31881e76&t=e31ced1d-8def-5d31-02c0-2d875dd6ed2d

@lizan lizan mentioned this issue Nov 24, 2020
10 tasks
@meisterT
Copy link
Member

Do you have simple Bazel repro that doesn't involve running multiple shell scripts?

@lizan lizan changed the title --run_under doesn't work with --collect_coverage --run_under doesn't work with script in external repository Nov 24, 2020
@lizan
Copy link
Author

lizan commented Nov 24, 2020

@meisterT https://github.com/lizan/bazel-12545 is the minimal reproducer, it appears run_under is broken and not related to coverage at all.

@meisterT
Copy link
Member

Thanks, that was super helpful!

301b96b is the culprit CL.

cc @lberki @gyias

@aiuto aiuto assigned gyias and unassigned gyias Nov 25, 2020
@aiuto aiuto added untriaged team-Remote-Exec Issues and PRs for the Execution (Remote) team labels Nov 25, 2020
@gyias gyias self-assigned this Nov 25, 2020
@wrowe wrowe mentioned this issue Dec 2, 2020
10 tasks
bazel-io pushed a commit that referenced this issue Dec 3, 2020
…RelativePath doesn't return a valid runfiles path for external source files anymore after the recent external source root change. Also, it won't work for external labels either once the --nolegacy_external_runfiles becomes default. This fixes issue #12545.

PiperOrigin-RevId: 345435649
@gyias
Copy link
Member

gyias commented Dec 3, 2020

a689d67 fixes this.

@gyias gyias closed this as completed Dec 3, 2020
philwo pushed a commit that referenced this issue Dec 7, 2020
…RelativePath doesn't return a valid runfiles path for external source files anymore after the recent external source root change. Also, it won't work for external labels either once the --nolegacy_external_runfiles becomes default. This fixes issue #12545.

PiperOrigin-RevId: 345435649
philwo pushed a commit that referenced this issue Dec 7, 2020
…RelativePath doesn't return a valid runfiles path for external source files anymore after the recent external source root change. Also, it won't work for external labels either once the --nolegacy_external_runfiles becomes default. This fixes issue #12545.

PiperOrigin-RevId: 345435649
philwo pushed a commit that referenced this issue Dec 9, 2020
…RelativePath doesn't return a valid runfiles path for external source files anymore after the recent external source root change. Also, it won't work for external labels either once the --nolegacy_external_runfiles becomes default. This fixes issue #12545.

PiperOrigin-RevId: 345435649
philwo pushed a commit that referenced this issue Dec 10, 2020
…RelativePath doesn't return a valid runfiles path for external source files anymore after the recent external source root change. Also, it won't work for external labels either once the --nolegacy_external_runfiles becomes default. This fixes issue #12545.

PiperOrigin-RevId: 345435649
katre pushed a commit that referenced this issue Dec 11, 2020
…RelativePath doesn't return a valid runfiles path for external source files anymore after the recent external source root change. Also, it won't work for external labels either once the --nolegacy_external_runfiles becomes default. This fixes issue #12545.

PiperOrigin-RevId: 345435649
@wrowe
Copy link
Contributor

wrowe commented Dec 14, 2020

Note this bugfix picked to both 4.0.0rc and 3.7.2rc

bazel-io pushed a commit that referenced this issue Dec 17, 2020
Baseline: a991db7

Cherry picks:

   + 0d14ec8:
     Release 3.7.0 (2020-10-20)
   + d563446:
     Add `-XDcompilePolicy=simple` to default javacopts
   + 6336264:
     Update rules_cc reference to head of rules_cc as of 2020-11-11.
   + b3f9346:
     Bump rules_cc to support llvm 11.0.0 clang-cl compiler on Windows
   + e055b43:
     Remove accidentally re-added
     tools/jdk/java_toolchain_default.bzl.
   + 02838a1:
     Avoid the spawn cache if executing dynamically.
   + d0efd7b:
     Release 3.7.1 (2020-11-24)
   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue #12545.

Important changes:

  - Update rules_cc to commit b1c40e1de81913a3c40e5948f78719c28152486d

This release contains contributions from many people at Google, as well as William A Rowe Jr.
bazel-io pushed a commit that referenced this issue Jan 21, 2021
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue #12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.

New features:

  - Starlark-defined flags can now be shorthanded using --flag_alias.

Important changes:

  - Add --starlark:file option. This adds a capability to the
    (cquery)[https://docs.bazel.build/versions/master/cquery.html]
    feature in `--output=starlark` mode so that the expression to
    format output may
    be specified in a file.
  - Error messages emitted when an action fails are reworked to be
    more informative about the failing action. Some tooling may have
    to be updated as a result.
  - Querying with output=location now allows the relative_locations
    flag to properly display relative locations instead of the full
    path. Fixes #3497.
  - --flag_alias can now be used without
    --experimental_enable_flag_alias
  - Remove no-op `--deep_execroot` flag
  - The BEP uses `AbortReason.OUT_OF_MEMORY` for abort events when
    the build tool is crashing due to OOM.
  - Added flag `incompatible_display_source_file_location` for `blaze
    query location=output` to print the location of line 1 of the
    actual source files instead of the source file targets. Provides
    a solution to #8900.
  - The Starlark json module is now available.
    Use json.encode(x) to encode a Starlark value as JSON.
    struct.to_json(x) is deprecated and will be disabled by
    the --incompatible_struct_has_no_methods flag.
  - The flag `--incompatible_objc_compile_info_migration` is enabled
    by default.  See #10854.
  - The flag `--incompatible_objc_provider_remove_compile_info` is
    enabled by default.  See #11359.
  - Add `relative_ast_path` feature for darwin builds to relativize
    swiftmodule paths for debugging
  - Use proto.encode_text(x) to encode a Starlark value as textproto.
    struct.to_proto() is deprecated and will be disabled by
    the --incompatible_struct_has_no_methods flag.
    Both functions now reject list/dict fields that contain list/dict
    elements.
  - Add --starlark:file option. This adds a capability to the
    (cquery)[https://docs.bazel.build/versions/master/cquery.html]
    feature in `--output=starlark` mode so that the expression to
    format output may be specified in a file.
    See [Configured Query Starlark
    Output](//docs.google.com/document/d/1kL6Tdmp6uLBa9lq_DbUSjIC87glO
    zKIyPoBeF95Rs4c/edit)
  - Flipped --incompatble_proto_output_v2 for aquery.
  - The --incompatible_load_java_rules_from_bzl flag is now a no-op.
  - The --incompatible_load_proto_rules_from_bzl flag is now a no-op.
  - Flipped --incompatible_force_strict_header_check_from_starlark
  - --incompatible_string_replace_count is flipped and removed
    (#11244)
  - Bazel skips incompatible targets based on target platform
    and `target_compatible_with` contents. See
    https://docs.bazel.build/versions/master/platforms.html for more
    details.
  - Bazel returns exit code 36 (rather than 1) if it fails to start a
    subprocess in a local sandbox due to environmental issues, for
    example, if the argument list is too long.
  - //tools/build_defs/pkg:pkg_rpm is no longer built in to Bazel.
    See #11218 for
    instructions
    on how to migrate to the replacement.
  - Javac now supports multiplex workers.
  - The `--default_ios_provisioning_profile` flag has been removed
    (it was a no-op).
  - Add support for using AndroidX dependencies in
    data-binding-enabled targets.
  - Fix data-binding generation for android_local_test.
  - Enable debug_prefix_map_pwd_is_dot feature by default on macOS,
    this passes `-fdebug-prefix-map=$PWD=.` for every compile to
    remove absolute paths from debug info.
  - --incompatible_run_shell_command_string is enabled by default
    (#5903)
  - py_binary now tolerates package paths that contain hyphens ('-').
    Note that such paths might not be importable from within Python
    code.
  - C++ Starlark API requires linker_inputs wrapping library_to_link.
    #10860
  - Toolchain rule is extended with target_settings attribute.
  - --incompatible_restrict_string_escapes=true is now the default.
    Unnecessary backslashes such as "\." in string literals are now
    an error, instead of being silently treated as "\\.".
    To fix the error while preserving behavior, double the backlash.
    However, the error is often a sign that the original code was
    wrong.
  - Propagate instrumented files for transitive sources of
    `android_library` and `android_binary`
  - --local_resources and --incompatible_remove_local_resources have
    been removed. If you've been setting --local resources or
    --incompatible_remove_local_resources=false, you must migrate to
    using --local_ram_resources and --local_cpu_resources instead.
  - Update rules_cc to commit b1c40e1de81913a3c40e5948f78719c28152486d
  - --incompatible_avoid_conflict_dlls=true is now the default.
  - Dynamic execution now uses the new scheduler by default.
  - Dynamic execution now uses the new scheduler by default.
  - The new dynamic scheduler is now the default.

This release contains contributions from many people at Google, as well as Adam Liddell, Akira Baruah, Alexander Grund, Alex Eagle, Andrew Z Allen, Austin Schuh, Benjamin Peterson, Benson Muite, Brentley Jones, Cristian Hancila, Dan Halperin, Daniel Wagner-Hall, Dmitry Ivankov, Dmitry Ivankov, erenon, Eric Cousineau, Greg Estren, Gregor Jasny, Grzegorz Lukasik, Grzegorz Lukasik, hollste, Joe Lencioni, johnjbarton, Jonathan Perry, Jonathon Belotti, Keith Smiley, Kevin Gessner, Matt Davis, Matt Mackay, Menny Even Danan, Neeraj Gupta, Philipp Schrader, Ricardo Delfin, Ryan Beasley, Samuel Giddins, Simon Bjorklen, Simon Stewart, Stiopa Koltsov, Thi Doan, ThomasCJY, Timothy Klim, Tom de Goede, vectoralpha, V Vn Ngha, William A Rowe Jr, Xavier Bonaventura, Yannic Bonenberger, Yannic.
hrfuller pushed a commit to hrfuller/bazel that referenced this issue Jan 26, 2021
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue bazelbuild#12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (bazelbuild#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (bazelbuild#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (bazelbuild#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.

New features:

  - Starlark-defined flags can now be shorthanded using --flag_alias.

Important changes:

  - Add --starlark:file option. This adds a capability to the
    (cquery)[https://docs.bazel.build/versions/master/cquery.html]
    feature in `--output=starlark` mode so that the expression to
    format output may
    be specified in a file.
  - Error messages emitted when an action fails are reworked to be
    more informative about the failing action. Some tooling may have
    to be updated as a result.
  - Querying with output=location now allows the relative_locations
    flag to properly display relative locations instead of the full
    path. Fixes bazelbuild#3497.
  - --flag_alias can now be used without
    --experimental_enable_flag_alias
  - Remove no-op `--deep_execroot` flag
  - The BEP uses `AbortReason.OUT_OF_MEMORY` for abort events when
    the build tool is crashing due to OOM.
  - Added flag `incompatible_display_source_file_location` for `blaze
    query location=output` to print the location of line 1 of the
    actual source files instead of the source file targets. Provides
    a solution to bazelbuild#8900.
  - The Starlark json module is now available.
    Use json.encode(x) to encode a Starlark value as JSON.
    struct.to_json(x) is deprecated and will be disabled by
    the --incompatible_struct_has_no_methods flag.
  - The flag `--incompatible_objc_compile_info_migration` is enabled
    by default.  See bazelbuild#10854.
  - The flag `--incompatible_objc_provider_remove_compile_info` is
    enabled by default.  See bazelbuild#11359.
  - Add `relative_ast_path` feature for darwin builds to relativize
    swiftmodule paths for debugging
  - Use proto.encode_text(x) to encode a Starlark value as textproto.
    struct.to_proto() is deprecated and will be disabled by
    the --incompatible_struct_has_no_methods flag.
    Both functions now reject list/dict fields that contain list/dict
    elements.
  - Add --starlark:file option. This adds a capability to the
    (cquery)[https://docs.bazel.build/versions/master/cquery.html]
    feature in `--output=starlark` mode so that the expression to
    format output may be specified in a file.
    See [Configured Query Starlark
    Output](//docs.google.com/document/d/1kL6Tdmp6uLBa9lq_DbUSjIC87glO
    zKIyPoBeF95Rs4c/edit)
  - Flipped --incompatble_proto_output_v2 for aquery.
  - The --incompatible_load_java_rules_from_bzl flag is now a no-op.
  - The --incompatible_load_proto_rules_from_bzl flag is now a no-op.
  - Flipped --incompatible_force_strict_header_check_from_starlark
  - --incompatible_string_replace_count is flipped and removed
    (bazelbuild#11244)
  - Bazel skips incompatible targets based on target platform
    and `target_compatible_with` contents. See
    https://docs.bazel.build/versions/master/platforms.html for more
    details.
  - Bazel returns exit code 36 (rather than 1) if it fails to start a
    subprocess in a local sandbox due to environmental issues, for
    example, if the argument list is too long.
  - //tools/build_defs/pkg:pkg_rpm is no longer built in to Bazel.
    See bazelbuild#11218 for
    instructions
    on how to migrate to the replacement.
  - Javac now supports multiplex workers.
  - The `--default_ios_provisioning_profile` flag has been removed
    (it was a no-op).
  - Add support for using AndroidX dependencies in
    data-binding-enabled targets.
  - Fix data-binding generation for android_local_test.
  - Enable debug_prefix_map_pwd_is_dot feature by default on macOS,
    this passes `-fdebug-prefix-map=$PWD=.` for every compile to
    remove absolute paths from debug info.
  - --incompatible_run_shell_command_string is enabled by default
    (bazelbuild#5903)
  - py_binary now tolerates package paths that contain hyphens ('-').
    Note that such paths might not be importable from within Python
    code.
  - C++ Starlark API requires linker_inputs wrapping library_to_link.
    bazelbuild#10860
  - Toolchain rule is extended with target_settings attribute.
  - --incompatible_restrict_string_escapes=true is now the default.
    Unnecessary backslashes such as "\." in string literals are now
    an error, instead of being silently treated as "\\.".
    To fix the error while preserving behavior, double the backlash.
    However, the error is often a sign that the original code was
    wrong.
  - Propagate instrumented files for transitive sources of
    `android_library` and `android_binary`
  - --local_resources and --incompatible_remove_local_resources have
    been removed. If you've been setting --local resources or
    --incompatible_remove_local_resources=false, you must migrate to
    using --local_ram_resources and --local_cpu_resources instead.
  - Update rules_cc to commit b1c40e1de81913a3c40e5948f78719c28152486d
  - --incompatible_avoid_conflict_dlls=true is now the default.
  - Dynamic execution now uses the new scheduler by default.
  - Dynamic execution now uses the new scheduler by default.
  - The new dynamic scheduler is now the default.

This release contains contributions from many people at Google, as well as Adam Liddell, Akira Baruah, Alexander Grund, Alex Eagle, Andrew Z Allen, Austin Schuh, Benjamin Peterson, Benson Muite, Brentley Jones, Cristian Hancila, Dan Halperin, Daniel Wagner-Hall, Dmitry Ivankov, Dmitry Ivankov, erenon, Eric Cousineau, Greg Estren, Gregor Jasny, Grzegorz Lukasik, Grzegorz Lukasik, hollste, Joe Lencioni, johnjbarton, Jonathan Perry, Jonathon Belotti, Keith Smiley, Kevin Gessner, Matt Davis, Matt Mackay, Menny Even Danan, Neeraj Gupta, Philipp Schrader, Ricardo Delfin, Ryan Beasley, Samuel Giddins, Simon Bjorklen, Simon Stewart, Stiopa Koltsov, Thi Doan, ThomasCJY, Timothy Klim, Tom de Goede, vectoralpha, V Vn Ngha, William A Rowe Jr, Xavier Bonaventura, Yannic Bonenberger, Yannic.
coeuvre pushed a commit to coeuvre/bazel that referenced this issue Feb 1, 2021
Baseline: a991db7

Cherry picks:

   + 0d14ec8:
     Release 3.7.0 (2020-10-20)
   + d563446:
     Add `-XDcompilePolicy=simple` to default javacopts
   + 6336264:
     Update rules_cc reference to head of rules_cc as of 2020-11-11.
   + b3f9346:
     Bump rules_cc to support llvm 11.0.0 clang-cl compiler on Windows
   + e055b43:
     Remove accidentally re-added
     tools/jdk/java_toolchain_default.bzl.
   + 02838a1:
     Avoid the spawn cache if executing dynamically.
   + d0efd7b:
     Release 3.7.1 (2020-11-24)
   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue bazelbuild#12545.

Important changes:

  - Update rules_cc to commit b1c40e1de81913a3c40e5948f78719c28152486d

This release contains contributions from many people at Google, as well as William A Rowe Jr.
ulfjack pushed a commit to EngFlow/bazel that referenced this issue Mar 5, 2021
…RelativePath doesn't return a valid runfiles path for external source files anymore after the recent external source root change. Also, it won't work for external labels either once the --nolegacy_external_runfiles becomes default. This fixes issue bazelbuild#12545.

PiperOrigin-RevId: 345435649
ulfjack pushed a commit to EngFlow/bazel that referenced this issue Mar 5, 2021
…RelativePath doesn't return a valid runfiles path for external source files anymore after the recent external source root change. Also, it won't work for external labels either once the --nolegacy_external_runfiles becomes default. This fixes issue bazelbuild#12545.

PiperOrigin-RevId: 345435649
bazel-io pushed a commit that referenced this issue May 21, 2021
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue #12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     #13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 6d28486:
     Change `set -x` in coverage to be set by var
   + 9b9de65:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 9e7e592:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for #13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Finn Ball, George Gensure, Keith Smiley, Lauri Peltonen, Philipp Schrader, Ryan Beasley, Thi Doan, Timothy Klim, Ulf Adams, Vaidas Pilkauskas, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yuval Kaplan, Yuval.
meteorcloudy pushed a commit that referenced this issue May 25, 2021
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue #12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     #13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 6d28486:
     Change `set -x` in coverage to be set by var
   + 9b9de65:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 9e7e592:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for #13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Finn Ball, George Gensure, Keith Smiley, Lauri Peltonen, Philipp Schrader, Ryan Beasley, Thi Doan, Timothy Klim, Ulf Adams, Vaidas Pilkauskas, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yuval Kaplan, Yuval.
bazel-io pushed a commit that referenced this issue Aug 18, 2021
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue #12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     #13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for #13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix #10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + afb8196:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes #13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 7bbff61:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    #12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, bromano, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, Lauri Peltonen, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yuval Kaplan, Yuval.
katre pushed a commit to katre/bazel that referenced this issue Aug 23, 2021
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue bazelbuild#12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (bazelbuild#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (bazelbuild#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (bazelbuild#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     bazelbuild@34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     bazelbuild@0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for bazelbuild#13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (bazelbuild#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     bazelbuild#13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for bazelbuild#13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix bazelbuild#10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for bazelbuild#13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     bazelbuild@7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + afb8196:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes bazelbuild#13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 7bbff61:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    bazelbuild#12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, bromano, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, Lauri Peltonen, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yuval Kaplan, Yuval.
bazel-io pushed a commit that referenced this issue Aug 30, 2021
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue #12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     #13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for #13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix #10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + 9055c67:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes #13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 4b12fc8:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API
   + a04cb1b:
     Release 4.2.0 (2021-08-18)
   + ba86780:
     Revert "fix main repo starlark options parsing.
   + 9f67cdf:
     cquery: disable `--build_tests_only`.

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    #12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, bromano, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, Lauri Peltonen, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yuval Kaplan, Yuval.
apattidb pushed a commit to databricks/bazel that referenced this issue Sep 9, 2021
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue bazelbuild#12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (bazelbuild#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (bazelbuild#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (bazelbuild#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     bazelbuild@34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     bazelbuild@0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for bazelbuild#13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (bazelbuild#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     bazelbuild#13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for bazelbuild#13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix bazelbuild#10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for bazelbuild#13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     bazelbuild@7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + 9055c67:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes bazelbuild#13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 4b12fc8:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API
   + a04cb1b:
     Release 4.2.0 (2021-08-18)
   + ba86780:
     Revert "fix main repo starlark options parsing.
   + 9f67cdf:
     cquery: disable `--build_tests_only`.

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    bazelbuild#12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, bromano, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, Lauri Peltonen, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yuval Kaplan, Yuval.
bazel-io pushed a commit that referenced this issue Dec 2, 2021
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue #12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     #13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for #13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix #10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + 9055c67:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes #13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 4b12fc8:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API
   + a04cb1b:
     Release 4.2.0 (2021-08-18)
   + ba86780:
     Revert "fix main repo starlark options parsing.
   + 9f67cdf:
     cquery: disable `--build_tests_only`.
   + 02ad3e3:
     Release 4.2.1 (2021-08-30)
   + 039c72e:
     Enable user_link_flags_feature for macosx cc_toolchain_config
     (#14319)
   + af74287:
     Remote: Limit max number of gRPC connections by
     --remote_max_connections. (#14318)
   + 639f89d:
     Fix [Prepa] actions stuck in active state
   + dd8fe77:
     Delete marker file before fetching an external repository
     (#14324)
   + e6c8e8d:
     CI configs: switch centos to centos7_java11_devtoolset10

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    #12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Fabian Meumertzheim, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, Lauri Peltonen, Noa Resare, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, Xavier Bonaventura, Yannic Bonenberger, Yuval, Yuval Kaplan, bjacklyn, bromano, wisechengyi.
bazel-io pushed a commit that referenced this issue Dec 2, 2021
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue #12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + 268bedd:
     Update turbine
   + 613c9fe:
     Update turbine
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + 268bedd:
     Update turbine
   + 613c9fe:
     Update turbine
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     #13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for #13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix #10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + 9055c67:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes #13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 4b12fc8:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API
   + a04cb1b:
     Release 4.2.0 (2021-08-18)
   + ba86780:
     Revert "fix main repo starlark options parsing.
   + 9f67cdf:
     cquery: disable `--build_tests_only`.
   + 02ad3e3:
     Release 4.2.1 (2021-08-30)
   + ae0a6c9:
     Enable user_link_flags_feature for macosx cc_toolchain_config
   + af74287:
     Remote: Limit max number of gRPC connections by
     --remote_max_connections. (#14318)
   + 639f89d:
     Fix [Prepa] actions stuck in active state
   + 3069ac4:
     Delete marker file before fetching an external repository
   + e6c8e8d:
     CI configs: switch centos to centos7_java11_devtoolset10
   + 4fb535a:
     Release 4.2.2 (2021-12-02)
   + 4b2123e:
     Release 4.2.2 (2021-12-02)

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    #12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Fabian Meumertzheim, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, Lauri Peltonen, Noa Resare, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, Xavier Bonaventura, Yannic Bonenberger, Yuval, Yuval Kaplan, bjacklyn, bromano, wisechengyi.
bazel-io pushed a commit that referenced this issue Dec 2, 2021
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue #12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + 268bedd:
     Update turbine
   + 613c9fe:
     Update turbine
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + 268bedd:
     Update turbine
   + 613c9fe:
     Update turbine
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     #13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for #13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix #10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + 9055c67:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes #13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 4b12fc8:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API
   + a04cb1b:
     Release 4.2.0 (2021-08-18)
   + ba86780:
     Revert "fix main repo starlark options parsing.
   + 9f67cdf:
     cquery: disable `--build_tests_only`.
   + 02ad3e3:
     Release 4.2.1 (2021-08-30)
   + ae0a6c9:
     Enable user_link_flags_feature for macosx cc_toolchain_config
   + af74287:
     Remote: Limit max number of gRPC connections by
     --remote_max_connections. (#14318)
   + 639f89d:
     Fix [Prepa] actions stuck in active state
   + 3069ac4:
     Delete marker file before fetching an external repository
   + e6c8e8d:
     CI configs: switch centos to centos7_java11_devtoolset10

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    #12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Fabian Meumertzheim, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, Lauri Peltonen, Noa Resare, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, Xavier Bonaventura, Yannic Bonenberger, Yuval, Yuval Kaplan, bjacklyn, bromano, wisechengyi.
ptarjan pushed a commit to ptarjan/bazel that referenced this issue Dec 13, 2021
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue bazelbuild#12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + 268bedd:
     Update turbine
   + 613c9fe:
     Update turbine
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (bazelbuild#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (bazelbuild#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (bazelbuild#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     bazelbuild@34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     bazelbuild@0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + 268bedd:
     Update turbine
   + 613c9fe:
     Update turbine
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for bazelbuild#13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (bazelbuild#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     bazelbuild#13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for bazelbuild#13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix bazelbuild#10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for bazelbuild#13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     bazelbuild@7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + 9055c67:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes bazelbuild#13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 4b12fc8:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API
   + a04cb1b:
     Release 4.2.0 (2021-08-18)
   + ba86780:
     Revert "fix main repo starlark options parsing.
   + 9f67cdf:
     cquery: disable `--build_tests_only`.
   + 02ad3e3:
     Release 4.2.1 (2021-08-30)
   + ae0a6c9:
     Enable user_link_flags_feature for macosx cc_toolchain_config
   + af74287:
     Remote: Limit max number of gRPC connections by
     --remote_max_connections. (bazelbuild#14318)
   + 639f89d:
     Fix [Prepa] actions stuck in active state
   + 3069ac4:
     Delete marker file before fetching an external repository
   + e6c8e8d:
     CI configs: switch centos to centos7_java11_devtoolset10

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    bazelbuild#12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Fabian Meumertzheim, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, Lauri Peltonen, Noa Resare, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, Xavier Bonaventura, Yannic Bonenberger, Yuval, Yuval Kaplan, bjacklyn, bromano, wisechengyi.
Bencodes pushed a commit to Bencodes/bazel that referenced this issue Jan 10, 2022
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue bazelbuild#12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + 268bedd:
     Update turbine
   + 613c9fe:
     Update turbine
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (bazelbuild#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (bazelbuild#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (bazelbuild#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     bazelbuild@34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     bazelbuild@0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + 268bedd:
     Update turbine
   + 613c9fe:
     Update turbine
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for bazelbuild#13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (bazelbuild#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     bazelbuild#13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for bazelbuild#13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix bazelbuild#10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for bazelbuild#13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     bazelbuild@7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + 9055c67:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes bazelbuild#13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 4b12fc8:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API
   + a04cb1b:
     Release 4.2.0 (2021-08-18)
   + ba86780:
     Revert "fix main repo starlark options parsing.
   + 9f67cdf:
     cquery: disable `--build_tests_only`.
   + 02ad3e3:
     Release 4.2.1 (2021-08-30)
   + ae0a6c9:
     Enable user_link_flags_feature for macosx cc_toolchain_config
   + af74287:
     Remote: Limit max number of gRPC connections by
     --remote_max_connections. (bazelbuild#14318)
   + 639f89d:
     Fix [Prepa] actions stuck in active state
   + 3069ac4:
     Delete marker file before fetching an external repository
   + e6c8e8d:
     CI configs: switch centos to centos7_java11_devtoolset10

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    bazelbuild#12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Fabian Meumertzheim, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, Lauri Peltonen, Noa Resare, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, Xavier Bonaventura, Yannic Bonenberger, Yuval, Yuval Kaplan, bjacklyn, bromano, wisechengyi.
copybara-service bot pushed a commit that referenced this issue Oct 18, 2022
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue #12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + 3f2e8c8:
     Update turbine
   + 0577fa5:
     Update turbine
   + 268bedd:
     Update turbine
   + 613c9fe:
     Update turbine
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + 3f2e8c8:
     Update turbine
   + 0577fa5:
     Update turbine
   + 268bedd:
     Update turbine
   + 613c9fe:
     Update turbine
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     #13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for #13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix #10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + 9055c67:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes #13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 4b12fc8:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API
   + a04cb1b:
     Release 4.2.0 (2021-08-18)
   + ba86780:
     Revert "fix main repo starlark options parsing.
   + 9f67cdf:
     cquery: disable `--build_tests_only`.
   + 02ad3e3:
     Release 4.2.1 (2021-08-30)
   + ae0a6c9:
     Enable user_link_flags_feature for macosx cc_toolchain_config
   + af74287:
     Remote: Limit max number of gRPC connections by
     --remote_max_connections. (#14318)
   + 639f89d:
     Fix [Prepa] actions stuck in active state
   + 3069ac4:
     Delete marker file before fetching an external repository
   + e6c8e8d:
     CI configs: switch centos to centos7_java11_devtoolset10
   + 1537172:
     Release 4.2.2 (2021-12-02)
   + f64b755:
     [4.2.3] Update GrpcRemoteDownloader to only include relevant
     headers. (#16450) (#16459)

Incompatible changes:

  - GrpcRemoteDownloader only includes relevant headers instead of
    sending all credentials.

    Closes #16439.

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    #12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, bjacklyn, bromano, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Fabian Meumertzheim, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, Lauri Peltonen, Noa Resare, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yuval Kaplan, Yuval.
ShreeM01 pushed a commit that referenced this issue Apr 11, 2023
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue #12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + 3f2e8c8:
     Update turbine
   + 0577fa5:
     Update turbine
   + 268bedd:
     Update turbine
   + 613c9fe:
     Update turbine
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + 3f2e8c8:
     Update turbine
   + 0577fa5:
     Update turbine
   + 268bedd:
     Update turbine
   + 613c9fe:
     Update turbine
   + f28f697:
     Update turbine
   + 69b4362:
     Update turbine
   + 4d4ab50:
     Revert "Update turbine"
   + 89b9a04:
     Update turbine
   + d31f6df:
     Update turbine version
   + 57672ac:
     Update turbine
   + bef4bbb:
     Update turbine
   + d113d74:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     #13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for #13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix #10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + 9055c67:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes #13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 4b12fc8:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API
   + a04cb1b:
     Release 4.2.0 (2021-08-18)
   + ba86780:
     Revert "fix main repo starlark options parsing.
   + 9f67cdf:
     cquery: disable `--build_tests_only`.
   + 02ad3e3:
     Release 4.2.1 (2021-08-30)
   + ae0a6c9:
     Enable user_link_flags_feature for macosx cc_toolchain_config
   + af74287:
     Remote: Limit max number of gRPC connections by
     --remote_max_connections. (#14318)
   + 639f89d:
     Fix [Prepa] actions stuck in active state
   + 3069ac4:
     Delete marker file before fetching an external repository
   + e6c8e8d:
     CI configs: switch centos to centos7_java11_devtoolset10
   + 1537172:
     Release 4.2.2 (2021-12-02)
   + f64b755:
     [4.2.3] Update GrpcRemoteDownloader to only include relevant
     headers. (#16450) (#16459)

Incompatible changes:

  - GrpcRemoteDownloader only includes relevant headers instead of
    sending all credentials.

    Closes #16439.

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    #12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, bjacklyn, bromano, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Fabian Meumertzheim, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, Lauri Peltonen, Noa Resare, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yuval Kaplan, Yuval.
copybara-service bot pushed a commit that referenced this issue Apr 20, 2023
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue #12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + bef4bbb:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     #13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for #13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix #10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + 9055c67:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes #13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 4b12fc8:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API
   + a04cb1b:
     Release 4.2.0 (2021-08-18)
   + ba86780:
     Revert "fix main repo starlark options parsing.
   + 9f67cdf:
     cquery: disable `--build_tests_only`.
   + 02ad3e3:
     Release 4.2.1 (2021-08-30)
   + ae0a6c9:
     Enable user_link_flags_feature for macosx cc_toolchain_config
   + af74287:
     Remote: Limit max number of gRPC connections by
     --remote_max_connections. (#14318)
   + 639f89d:
     Fix [Prepa] actions stuck in active state
   + 3069ac4:
     Delete marker file before fetching an external repository
   + e6c8e8d:
     CI configs: switch centos to centos7_java11_devtoolset10
   + 1537172:
     Release 4.2.2 (2021-12-02)
   + f64b755:
     [4.2.3] Update GrpcRemoteDownloader to only include relevant
     headers. (#16450) (#16459)
   + ad6d3d5:
     Release 4.2.3 (2022-10-18)
   + 12f79d3:
     [4.2.4] Disable some failing tests (#18046)
   + 1f2b3ed:
     Patch zlib to fix compatibility with latest Xcode
   + 9fef234:
     [4.2.4] Bump minimum supported macOS versions to 10.13 (#18047)

Incompatible changes:

  - GrpcRemoteDownloader only includes relevant headers instead of
    sending all credentials.

    Closes #16439.

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    #12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, bjacklyn, bromano, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Fabian Meumertzheim, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, kshyanashree, Lauri Peltonen, Noa Resare, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yuval Kaplan, Yuval.
copybara-service bot pushed a commit that referenced this issue Apr 20, 2023
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue #12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + bef4bbb:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     #13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for #13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix #10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for #13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + 9055c67:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes #13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 4b12fc8:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API
   + a04cb1b:
     Release 4.2.0 (2021-08-18)
   + ba86780:
     Revert "fix main repo starlark options parsing.
   + 9f67cdf:
     cquery: disable `--build_tests_only`.
   + 02ad3e3:
     Release 4.2.1 (2021-08-30)
   + ae0a6c9:
     Enable user_link_flags_feature for macosx cc_toolchain_config
   + af74287:
     Remote: Limit max number of gRPC connections by
     --remote_max_connections. (#14318)
   + 639f89d:
     Fix [Prepa] actions stuck in active state
   + 3069ac4:
     Delete marker file before fetching an external repository
   + e6c8e8d:
     CI configs: switch centos to centos7_java11_devtoolset10
   + 1537172:
     Release 4.2.2 (2021-12-02)
   + f64b755:
     [4.2.3] Update GrpcRemoteDownloader to only include relevant
     headers. (#16450) (#16459)
   + ad6d3d5:
     Release 4.2.3 (2022-10-18)
   + 12f79d3:
     [4.2.4] Disable some failing tests (#18046)
   + 1f2b3ed:
     Patch zlib to fix compatibility with latest Xcode
   + 9fef234:
     [4.2.4] Bump minimum supported macOS versions to 10.13 (#18047)

Incompatible changes:

  - GrpcRemoteDownloader only includes relevant headers instead of
    sending all credentials.

    Closes #16439.

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    #12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, bjacklyn, bromano, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Fabian Meumertzheim, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, kshyanashree, Lauri Peltonen, Noa Resare, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yuval Kaplan, Yuval.
fweikert pushed a commit to fweikert/bazel that referenced this issue May 25, 2023
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue bazelbuild#12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (bazelbuild#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (bazelbuild#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (bazelbuild#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     bazelbuild@34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     bazelbuild@0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + bef4bbb:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for bazelbuild#13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (bazelbuild#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     bazelbuild#13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for bazelbuild#13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix bazelbuild#10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for bazelbuild#13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     bazelbuild@7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + 9055c67:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes bazelbuild#13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 4b12fc8:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API
   + a04cb1b:
     Release 4.2.0 (2021-08-18)
   + ba86780:
     Revert "fix main repo starlark options parsing.
   + 9f67cdf:
     cquery: disable `--build_tests_only`.
   + 02ad3e3:
     Release 4.2.1 (2021-08-30)
   + ae0a6c9:
     Enable user_link_flags_feature for macosx cc_toolchain_config
   + af74287:
     Remote: Limit max number of gRPC connections by
     --remote_max_connections. (bazelbuild#14318)
   + 639f89d:
     Fix [Prepa] actions stuck in active state
   + 3069ac4:
     Delete marker file before fetching an external repository
   + e6c8e8d:
     CI configs: switch centos to centos7_java11_devtoolset10
   + 1537172:
     Release 4.2.2 (2021-12-02)
   + f64b755:
     [4.2.3] Update GrpcRemoteDownloader to only include relevant
     headers. (bazelbuild#16450) (bazelbuild#16459)
   + ad6d3d5:
     Release 4.2.3 (2022-10-18)
   + 12f79d3:
     [4.2.4] Disable some failing tests (bazelbuild#18046)
   + 1f2b3ed:
     Patch zlib to fix compatibility with latest Xcode
   + 9fef234:
     [4.2.4] Bump minimum supported macOS versions to 10.13 (bazelbuild#18047)

Incompatible changes:

  - GrpcRemoteDownloader only includes relevant headers instead of
    sending all credentials.

    Closes bazelbuild#16439.

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    bazelbuild#12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, bjacklyn, bromano, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Fabian Meumertzheim, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, kshyanashree, Lauri Peltonen, Noa Resare, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yuval Kaplan, Yuval.
fweikert pushed a commit to fweikert/bazel that referenced this issue May 25, 2023
Baseline: 37a429a

Cherry picks:

   + a689d67:
     Use getRunfilesPath for run_under executable path generation.
     getRootRelativePath doesn't return a valid runfiles path for
     external source files anymore after the recent external source
     root change. Also, it won't work for external labels either once
     the --nolegacy_external_runfiles becomes default. This fixes
     issue bazelbuild#12545.
   + d90ec67:
     Fix NPE when coveragerunner is not set on the toolchain.
   + 8555789:
     Fix the classic query package-loading cutoff optimization with
     external workspaces.
   + d113d74:
     Update turbine
   + 1489f0f:
     Support Scala3 .tasty files
   + 0d2d95c:
     Update to java_tools javac11 release 10.5 (bazelbuild#12647)
   + a9419f3:
     Fix common prefix for instrumentation filter
   + 84fadcf:
     Fix builds for filegroup targets with incompatible dependencies
   + e43825d:
     Revert "Remove
     --incompatible_blacklisted_protos_requires_proto_info"
   + 082d58d:
     Transform roots along with paths during output deletion.
   + e8835c1:
     AttributeContainer.Large now handles more than 127 attributes.
   + e1e8734:
     Add an env attribute to all test and binary rule classes
   + a87d7ed:
     Take no action to prefetch empty artifacts.
   + 3e969ff:
     Fix a couple of bugs with Incompatible Target Skipping
   + e667082:
     Pass --host_action_env to host options hostActionEnvironment
     attribute
   + 07400c0:
     Add --{no,}autodetect_server_javabase.
   + c833660:
     Only treat "env" and "env_inherit" attrs specially for native
     rules
   + 6a60b30:
     Fix coverage support when using default_java_toolchain. (bazelbuild#12801)
   + 4158a6f:
     Revert JacocoCoverage target to remote_java_tools_java_import
     and add a new target for remore_java_tools_filegroup. (bazelbuild#12813)
   + f6d30cf:
     Add windows_msvc back to conditions in bazel_tools.
   + 6b33bdb:
     Release 4.0.0 (2021-01-21)
   + 8811e27:
     Fix error message from getPrerequisites to not print internal
     details.
   + 27e15ad:
     Clean up ConfiguredTargetValueAccessor and
     ConfiguredTargetAccessor
   + e87feb8:
     Move getConfigConditions into ConfiguredTarget.
   + 34d9823:
     Change ConfiguredTargetQuery to use KeyedConfiguredTarget as a
     value.
   + 079bb7d:
     Clean up old dependencies that are unused since
     bazelbuild@34d98234324da83e93ba0d
     5ef5702880d5ac7c5c.
   + e03cb63:
     Update bazelbuild/platforms to a current release. - Roll forward
     bazelbuild@0a4533420a3de467fd211d
     7f925cf88e0cd5b76a  with kythe fix.
   + 2eb1bf5:
     Update docs and tests to use the @platforms//:incompatible
     constraint
   + c71697c:
     Clarify test_suite behaviour in the Platforms docs
   + dfb70ea:
     Enable toolchain resolution for filegroup targets.
   + 24d0864:
     PlatformProviderUtils should ignore targets that don't have the
     needed
   + ba60c0b:
     ijar: fix manifest sections handling
   + 58bb42a:
     Revert "Switch to -fdebug-compilation-dir"
   + bef4bbb:
     Update turbine
   + ad241fb:
     Allow cquery to filter out incompatible targets
   + 1782f0a:
     Patch grpc to fix cares selecting the wrong source when building
     for darwin_arm64 cpu.
   + 8f7bc2f:
     [1/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 848a517:
     [2/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 9b30172:
     [3/3] Bump grpc to 1.33.1 to fix corruption when downloading CAS
     blobs
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for bazelbuild#13110
   + 321fe3b:
     Prevent --repo_env from triggering unnecessary fetches
   + 3ebf658:
     Prevent a crash when using --repo_env=VAR without a value
   + 913a985:
     Report digest of failed uploads
   + 5122617:
     Status error presentation with details
   + 9a70805:
     Fix double shutdown of BuildEventArtifactUploader when BES+File
     output enabled.
   + 325eb95:
     Add rxjava3 to third_party
   + ceaac96:
     remote: set executable bit of an input file based on its real
     value
   + 5b786da:
     Remote: correctly implement equals and hashCode.
   + 4864850:
     Fixed an error that bazel binary is not executable when testing
     with remote execution.
   + bc54c64:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata.
   + 92955e6:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 2)
   + 75bd1ff:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 3)
   + 37ee252:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 4)
   + 71e35b1:
     Remote: Use parameters instead of thread-local storage to
     provide tracing metadata. (Part 5)
   + 32fc451:
     Write/QueryWriteStatus logging refinement/addition
   + 97963c5:
     Remote: gRPC load balancing. (Part 1)
   + e2b9a42:
     Remote: gRPC load balancing. (Part 2)
   + 6667ad7:
     Remote: gRPC load balancing. (Part 3)
   + 7c081eb:
     Remote: gRPC load balancing. (Part 4)
   + 17afbe4:
     Implement getMessage for BulkTransferException
   + a6293b3:
     Remote: gRPC load balancing. (Part 5)
   + 7a62c2d:
     Remote: Add interoperability between Rx and ListenableFuture.
   + 1fcb18a:
     Update to latest remote-execution proto
   + dad9630:
     Set Platform on Action not just Command
   + 6c5a3ee:
     Remote: Add AsyncTaskCache which is used to deduplicate task
     executions and cache the results.
   + 9d0c732:
     Remote: Use AsyncTaskCache inside RemoteActionInputFetcher.
   + f54fe07:
     Add --experimental_repository_disable_download to allow users
     disable download for external repos
   + b243584:
     Report errors parsing rewriter config file
   + 63bc1c7:
     Downloader rewriter config has all_blocked_message
   + 495ac92:
     Allow UrlRewriter to change protocol, i.e. https->http, and
     http->https
   + 8dbbde0:
     Allow overriding the hostname and instance name in bytestream://
     URIs
   + 0881c80:
     Don't set requestId on non-multiplex requests.
   + e3b7e17:
     When generating a symlink in _virtual_includes, add the original
     header to the 'allowed to use' set too
   + f8f66f3:
     Make SimpleLogHandler not swallow interrupts.
   + f8606e5:
     linux-sandbox: don't assume -lrt, -D__STDC_FORMAT_MACROS
   + dac0d40:
     Improve "Common Attributes" section
   + a607d9d:
     Never create more than one process per WorkerMultiplexer.
   + 80c03ef:
     Move sending requests and reading responses for multiplex
     workers into separate subthreads.
   + 003cfcd:
     Allow use of JSON protocol in multiplex workers.
   + 308bce3:
     Actively kill off still-active workers when stopping work on
     interrupt.
   + 8959dff:
     Add sanitizer support to Apple platforms
   + 32f16e9:
     Fix a Google-internal broken link.
   + c9e2be5:
     Add SHA-1 to subresource integrity format for download()
     checksums
   + 3b3e642:
     Remove fallback strategy support for workers, add flag for it in
     sandbox.
   + 3457f2a:
     Update to java_tools javac11 10.6 (bazelbuild#13245)
   + 4928295:
     Allow .S files in C++ Starlark cc_common.compile.
   + 1b18d65:
     Automatic code cleanup.
   + b5d6c38:
     Change short output of worker type to have the same logic as the
     worker creation for sandboxing vs. multiplex.
   + e7a0a71:
     More properly destroy workers on interrupt.
   + 7056711:
     Make WorkRequestHandler do a GC after some amount of CPU time
     has been used on requests. For Bazel and Blaze, defaults to 10s
     based on benchmarking.
   + 596653d:
     Allow tree artifacts to be source or header inputs to
     cc_common.compile()
   + 055c93d:
     Switch to path autocompletion after -- for bazel run commands.
   + 807f2a1:
     Fix Incompatible Target Skipping for test args
   + 9a5cd85:
     Fix order of build request id and command id
   + 706f5ac:
     Fix bazel crash when passing config_setting to
     target_compatible_with
   + 61da1d2:
     Support multiple --bazelrc on command line
   + 5593358:
     Update ConfiguredTargetFunction.computeUnloadedToolchainContexts
     to
   + 662cf54:
     Remote: Fix an issue that a failed action could lead to
     RuntimeException caused by InterruptedException thrown when
     acquiring gRPC connections.
     bazelbuild#13239
   + a3a1763:
     Pass more `--add-exports=` flags
   + d2b9428:
     Remote: Fixed a bug that remote cache is missed due to
     executable bit is changed
   + 616dc26:
     Fix Bazel Coverage with C++ to work with Remote Execution
   + 5f40d12:
     Fix external_path_test with newer Xcode versions.
   + b416193:
     Allow using embedded tools in sandboxed spawn runners.
   + eb762d4:
     Fix racy write of temporary files while staging virtual inputs
     for the sandbox.
   + f31e867:
     Update platforms_test to not rely on filegroup not using
     toolchain
   + 13031e5:
     Update SkyframeTests to not rely on filegroup not using toolchain
   + 1165182:
     Update ConfigurableAttributesTest to not rely on filegroup not
     using …
   + 4b68532:
     Make WorkerExecRoot not be a subclass of SandboxedSpawn.
   + 31db460:
     Make WorkerExecRoot not be re-created on each createFileSystem()
     call. Preparation for holding a map of existing links, but also
     just nicer.
   + a2cc046:
     Start the file existence check traversal from the execroot base
     instead of execroot so that external repo files at
     "<execroot>/../<path>" are correctly handled when the sibling
     repository layout is enabled.
   + b048282:
     Use readdir for cleanExisting in WorkerExecRoot.
   + 270f00d:
     Add native support for Apple Silicon
   + 8e56b94:
     Explicitly state that embedding macOS OpenJDK is for x86_64
   + 09c621e:
     Remote: Fix a race that AsyncTaskCache#Execution could be reused
     after disposed which results in
     CancellationException("disposed") propagated to downstream.
   + 0299cd7:
     Remove wrapped_clang params files after use
   + 47edc57:
     Silence swiftmodule timestamp warnings
   + f6e1074:
     Remote: Use shutdownNow() instead of shutdown() in
     ChannelConnection#close() as a workaround to a gRPC bug.
   + 71be4ea:
     And mnemonic and label to remote metadata
   + 615e1b1:
     Change `set -x` in coverage to be set by var
   + fe4daea:
     Bump minimal JDK install base maximum size from 290 to 295 MB.
   + 4840a68:
     Remote: Check the return value of ActionOwner.getLabel() since
     it could be `null`.
   + 14abe4f:
     Allow `DiffAwareness` to share precomputed information about the
     workspace and propagate it to the `WorkspaceStatusAction`.
   + 082d987:
     Implement available() method for Windows subprocesses.
   + c2bdd03:
     Move --repo_env to common options
   + e09f274:
     Revert "Documentation for bazelbuild#13110"
   + a165baa:
     Revert "Clean up RuleContext to use a Table instead of a Map of
     Maps."
   + 51fb9e1:
     Revert "Support execution constraints per exec group"
   + cb6e5c2:
     Revert "Allow exec groups to inherit from the rule or other exec
     groups."
   + 2ac6581:
     Release 4.1.0 (2021-05-21)
   + 7a0f36e:
     Change gceMachineType of highcpu platform from n1-highcpu-32 to
     e2-highcpu-32
   + 19491a9:
     Fix bazelbuild#10127: Remove Python 2 dependency from tools/android.
   + 80c59de:
     fix main repo starlark options parsing - now flags passed on the
     command line as --@main_workspace//flag and --//flag will both
     parse to --//flag. Before this CL, the former maintained its
     workspace prefix and we would get different entries for these
     two formats.
   + 451b296:
     Update threshold for long path shortening to be MAX_PATH - 4
   + 671e048:
     Force source files to be readable before copying them from
     sandbox.
   + 6080c1e:
     Let workers finish lost races without delaying dynamic execution.
   + ee738da:
     Fix label_flag and label_setting to not have a dependency on the
     default
   + 74de0ba:
     Java coverage: fix handling of external files
   + 48eee8b:
     [Bazel] Fix mobile-install for python2
   + 763dd0c:
     Add `stub_shebang` to `py_runtime`
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 6dc941e:
     Remove restriction on generate_pdb_file to be only used in dbg
     and fastbuild mode
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + aaae8ce:
     Update DEFAULT_MACOS_CPU to match host
   + 2f0927a:
     Fix symlink creation on older Windows versions
   + fd9cffd:
     Suppress interrupted status during pool closure
   + 33903d2:
     Fix Windows developer mode symlinks
   + 0cd1666:
     Respect Starlark options with values in `removeStarlarkOptions()`
   + 7920ffe:
     cquery inherits from `test` not `build`
   + 1e258d2:
     Allow exec groups to inherit from the rule or other exec groups.
   + d067669:
     Support execution constraints per exec group
   + f1e0d34:
     Clean up RuleContext to use a Table instead of a Map of Maps.
   + 8186fbb:
     Documentation for bazelbuild#13110
   + e376580:
     Split ExecGroup into a new target.
   + 0cbb8a8:
     Create a new interface to allow Starlark objects to get a thread
     when getIndex is called.
   + d2e21ce:
     Renamed ExecGroupCollection to clarify that it is only for
     Starlark usage.
   + b9519f9:
     Make StarlarkExecGroupContext use AutoValue.
   + 52b1b74:
     Use a dummy toolchain context for rules that don't have one.
   + 41877d0:
     Extract a separate StarlarkToolchainContext for starlark-only
     operations.
   + b120d4f:
     Fix toolchains to support type lookup.
   + dc140d0:
     Move DEFAULT_EXEC_GROUP_NAME from ToolchainCollection to
     ExecGroup.
   + 9b18d95:
     Rename ToolchainCollection.getExecGroups to getExecGroupNames.
   + 10d4473:
     BuildViewForTesting should directly call into
     ConfiguredTargetFunction.
   + 58a6fb1:
     Move exec group tests out of platforms_test and into integration.
   + 7d5493d:
     Update creating exec groups that explicitly copy from defaults.
   + 8c6382a:
     Create a new ExecGroupCollection container to manage exec group
     inheritance and exec property parsing.
   + b4b0c32:
     Fix unix toolchain for macos arm64 platform
   + f64f071:
     Add `required_providers` attribute to Starlark defined aspects.
   + f2cbdcf:
     Don't ever claim /dev/null is an execpath.
   + ceec93c:
     Don't ever claim /dev/null is an execpath.
   + 1f3f9f4:
     Use the parent directory of the exec root as the input root on
     RBE.
   + 4efeac9:
     Make the Merkle tree computation work in the wake of
     bazelbuild@7149f578006a4ad0d51df6
     9830a6986749b34df5 .
   + b56a2aa:
     Remote: Use execRoot as input root and do NOT set working
     directory by default.
   + ae53991:
     Remote: Add RemoteExecutionService as a layer between spawn
     execution and remote execution.
   + 0c07c2e:
     Remote: Add remoteCacheable key to execution log
   + 5e617d8:
     Remote: Register "remote" strategy even if remote execution is
     not available.
   + 4ca8946:
     Remote: Add --experimental_capture_corrupted_outputs flag.
   + 97d7b4c:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + ba5b2a7:
     when writing to local disk cache, open files later in order to
     avoid "too many open files"
   + 3551898:
     Propagate test envs to xml generation action
   + 9f8c678:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + af42653:
     Automatic code cleanup.
   + 07a84ce:
     Remote: Another attempt to fix the CancellationException error
     in AsyncTaskCache caused by a race condition.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 18c8216:
     Remote: Do not upload empty output to remote cache.
   + 6a138a6:
     Fix compiling errors
   + bcce6dd:
     Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
   + c8c0d94:
     Export proguard specs from aar_import
   + 1a0285c:
     Fix stripping of macOS loadable bundles
   + 0d3c231:
     Roll forward config_setting visibility enforcement behind a flag.
   + bb7a010:
     Fix merge conflicts.
   + 8b8e77e:
     Remove redundant declaration.
   + 7c92cfc:
     Ignore empty virtual artifacts when spawn-logging inputs.
   + 4158b61:
     Use correct exit code on invalid aquery --output
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + 0e65273:
     Change MIN_BUILD_TOOLS_REVISION to 30.0.0
   + 6f9909c:
     Update Android remote tools to ensure Bazel uses the latest
     Android tooling that has been updated to support AndroidX
     databinding generation.
   + 31d88c6:
     Automated rollback of commit
     9a1d428.
   + 951a302:
     Increase allowed size of the install_base.
   + a7845f6:
     Increase allowed size for install base again.
   + affc27f:
     Bump version of java allocation instrumenter.
   + 7efabba:
     Reference the correct version of the java allocation
     instrumenter.
   + 9055c67:
     Support extracting aar files.
   + 861c3ca:
     Revert "Remote: Fix a race when reporting action progresses."
   + 92ec798:
     Revert "Remote: Display download progress when actions are
     downloading outputs from remote cache."
   + ce091ab:
     Revert "Fix compiling errors"
   + 1b19cd3:
     Revert "Remote: Fix a bug that the XML generation is executed
     even if test.xml is generated when build with
     --remote_download_minimal."
   + 988b56f:
     Revert "Remote: Report checking cache status before the action
     is scheduled to run remotely."
   + 35c98d0:
     Revert "Let workers finish lost races without delaying dynamic
     execution."
   + c4e22b9:
     Migrate ExampleWorker to use WorkRequestHandler.
   + 230be16:
     Do not interleave readdir() calls with deletion of directory
     entries.
   + 3cc8ce6:
     Propagate OOME if NewByteArray allocation failed
   + 19fc15e:
     Create helper method for sandbox tests, transform existing tests
     into using it.
   + deb1006:
     Cleanup: Replace NULL with nullptr
   + f4b5e02:
     Let workers finish lost races without delaying dynamic execution.
   + 186deca:
     Interface and flag specification for worker cancellation.
   + 5894a85:
     Create BUILD file in worker tests directory instead of running
     tests from the parent directory.
   + e9e6978:
     Server-side implementation of worker cancellation.
   + 5103662:
     Add builder for WorkRequestHandler.
   + 1a519bb:
     Makes singleplex requests be handled in separate threads in
     WorkRequestHandler.
   + 779d660:
     Only allow worker async finishing when sandboxed.
   + a698bef:
     Support for cancellation in WorkRequestHandler.
   + 9dc95af:
     Make workers restart on flags that affect their
     creation/behaviour.
   + 7e5cd52:
     Remote: Report checking cache status before the action is
     scheduled to run remotely.
   + 6e134a1:
     Remote: Fix a bug that the XML generation is executed even if
     test.xml is generated when build with --remote_download_minimal.
   + d4d0714:
     Fix compiling errors
   + 2579c9a:
     Eagerly initialize JNI copies of Java classes: doing lazy
     initialization on a per-method basis doesn't save anything and
     adds a tiny bit of overhead to every one of these calls.
   + 0f812eb:
     Remote: Display download progress when actions are downloading
     outputs from remote cache.
   + 3835d9b:
     Update the WorkRequestHandler to use callbacks of type:
     BiFunction<WorkRequest, PrintWriter, Integer>:  - Mark
     constructors that use BiFunction<List<String>, PrintWriter,
     Integer> callback as deprecated.  - Use a wrapper class for the
     BiFunction<WorkRequest, PrintWriter, Integer>. Suggesting this
     to avoid having two constructors that takes a BiFunction, as it
     creates a confusion between the deprecated and new constructor
     when given a lambda expressions.
   + 5e352af:
     Fix bug in WorkRequestHandler's handling of singleplex requests
     that would cause occasional hangs.
   + b51b31d:
     Remote: Fix a race when reporting action progresses.
   + c9d823e:
     Disable flaky test.
   + e6809c9:
     Revert "Check the result of Future.cancel() when cancelling the
     other branch of dynamic execution."
   + be4cbc7:
     Revert "Move use of legacy sandbox -> local fallback to only be
     used after all strategies have been tried, and improve messages
     around it."
   + b32349f:
     Set a fallback dynamic local strategy even when the
     dynamic_local_strategy flag is passed.
   + f395157:
     Allow running an extra spawn for local branch of dynamic
     execution.
   + 039461c:
     Adding debugging information for case when two branches
     apparently cancel each other.
   + b2231c5:
     Move use of legacy sandbox -> local fallback to only be used
     after all strategies have been tried, and improve messages
     around it.
   + 5b95d91:
     Check the result of Future.cancel() when cancelling the other
     branch of dynamic execution.
   + 1962a59:
     Fix the case where if all strategies for one branch of `dynamic`
     execution fail to accept (that is, refuse to even take) the
     action given, the whole action fails. Instead of seeing whether
     the other branch can run and the action that that it succeeded.
   + b7c1ad2:
     Fix rare crash in dynamic execution where both branches got
     cancelled.
   + 2c3cff5:
     Check if `treeDeleter` is actually async before casting it.
     Fixes bazelbuild#13240.
   + 1a89ce1:
     Make worker JSON protocol properly ignore unknown fields.
   + 4b12fc8:
     Fix test_source_file_does_not_override_standard_library to work
     with Python 3.9.
   + f4e1036:
     Removing line ending matches in tests to be compatible on Windows
   + ba74df0:
     Refactors CompilationSupport for objc to use existing API
   + a04cb1b:
     Release 4.2.0 (2021-08-18)
   + ba86780:
     Revert "fix main repo starlark options parsing.
   + 9f67cdf:
     cquery: disable `--build_tests_only`.
   + 02ad3e3:
     Release 4.2.1 (2021-08-30)
   + ae0a6c9:
     Enable user_link_flags_feature for macosx cc_toolchain_config
   + af74287:
     Remote: Limit max number of gRPC connections by
     --remote_max_connections. (bazelbuild#14318)
   + 639f89d:
     Fix [Prepa] actions stuck in active state
   + 3069ac4:
     Delete marker file before fetching an external repository
   + e6c8e8d:
     CI configs: switch centos to centos7_java11_devtoolset10
   + 1537172:
     Release 4.2.2 (2021-12-02)
   + f64b755:
     [4.2.3] Update GrpcRemoteDownloader to only include relevant
     headers. (bazelbuild#16450) (bazelbuild#16459)
   + ad6d3d5:
     Release 4.2.3 (2022-10-18)
   + 12f79d3:
     [4.2.4] Disable some failing tests (bazelbuild#18046)
   + 1f2b3ed:
     Patch zlib to fix compatibility with latest Xcode
   + 9fef234:
     [4.2.4] Bump minimum supported macOS versions to 10.13 (bazelbuild#18047)

Incompatible changes:

  - GrpcRemoteDownloader only includes relevant headers instead of
    sending all credentials.

    Closes bazelbuild#16439.

Important changes:

  - Multiplex persistent workers can now use the JSON protocol.
  - enforce config_setting visibility. See
    bazelbuild#12932 for details.
  - The minimum Android build tools version for the Android rules is
    now 30.0.0
  - Updates worker protocol with cancellation fields, and adds
    experimental_worker_cancellation flag to control cancellation.
  - If all strategies of one branch (the local or remote execution
    branch) of the `dynamic` strategy fail to even accept (via the
    response they give from `canExec`) the action, `dynamic` will now
    try to see if the other branch can accept it. (Trying to run it
    and it failing will still cause a failure if it was the first
    result, this is about strategies claiming they can't even try the
    action)

This release contains contributions from many people at Google, as well as Alex Eagle, Austin Schuh, Benjamin Peterson, bjacklyn, bromano, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Daniel Wagner-Hall, Denys Kurylenko, Ed Schouten, Fabian Meumertzheim, Finn Ball, George Gensure, Greg Estren, Johannes Abt, Keith Smiley, Kevin Hogeland, kshyanashree, Lauri Peltonen, Noa Resare, Philipp Schrader, Ryan Beasley, Thi Doan, ThomasCJY, Timothy Klim, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yuval Kaplan, Yuval.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team-Remote-Exec Issues and PRs for the Execution (Remote) team untriaged
Projects
None yet
Development

No branches or pull requests

5 participants