-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Support execution constraints per exec group #13110
Conversation
All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the ℹ️ Googlers: Go here for more info. |
All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the ℹ️ Googlers: Go here for more info. |
I am rolling forward the test exec change separately (#13119) so it can be separated from this. Once that is in place, can you rebase and update the commits to make the CLA bot happy? |
Sure, will do (in fact, I believe this PR only includes those changes, but I originally based it on #12719). |
Previously, exec groups were rejected on platforms. This change allows setting arbitrary exec groups on platforms, and applying only the relevant ones to actions after platform resolution. Also fixes a bug where the default execution platform for the "test" execution group did not take into account execution constraints set on targets.
…r specific groups take precedence.
5736c61
to
da8952d
Compare
…t-on-target-platform
@katre: rebased and double-checked everything's in order. Thanks! |
Thanks! I've taken a quick look at this and it seems okay, but I want to think about it some more. One thing that would really help would be if you could add a test case to https://cs.opensource.google/bazel/bazel/+/master:src/test/shell/bazel/toolchain_test.sh: this will a) test the code, and b) show how it's intended to be used. It would also be useful to add tests to https://cs.opensource.google/bazel/bazel/+/master:src/test/java/com/google/devtools/build/lib/analysis/StarlarkExecGroupTest.java |
Great, will do. I've been wondering where would tests actually go. Thank you! |
Added a couple of test cases. I think that just about covers it, but do let me know if you think any more could be helpful. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, just a few comments and then this will be ready to merge. Thanks for working with me to get this in shape!
@@ -321,7 +321,7 @@ EOF | |||
bazel build --extra_execution_platforms=":my_platform" :a --execution_log_json_file out.txt || fail "Build failed" | |||
grep "platform_key" out.txt || fail "Did not find the platform key" | |||
grep "default_value" out.txt || fail "Did not find the default value" | |||
grep "test_value" out.txt && fail "Used the test-action value when not testing" | |||
(! grep "test_value" out.txt) || fail "Used the test-action value when not testing" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't know this syntax existed. I see the benefits, but it's very different than all the other tests, so can you please change this back to the previous style, and use the same style in your new tests? I think consistency is better in this case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done. I couldn't figure out why, but one of the tests failed with that style (and I missed the test case with expected failure). I ended up removing it, as there is a positive test anyway.
private static ImmutableMap<String, ImmutableMap<String, String>> parseExecProperties( | ||
Map<String, String> rawExecProperties, Set<String> execGroups) | ||
throws InvalidExecGroupException { | ||
private static Map<String, Map<String, String>> parseExecGroups( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow, I hate Map> so much, but I see this predates your change so leave it. I will probably send a followup shortly to change this to a Table.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Acknowledged. I didn't know about Table (never wrote Java at Google). I would be happy to fix this - please let me know if you'd like me to do this as part of this PR - but you probably have more context.
Thanks for the review! It's been a while since I made this change, and initially I intended it as a sketch - glad it can be merged. |
I'm merging this today. Thanks for your patience! The internal reviewer did have one request: can you send a separate PR to update the docs for exec groups (at https://github.com/bazelbuild/bazel/blob/master/site/docs/exec-groups.md) to mention the new functionality? |
This reverts commit 5f94563. Signed-off-by: Philipp Wollermann <philwo@google.com>
This reverts commit 5f94563. Signed-off-by: Philipp Wollermann <philwo@google.com>
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.
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.
When computing exec properties from the execution platform for an action, take into account only the properties that are relevant to the action's exec groups. In particular, allow setting exec properties for arbitrary exec groups on platforms. Previously, any such properties were rejected. With this change, the following becomes possible: ``` cc_test( name = "my_test", ..., exec_properties = { "test.key": "value", }, ) ``` This will apply `{"key": "value"}` for the test-runner action only (i.e., compilation and linkage won't be affected). The following also becomes possible: ``` platform( name = "test_platform", constraint_values = [":test_constraint"], exec_properties = { "test.key": "value", }, ) cc_test( name = "my_test", ..., exec_compatible_with = [":test_constraint"], ) ``` This achieves the same in a more succinct way. For related discussion, see PR #12719 by @ulfjack. Closes #13110. PiperOrigin-RevId: 361167318
Closes #13167. PiperOrigin-RevId: 361885312
When computing exec properties from the execution platform for an action, take into account only the properties that are relevant to the action's exec groups. In particular, allow setting exec properties for arbitrary exec groups on platforms. Previously, any such properties were rejected. With this change, the following becomes possible: ``` cc_test( name = "my_test", ..., exec_properties = { "test.key": "value", }, ) ``` This will apply `{"key": "value"}` for the test-runner action only (i.e., compilation and linkage won't be affected). The following also becomes possible: ``` platform( name = "test_platform", constraint_values = [":test_constraint"], exec_properties = { "test.key": "value", }, ) cc_test( name = "my_test", ..., exec_compatible_with = [":test_constraint"], ) ``` This achieves the same in a more succinct way. For related discussion, see PR bazelbuild#12719 by @ulfjack. Closes bazelbuild#13110. PiperOrigin-RevId: 361167318
Closes bazelbuild#13167. PiperOrigin-RevId: 361885312
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.
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.
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.
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.
Does this only work for test actions of native rules? I'm noticing that rust_test rules from bazelbuild/rules_rust do not get |
Hmm, all test rules should get the "test" exec group added, but I'm not sure I've ever tested that with Starlark rules. Can you open a separate issue and ping me? |
@katre @djmarcin This isn't instead of a new issue, and it's probably better if you take a look, but I've actually taken a look yesterday and thought I might share my findings - looks like this line is missing here (or possibly better, here, to prevent breaking those who have already added a test exec group manually). I started preparing a PR, but for some reason couldn't get the tests to pass even though a manual run with the patched Bazel did work correctly. |
This is a pull request, so I'd prefer to have an issue I can track and attach pull requests to. Unless there's another issue you think already fits this? |
No, I was just sharing my thoughts in the meantime until @djmarcin opens an issue. |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
When computing exec properties from the execution platform for an action, take into account only the properties that are relevant to the action's exec groups. In particular, allow setting exec properties for arbitrary exec groups on platforms. Previously, any such properties were rejected.
With this change, the following becomes possible:
This will apply
{"key": "value"}
for the test-runner action only (i.e., compilation and linkage won't be affected). The following also becomes possible:This achieves the same in a more succinct way.
For related discussion, see PR #12719 by @ulfjack.