-
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
incompatible_enforce_config_setting_visibility #12932
Comments
This was rolled back in 36d228b because of depot breakages. This version adds incompatible flags to safely introduce enforcement. See #12932 and #12933 for flag settings. *** Original change description *** Roll back #12877. *** Fixes #12669. RELNOTES: enforce config_setting visibility. See #12932 for details. PiperOrigin-RevId: 354930807
Baseline: 8a42645 Cherry picks: + e3c78c4: Ensure that test status artifacts are reported as top-level artifacts. + 1f52e9a: Support rolling releases in Bazel release scripts. Incompatible changes: - Removing java_common.javac_jar Starlark call. - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change because there is some code that relies on the precise type returned, including brittle workarounds for this bug specifically and insufficiently flexible workarounds for other issues with the intersection of select and native.existing_rule. - flipped incompatible_use_toolchain_resolution_for_java_rules, see #7849 - Query output=xml/proto/location for source files will now show the location of line 1 of the source file (as the new default) instead of its location in the BUILD file. - Specifying a target pattern underneath a directory specified by .bazelignore will now emit a warning, not an error. - Query `--order_output=auto` will now sort lexicographically. However, when `somepath` is used as a top level function (e.g. `query 'somepath(a, b)'`), it will continue to output in dependency order. If you do not want the lexicographical output ordering, specify another `--order_output` value (`no`, `deps` or `full`) based on what ordering you require. - In the build event stream, BuildMetrics.TargetMetrics.targets_loaded is no longer populated. Its value was always mostly meaningless. BuildMetrics.TargetMetrics.targets_configured and BuildMetrics.ActionSummary.actions_created now include configured aspect data. - //visibility:legacy_public has been removed. - Flip and remove incompatible_dont_collect_so_artifacts (#13043). - Remove flag --experimental_no_product_name_out_symlink: it is always true. - The Starlark method generate_dsym in objc fragment has been deleted. Please use the equivalent apple_generate_dsym in cpp fragment instead. Important changes: - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - none PAIR=cmita - The --incompatible_load_python_rules_from_bzl flag is now a no-op. - Filter all (instead of just C++) source files for coverage output according to --instrumentation_filter and --instrument_test_targets. - The `--incompatible_disable_native_apple_binary_rule` flag has been added which disables the native `apple_binary` rule. Users who need to use `apple_binary` directly (if they cannot use one of the more specific Apple rules) should load it from https://github.com/bazelbuild/rules_apple. - The Android rules' --use_singlejar_apkbuilder is now a no-op. SingleJar will always be used to build APKs. - dict.setdefault(key, ...) now fails if dict is frozen, even if it already contains key. This is an incompatible API change. - Flag --incompatible_objc_provider_remove_compile_info is removed. See #11359. - Starlark now permits def statements to be nested (closures). - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change, though the fallout is expected to be small. - Starlark now supports lambda (anonymous function) expressions. - The "test" and "coverage" commands no longer return 3 when a test action fails because of a system error. Instead, the exit code reflects the type of system error. - The undocumented ctx.expand feature no longer exists. - Make --legacy_dynamic_scheduler a no-op flag. - Multiplex persistent workers can now use the JSON protocol. - native.existing_rule now returns a mutable list, not a tuple, for a list-valued attributes. This is an incompatible API change. - Roll back change to have native.existing_rules use list instead of tuple. - BEP includes test suite expansions. - config_setting now honors `visibility` attribute (and defaults to `//visibility:public`) - Change the MultiArchSplitTransitionProvider to be based on platform type + CPU instead of fixed "ios_" + cpu. - enforce config_setting visibility. See #12932 for details. - add a flag to build v4 signature file - Added _direct_source_jars output group to Java related targets. END_PUBLIC - pkg_deb is no longer part of @bazel_tools//build_defs/pkg:pkg.bzl. Use https://github.com/bazelbuild/rules_pkg/tree/main/pkg instead - Allowing the lipo operations to be conditional in the linkMultiArchBinary API for Apple binaries. Single architecture slices are now returned through AppleBinaryOutput and the Starlark API. - Release restriction for "-" in the package name for Python sources. Now `py_binary` and `py_test` targets can have main source file with "-" in the path. - Users consuming BEP may assume that a `named_set_of_files` event will appear before any event referencing that `named_set` by ID. This allows consumers to process the files for such events (eg. `TargetCompleted`) immediately. - BEP includes all files from successful actions in requested output groups. Previously, an output group's files were excluded if any file in the output group was not produced due to a failing action. Users can expect BEP output to be larger for failed builds. - In BEP, TargetComplete.output_group has a new field `incomplete` indicating that the file_sets field is missing one or more declared artifacts whose generating actions failed. - The flag `--toolchain_resolution_debug` now takes a regex argument, which is used to check which toolchain types should have debug info printed. You may use `.*` as an argument to keep the current behavior of debugging every toolchain type. - Add runfiles.merge_all() for merging a sequence of runfiles objects. - runfiles.merge() and merge_all() now respect --nested_set_depth_limit. If you hit the depth limit because you were calling merge() in a loop, use merge_all() on a sequence of runfiles objects instead. - Bazel will no longer create a bazel-out symlink if --symlink_prefix is specified: the directory pointed to via the bazel-out symlink is accessible via ${symlink_prefix}-out. If this causes problems for you, set --experimental_no_product_name_out_symlink=false in your builds and file an issue. - Updates worker protocol with cancellation fields, and adds experimental_worker_cancellation flag to control cancellation. - Simplify build failure output by always using `NNN arguments`. - trim_test_configuration now defaults to on - Mark genrule.srcs as a source attribute for coverage. - When using --allow_analysis_failures (for example, via bazel-skylib's analysistest with `expect_failure = True`), analysis-time failures in aspect implementation functions will now be propagated and saved in AnalysisFailureInfo, just like analysis-time failures in rules. - cquery --noimplicit_deps now correctly filters out resolved cc_toolchains - Sign apks deterministically. - Make gcov optional in cc_toolchain tools. - If --experimental_prefer_mutual_xcode is passed, Bazel will choose the local default (instead of the newest mutually available version) if it's available both locally and remotely. - Remove java_lite_proto_library.strict_deps attribute. - Generate proguard configurations deterministically. - Adds a new flag, `--incompatible_enable_cc_test_feature` which switches from the use of build variables to the feature of the same name. - Dropped fragile xz support from built in pkg_tar. Users requiring xz compression should switch to bazlebuild/rules_pkg. This release contains contributions from many people at Google, as well as Adam Liddell, Alex Eagle, Anthony Pratti, Austin Schuh, Benedek Thaler, Benjamin Lee, Benjamin Peterson, bromano, Christopher Sauer, Cristian Hancila, Daniel McCarney, Daniel Wagner-Hall, Danny Wolf, Dave Nicponski, David Cummings, David, David Ostrovsky, Denys Kurylenko, Dmitry Ivankov, dorranh, Ed Schouten, Elliotte Rusty Harold, erenon, Eric Cousineau, Ethan Steinberg, Felix Ehrenpfort, Finn Ball, Fredrik Medley, Garrett Holmstrom, Gautam Korlam, George Gensure, goodspark, Greg Estren, Grzegorz Lukasik, John Laxson, Jonathan Schear, Justus Tumacder, Keith Smiley, Lauri Peltonen, Liu Liu, Lszl Csomor, m, Marc Zych, Mark Karpov, Matt Mackay, Max Liu, Menny Even Danan, menny, Michael Chinen, Nathaniel Brough, Nick Korostelev, Nikolay Shelukhin, odisseus, Oleh Stolyar, Olek Wojnar, Olle Lundberg, Philipp Schrader, Qais Patankar, Ryan Beasley, samhowes, Samuel Giddins, Sebastian Olsson, Steve Siano, steve-the-bayesian, Stiopa Koltsov, susinmotion, tatiana, Thi Doan, ThomasCJY, Timothy Klim, Tobi, Torgil Svensson, Trustin Lee, Ulf Adams, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yannic, Yury Evtikhov, Yuval Kaplan, Yuval, [zqzzq].
This was rolled back in bazelbuild@36d228b because of depot breakages. This version adds incompatible flags to safely introduce enforcement. See bazelbuild#12932 and bazelbuild#12933 for flag settings. *** Original change description *** Roll back bazelbuild#12877. *** Fixes bazelbuild#12669. RELNOTES: enforce config_setting visibility. See bazelbuild#12932 for details. PiperOrigin-RevId: 354930807
This was rolled back in 36d228b because of depot breakages. This version adds incompatible flags to safely introduce enforcement. See #12932 and #12933 for flag settings. *** Original change description *** Roll back #12877. *** Fixes #12669. RELNOTES: enforce config_setting visibility. See #12932 for details. PiperOrigin-RevId: 354930807
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: ead4495 Cherry picks: + 99a85e7: Automated rollback of commit 92f7b58. + 1652361: Fix a race condition in scheduling code in `FileSystemValueCheckerInferringAncestors`. + ed25118: Add incompatible flag to guard top-level aspects dependencies Incompatible changes: - Removing java_common.javac_jar Starlark call. - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change because there is some code that relies on the precise type returned, including brittle workarounds for this bug specifically and insufficiently flexible workarounds for other issues with the intersection of select and native.existing_rule. - flipped incompatible_use_toolchain_resolution_for_java_rules, see #7849 - Query output=xml/proto/location for source files will now show the location of line 1 of the source file (as the new default) instead of its location in the BUILD file. - Specifying a target pattern underneath a directory specified by .bazelignore will now emit a warning, not an error. - Query `--order_output=auto` will now sort lexicographically. However, when `somepath` is used as a top level function (e.g. `query 'somepath(a, b)'`), it will continue to output in dependency order. If you do not want the lexicographical output ordering, specify another `--order_output` value (`no`, `deps` or `full`) based on what ordering you require. - In the build event stream, BuildMetrics.TargetMetrics.targets_loaded is no longer populated. Its value was always mostly meaningless. BuildMetrics.TargetMetrics.targets_configured and BuildMetrics.ActionSummary.actions_created now include configured aspect data. - //visibility:legacy_public has been removed. - Flip and remove incompatible_dont_collect_so_artifacts (#13043). - Remove flag --experimental_no_product_name_out_symlink: it is always true. - The Starlark method generate_dsym in objc fragment has been deleted. Please use the equivalent apple_generate_dsym in cpp fragment instead. - Native libraries in data attribute are not collected. See #13550 for details - Enforce the `--profile` path to be absolute. - Enforce the --memory_profile path to be absolute. - JavaToolchainInfo.jvm_opt returns Depset instead of a list. - --apple_sdk has been deleted. It is a no-op. Important changes: - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - none PAIR=cmita - The --incompatible_load_python_rules_from_bzl flag is now a no-op. - Filter all (instead of just C++) source files for coverage output according to --instrumentation_filter and --instrument_test_targets. - The `--incompatible_disable_native_apple_binary_rule` flag has been added which disables the native `apple_binary` rule. Users who need to use `apple_binary` directly (if they cannot use one of the more specific Apple rules) should load it from https://github.com/bazelbuild/rules_apple. - The Android rules' --use_singlejar_apkbuilder is now a no-op. SingleJar will always be used to build APKs. - dict.setdefault(key, ...) now fails if dict is frozen, even if it already contains key. This is an incompatible API change. - Flag --incompatible_objc_provider_remove_compile_info is removed. See #11359. - Starlark now permits def statements to be nested (closures). - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change, though the fallout is expected to be small. - Starlark now supports lambda (anonymous function) expressions. - The "test" and "coverage" commands no longer return 3 when a test action fails because of a system error. Instead, the exit code reflects the type of system error. - The undocumented ctx.expand feature no longer exists. - Make --legacy_dynamic_scheduler a no-op flag. - Multiplex persistent workers can now use the JSON protocol. - native.existing_rule now returns a mutable list, not a tuple, for a list-valued attributes. This is an incompatible API change. - Roll back change to have native.existing_rules use list instead of tuple. - BEP includes test suite expansions. - config_setting now honors `visibility` attribute (and defaults to `//visibility:public`) - Change the MultiArchSplitTransitionProvider to be based on platform type + CPU instead of fixed "ios_" + cpu. - enforce config_setting visibility. See #12932 for details. - add a flag to build v4 signature file - Added _direct_source_jars output group to Java related targets. END_PUBLIC - pkg_deb is no longer part of @bazel_tools//build_defs/pkg:pkg.bzl. Use https://github.com/bazelbuild/rules_pkg/tree/main/pkg instead - Allowing the lipo operations to be conditional in the linkMultiArchBinary API for Apple binaries. Single architecture slices are now returned through AppleBinaryOutput and the Starlark API. - Release restriction for "-" in the package name for Python sources. Now `py_binary` and `py_test` targets can have main source file with "-" in the path. - Users consuming BEP may assume that a `named_set_of_files` event will appear before any event referencing that `named_set` by ID. This allows consumers to process the files for such events (eg. `TargetCompleted`) immediately. - BEP includes all files from successful actions in requested output groups. Previously, an output group's files were excluded if any file in the output group was not produced due to a failing action. Users can expect BEP output to be larger for failed builds. - In BEP, TargetComplete.output_group has a new field `incomplete` indicating that the file_sets field is missing one or more declared artifacts whose generating actions failed. - The flag `--toolchain_resolution_debug` now takes a regex argument, which is used to check which toolchain types should have debug info printed. You may use `.*` as an argument to keep the current behavior of debugging every toolchain type. - Add runfiles.merge_all() for merging a sequence of runfiles objects. - runfiles.merge() and merge_all() now respect --nested_set_depth_limit. If you hit the depth limit because you were calling merge() in a loop, use merge_all() on a sequence of runfiles objects instead. - Bazel will no longer create a bazel-out symlink if --symlink_prefix is specified: the directory pointed to via the bazel-out symlink is accessible via ${symlink_prefix}-out. If this causes problems for you, set --experimental_no_product_name_out_symlink=false in your builds and file an issue. - Updates worker protocol with cancellation fields, and adds experimental_worker_cancellation flag to control cancellation. - Simplify build failure output by always using `NNN arguments`. - trim_test_configuration now defaults to on - Mark genrule.srcs as a source attribute for coverage. - When using --allow_analysis_failures (for example, via bazel-skylib's analysistest with `expect_failure = True`), analysis-time failures in aspect implementation functions will now be propagated and saved in AnalysisFailureInfo, just like analysis-time failures in rules. - cquery --noimplicit_deps now correctly filters out resolved cc_toolchains - Sign apks deterministically. - Make gcov optional in cc_toolchain tools. - If --experimental_prefer_mutual_xcode is passed, Bazel will choose the local default (instead of the newest mutually available version) if it's available both locally and remotely. - Remove java_lite_proto_library.strict_deps attribute. - Generate proguard configurations deterministically. - Adds a new flag, `--incompatible_enable_cc_test_feature` which switches from the use of build variables to the feature of the same name. - Dropped fragile xz support from built in pkg_tar. Users requiring xz compression should switch to bazlebuild/rules_pkg. - 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) - Add `disable_annotation_processing` option to `java_common.compile`, which disables any annotation processors passed to `plugins` or in `exported_plugins` of `deps` - Remove obsolete --incompatible_prohibit_aapt1 - The minimum Android build tools version for the Android rules is now 30.0.0 - Adds --experimental_reuse_sandbox_directories flag to reuse already-created non-worker sandboxes with cleanup. - --experimental_force_gc_after_build is deprecated and will be removed soon. Use --bep_publish_used_heap_size_post_build instead - Forward coverage-instrumented files from non-tool dependencies by default. - The used_heap_size_post_build field in BEP is populated when the --memory_profile flag is set - --run_validations defaults to true. - Consider label_keyed_string_dict attributes when gathering instrumented files for coverage. - Remove flag --experimental_forward_instrumented_files_info_by_default, now that this behavior is the default. - When using MemoryProfiler with multiple GCs via the --memory_profile_stable_heap_parameters flag, we do a more precise calculation of heap used at the end of the build. This will generally result in lower values. - --bep_publish_used_heap_size_post_build is deprecated. Use --memory_profile=/dev/null instead. This release contains contributions from many people at Google, as well as Adam Liddell, Alex Eagle, Andrew Katson, Anthony Pratti, Austin Schuh, Benedek Thaler, Benjamin Lee, Benjamin Peterson, Benjamin Peterson, bromano, Cameron Mulhern, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Dan Bamikiya, Daniel McCarney, Daniel Wagner-Hall, Danny Wolf, Dave MacLachlan, Dave Nicponski, David Cummings, David, David Ostrovsky, Delwin9999, Denys Kurylenko, Dmitry Ivankov, dorranh, Ed Schouten, Eitan Adler, Elliotte Rusty Harold, erenon, Eric Cousineau, Ethan Steinberg, FaBrand, Felix Ehrenpfort, Finn Ball, Fredrik Medley, Garrett Holmstrom, Gautam Korlam, George Gensure, goodspark, Greg Estren, Grzegorz Lukasik, Jesse Chan, Joe Lencioni, Johannes Abt, John Laxson, Jonathan Schear, Justus Tumacder, Keith Smiley, Kevin Hogeland, Lauri Peltonen, Liu Liu, Lszl Csomor, m, Marc Zych, Mark Karpov, Masoud Koleini, Matt Mackay, Max Liu, Menny Even Danan, menny, Michael Chinen, Nathaniel Brough, Nick Korostelev, Niek Peeters, Nikolay Shelukhin, odisseus, Oleh Stolyar, Olek Wojnar, Olle Lundberg, Philipp Schrader, Pras Velagapudi, Qais Patankar, Rai, Ryan Beasley, samhowes, Samuel Giddins, Sebastian Olsson, Steve Siano, steve-the-bayesian, Stiopa Koltsov, susinmotion, tatiana, Thi Doan, ThomasCJY, Timothy Klim, Tobi, Torgil Svensson, Trustin Lee, Ulf Adams, Uri Baghin, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yannic Bonenberger, Yannic, Yury Evtikhov, Yuval Kaplan, Yuval, [zqzzq].
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: f53c389 Incompatible changes: - Removing java_common.javac_jar Starlark call. - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change because there is some code that relies on the precise type returned, including brittle workarounds for this bug specifically and insufficiently flexible workarounds for other issues with the intersection of select and native.existing_rule. - flipped incompatible_use_toolchain_resolution_for_java_rules, see #7849 - Query output=xml/proto/location for source files will now show the location of line 1 of the source file (as the new default) instead of its location in the BUILD file. - Specifying a target pattern underneath a directory specified by .bazelignore will now emit a warning, not an error. - Query `--order_output=auto` will now sort lexicographically. However, when `somepath` is used as a top level function (e.g. `query 'somepath(a, b)'`), it will continue to output in dependency order. If you do not want the lexicographical output ordering, specify another `--order_output` value (`no`, `deps` or `full`) based on what ordering you require. - In the build event stream, BuildMetrics.TargetMetrics.targets_loaded is no longer populated. Its value was always mostly meaningless. BuildMetrics.TargetMetrics.targets_configured and BuildMetrics.ActionSummary.actions_created now include configured aspect data. - //visibility:legacy_public has been removed. - Flip and remove incompatible_dont_collect_so_artifacts (#13043). - Remove flag --experimental_no_product_name_out_symlink: it is always true. - The Starlark method generate_dsym in objc fragment has been deleted. Please use the equivalent apple_generate_dsym in cpp fragment instead. - Native libraries in data attribute are not collected. See #13550 for details - Enforce the `--profile` path to be absolute. - Enforce the --memory_profile path to be absolute. - JavaToolchainInfo.jvm_opt returns Depset instead of a list. - --apple_sdk has been deleted. It is a no-op. - --bep_publish_used_heap_size_post_build is now a no-op and will be deleted in a future release. Use --memory_profile=/dev/null instead. - Flipped --incompatible_disallow_resource_jars (see #13221). New features: - Args.add_all and Args.add_joined can now accept closures in map_each if explicitly enabled via allow_closure. - Add `--bes_header` flag to pass extra headers to the BES server. Important changes: - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - none PAIR=cmita - The --incompatible_load_python_rules_from_bzl flag is now a no-op. - Filter all (instead of just C++) source files for coverage output according to --instrumentation_filter and --instrument_test_targets. - The `--incompatible_disable_native_apple_binary_rule` flag has been added which disables the native `apple_binary` rule. Users who need to use `apple_binary` directly (if they cannot use one of the more specific Apple rules) should load it from https://github.com/bazelbuild/rules_apple. - The Android rules' --use_singlejar_apkbuilder is now a no-op. SingleJar will always be used to build APKs. - dict.setdefault(key, ...) now fails if dict is frozen, even if it already contains key. This is an incompatible API change. - Flag --incompatible_objc_provider_remove_compile_info is removed. See #11359. - Starlark now permits def statements to be nested (closures). - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change, though the fallout is expected to be small. - Starlark now supports lambda (anonymous function) expressions. - The "test" and "coverage" commands no longer return 3 when a test action fails because of a system error. Instead, the exit code reflects the type of system error. - The undocumented ctx.expand feature no longer exists. - Make --legacy_dynamic_scheduler a no-op flag. - Multiplex persistent workers can now use the JSON protocol. - native.existing_rule now returns a mutable list, not a tuple, for a list-valued attributes. This is an incompatible API change. - Roll back change to have native.existing_rules use list instead of tuple. - BEP includes test suite expansions. - config_setting now honors `visibility` attribute (and defaults to `//visibility:public`) - Change the MultiArchSplitTransitionProvider to be based on platform type + CPU instead of fixed "ios_" + cpu. - enforce config_setting visibility. See #12932 for details. - add a flag to build v4 signature file - Added _direct_source_jars output group to Java related targets. END_PUBLIC - pkg_deb is no longer part of @bazel_tools//build_defs/pkg:pkg.bzl. Use https://github.com/bazelbuild/rules_pkg/tree/main/pkg instead - Allowing the lipo operations to be conditional in the linkMultiArchBinary API for Apple binaries. Single architecture slices are now returned through AppleBinaryOutput and the Starlark API. - Release restriction for "-" in the package name for Python sources. Now `py_binary` and `py_test` targets can have main source file with "-" in the path. - Users consuming BEP may assume that a `named_set_of_files` event will appear before any event referencing that `named_set` by ID. This allows consumers to process the files for such events (eg. `TargetCompleted`) immediately. - BEP includes all files from successful actions in requested output groups. Previously, an output group's files were excluded if any file in the output group was not produced due to a failing action. Users can expect BEP output to be larger for failed builds. - In BEP, TargetComplete.output_group has a new field `incomplete` indicating that the file_sets field is missing one or more declared artifacts whose generating actions failed. - The flag `--toolchain_resolution_debug` now takes a regex argument, which is used to check which toolchain types should have debug info printed. You may use `.*` as an argument to keep the current behavior of debugging every toolchain type. - Add runfiles.merge_all() for merging a sequence of runfiles objects. - runfiles.merge() and merge_all() now respect --nested_set_depth_limit. If you hit the depth limit because you were calling merge() in a loop, use merge_all() on a sequence of runfiles objects instead. - Bazel will no longer create a bazel-out symlink if --symlink_prefix is specified: the directory pointed to via the bazel-out symlink is accessible via ${symlink_prefix}-out. If this causes problems for you, set --experimental_no_product_name_out_symlink=false in your builds and file an issue. - Updates worker protocol with cancellation fields, and adds experimental_worker_cancellation flag to control cancellation. - Simplify build failure output by always using `NNN arguments`. - trim_test_configuration now defaults to on - Mark genrule.srcs as a source attribute for coverage. - When using --allow_analysis_failures (for example, via bazel-skylib's analysistest with `expect_failure = True`), analysis-time failures in aspect implementation functions will now be propagated and saved in AnalysisFailureInfo, just like analysis-time failures in rules. - cquery --noimplicit_deps now correctly filters out resolved cc_toolchains - Sign apks deterministically. - Make gcov optional in cc_toolchain tools. - If --experimental_prefer_mutual_xcode is passed, Bazel will choose the local default (instead of the newest mutually available version) if it's available both locally and remotely. - Remove java_lite_proto_library.strict_deps attribute. - Generate proguard configurations deterministically. - Adds a new flag, `--incompatible_enable_cc_test_feature` which switches from the use of build variables to the feature of the same name. - Dropped fragile xz support from built in pkg_tar. Users requiring xz compression should switch to bazlebuild/rules_pkg. - 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) - Add `disable_annotation_processing` option to `java_common.compile`, which disables any annotation processors passed to `plugins` or in `exported_plugins` of `deps` - Remove obsolete --incompatible_prohibit_aapt1 - The minimum Android build tools version for the Android rules is now 30.0.0 - Adds --experimental_reuse_sandbox_directories flag to reuse already-created non-worker sandboxes with cleanup. - --experimental_force_gc_after_build is deprecated and will be removed soon. Use --bep_publish_used_heap_size_post_build instead - Forward coverage-instrumented files from non-tool dependencies by default. - The used_heap_size_post_build field in BEP is populated when the --memory_profile flag is set - --run_validations defaults to true. - Consider label_keyed_string_dict attributes when gathering instrumented files for coverage. - Remove flag --experimental_forward_instrumented_files_info_by_default, now that this behavior is the default. - When using MemoryProfiler with multiple GCs via the --memory_profile_stable_heap_parameters flag, we do a more precise calculation of heap used at the end of the build. This will generally result in lower values. - --bep_publish_used_heap_size_post_build is deprecated. Use --memory_profile=/dev/null instead. - Disable --all_incompatible_changes flag. This release contains contributions from many people at Google, as well as Adam Liddell, Alex Eagle, Andrew Katson, Anthony Pratti, Austin Schuh, Benedek Thaler, Benjamin Lee, Benjamin Peterson, Benjamin Peterson, Ben Lee, Brentley Jones, bromano, Cameron Mulhern, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Dan Bamikiya, Daniel McCarney, Daniel Wagner-Hall, Danny Wolf, Dave MacLachlan, Dave Nicponski, David Cummings, David, David Ostrovsky, Delwin9999, Denys Kurylenko, Dmitry Ivankov, dorranh, Ed Schouten, Eitan Adler, Elliotte Rusty Harold, erenon, Eric Cousineau, Ethan Steinberg, Fabian Meumertzheim, FaBrand, Felix Ehrenpfort, Finn Ball, Fredrik Medley, Garrett Holmstrom, Gautam Korlam, George Gensure, goodspark, Greg Estren, Grzegorz Lukasik, Grzegorz Lukasik, Ikko Ashimine, Jesse Chan, Joe Lencioni, Johannes Abt, John Laxson, Jonathan Schear, Justus Tumacder, Keith Smiley, Kevin Hogeland, Lauri Peltonen, Liu Liu, Lszl Csomor, m, Marc Zych, Mark Karpov, Masoud Koleini, Matt Mackay, Max Liu, Menny Even Danan, menny, Michael Chinen, Nathaniel Brough, Nick Korostelev, Niek Peeters, Nikolay Shelukhin, odisseus, Oleh Stolyar, Olek Wojnar, Olle Lundberg, Omar Zuniga, Philipp Schrader, Pras Velagapudi, Qais Patankar, Rai, Ryan Beasley, samhowes, Samuel Giddins, Sebastian Olsson, Steve Siano, steve-the-bayesian, Stiopa Koltsov, susinmotion, tatiana, Thi Doan, ThomasCJY, Timothy Klim, Tobi, Torgil Svensson, Trustin Lee, Ulf Adams, Uri Baghin, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Xavier Bonaventura, Yannic Bonenberger, Yannic Bonenberger, Yannic, Yury Evtikhov, Yuval Kaplan, Yuval, [zqzzq].
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.
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: e5b3536 Incompatible changes: - Removing java_common.javac_jar Starlark call. - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change because there is some code that relies on the precise type returned, including brittle workarounds for this bug specifically and insufficiently flexible workarounds for other issues with the intersection of select and native.existing_rule. - flipped incompatible_use_toolchain_resolution_for_java_rules, see #7849 - Query output=xml/proto/location for source files will now show the location of line 1 of the source file (as the new default) instead of its location in the BUILD file. - Specifying a target pattern underneath a directory specified by .bazelignore will now emit a warning, not an error. - Query `--order_output=auto` will now sort lexicographically. However, when `somepath` is used as a top level function (e.g. `query 'somepath(a, b)'`), it will continue to output in dependency order. If you do not want the lexicographical output ordering, specify another `--order_output` value (`no`, `deps` or `full`) based on what ordering you require. - In the build event stream, BuildMetrics.TargetMetrics.targets_loaded is no longer populated. Its value was always mostly meaningless. BuildMetrics.TargetMetrics.targets_configured and BuildMetrics.ActionSummary.actions_created now include configured aspect data. - //visibility:legacy_public has been removed. - Flip and remove incompatible_dont_collect_so_artifacts (#13043). - Remove flag --experimental_no_product_name_out_symlink: it is always true. - The Starlark method generate_dsym in objc fragment has been deleted. Please use the equivalent apple_generate_dsym in cpp fragment instead. - Native libraries in data attribute are not collected. See #13550 for details - Enforce the `--profile` path to be absolute. - Enforce the --memory_profile path to be absolute. - JavaToolchainInfo.jvm_opt returns Depset instead of a list. - --apple_sdk has been deleted. It is a no-op. - --bep_publish_used_heap_size_post_build is now a no-op and will be deleted in a future release. Use --memory_profile=/dev/null instead. - Flipped --incompatible_disallow_resource_jars (see #13221). - Remove --bep_publish_used_heap_size_post_build - JSON trace profile: rename counter names. - Removed --action_graph from the dump command. - Remove `--{experimental_,}json_trace_compression` option. - Remove `--experimental_profile_cpu_usage`. - flipped --incompatible_java_common_parameters (see #12373) New features: - Args.add_all and Args.add_joined can now accept closures in map_each if explicitly enabled via allow_closure. - Add `--bes_header` flag to pass extra headers to the BES server. Important changes: - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - none PAIR=cmita - The --incompatible_load_python_rules_from_bzl flag is now a no-op. - Filter all (instead of just C++) source files for coverage output according to --instrumentation_filter and --instrument_test_targets. - The `--incompatible_disable_native_apple_binary_rule` flag has been added which disables the native `apple_binary` rule. Users who need to use `apple_binary` directly (if they cannot use one of the more specific Apple rules) should load it from https://github.com/bazelbuild/rules_apple. - The Android rules' --use_singlejar_apkbuilder is now a no-op. SingleJar will always be used to build APKs. - dict.setdefault(key, ...) now fails if dict is frozen, even if it already contains key. This is an incompatible API change. - Flag --incompatible_objc_provider_remove_compile_info is removed. See #11359. - Starlark now permits def statements to be nested (closures). - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change, though the fallout is expected to be small. - Starlark now supports lambda (anonymous function) expressions. - The "test" and "coverage" commands no longer return 3 when a test action fails because of a system error. Instead, the exit code reflects the type of system error. - The undocumented ctx.expand feature no longer exists. - Make --legacy_dynamic_scheduler a no-op flag. - Multiplex persistent workers can now use the JSON protocol. - native.existing_rule now returns a mutable list, not a tuple, for a list-valued attributes. This is an incompatible API change. - Roll back change to have native.existing_rules use list instead of tuple. - BEP includes test suite expansions. - config_setting now honors `visibility` attribute (and defaults to `//visibility:public`) - Change the MultiArchSplitTransitionProvider to be based on platform type + CPU instead of fixed "ios_" + cpu. - enforce config_setting visibility. See #12932 for details. - add a flag to build v4 signature file - Added _direct_source_jars output group to Java related targets. END_PUBLIC - pkg_deb is no longer part of @bazel_tools//build_defs/pkg:pkg.bzl. Use https://github.com/bazelbuild/rules_pkg/tree/main/pkg instead - Allowing the lipo operations to be conditional in the linkMultiArchBinary API for Apple binaries. Single architecture slices are now returned through AppleBinaryOutput and the Starlark API. - Release restriction for "-" in the package name for Python sources. Now `py_binary` and `py_test` targets can have main source file with "-" in the path. - Users consuming BEP may assume that a `named_set_of_files` event will appear before any event referencing that `named_set` by ID. This allows consumers to process the files for such events (eg. `TargetCompleted`) immediately. - BEP includes all files from successful actions in requested output groups. Previously, an output group's files were excluded if any file in the output group was not produced due to a failing action. Users can expect BEP output to be larger for failed builds. - In BEP, TargetComplete.output_group has a new field `incomplete` indicating that the file_sets field is missing one or more declared artifacts whose generating actions failed. - The flag `--toolchain_resolution_debug` now takes a regex argument, which is used to check which toolchain types should have debug info printed. You may use `.*` as an argument to keep the current behavior of debugging every toolchain type. - Add runfiles.merge_all() for merging a sequence of runfiles objects. - runfiles.merge() and merge_all() now respect --nested_set_depth_limit. If you hit the depth limit because you were calling merge() in a loop, use merge_all() on a sequence of runfiles objects instead. - Bazel will no longer create a bazel-out symlink if --symlink_prefix is specified: the directory pointed to via the bazel-out symlink is accessible via ${symlink_prefix}-out. If this causes problems for you, set --experimental_no_product_name_out_symlink=false in your builds and file an issue. - Updates worker protocol with cancellation fields, and adds experimental_worker_cancellation flag to control cancellation. - Simplify build failure output by always using `NNN arguments`. - trim_test_configuration now defaults to on - Mark genrule.srcs as a source attribute for coverage. - When using --allow_analysis_failures (for example, via bazel-skylib's analysistest with `expect_failure = True`), analysis-time failures in aspect implementation functions will now be propagated and saved in AnalysisFailureInfo, just like analysis-time failures in rules. - cquery --noimplicit_deps now correctly filters out resolved cc_toolchains - Sign apks deterministically. - Make gcov optional in cc_toolchain tools. - If --experimental_prefer_mutual_xcode is passed, Bazel will choose the local default (instead of the newest mutually available version) if it's available both locally and remotely. - Remove java_lite_proto_library.strict_deps attribute. - Generate proguard configurations deterministically. - Adds a new flag, `--incompatible_enable_cc_test_feature` which switches from the use of build variables to the feature of the same name. - Dropped fragile xz support from built in pkg_tar. Users requiring xz compression should switch to bazlebuild/rules_pkg. - 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) - Add `disable_annotation_processing` option to `java_common.compile`, which disables any annotation processors passed to `plugins` or in `exported_plugins` of `deps` - Remove obsolete --incompatible_prohibit_aapt1 - The minimum Android build tools version for the Android rules is now 30.0.0 - Adds --experimental_reuse_sandbox_directories flag to reuse already-created non-worker sandboxes with cleanup. - --experimental_force_gc_after_build is deprecated and will be removed soon. Use --bep_publish_used_heap_size_post_build instead - Forward coverage-instrumented files from non-tool dependencies by default. - The used_heap_size_post_build field in BEP is populated when the --memory_profile flag is set - --run_validations defaults to true. - Consider label_keyed_string_dict attributes when gathering instrumented files for coverage. - Remove flag --experimental_forward_instrumented_files_info_by_default, now that this behavior is the default. - When using MemoryProfiler with multiple GCs via the --memory_profile_stable_heap_parameters flag, we do a more precise calculation of heap used at the end of the build. This will generally result in lower values. - --bep_publish_used_heap_size_post_build is deprecated. Use --memory_profile=/dev/null instead. - Disable --all_incompatible_changes flag. - The --all_incompatible_changes flag is now a no-op - The `--toolchain_resolution_debug` flag now accepts regexes matching targets, as well as toolchain types, when choosing what debug messages to print. - Adds --experimental_existing_rules_immutable_view flag to make the native.existing_rule and native.existing_rules functions more efficient by returning immutable, lightweight dict-like view objects instead of mutable dicts. - Add support to length-delimited protos as undeclared output annotations [] - The deprecated "relative_to_caller_repository" parameter has been removed from the Label constructor. - The toolchain transition is now enabled for all toolchains. - incompatible_disable_depset_items is flipped - The --experimental_existing_rules_immutable_view flag has been renamed to --incompatible_existing_rules_immutable_view - Bazel no longer supports Java 8. From this version on, the minimum required JDK is OpenJDK 11. - Deprecate --incompatible_applicable_licenses flag, in preparation for removal in Bazel 6.x. - Treat py_*.srcs_version="PY2" the same as "PY2ONLY". - The Build Event Protocol now contains file digests and sizes along with the file name and URI. - Refactor system suspend event handling. This release contains contributions from many people at Google, as well as Adam Liddell, Alessandro Patti, Alex Eagle, Alex Eagle, Alex Eagle, Andrew Katson, Anthony Pratti, Artem V. Navrotskiy, Austin Schuh, Benedek Thaler, Benjamin Lee, Benjamin Peterson, Benjamin Peterson, Ben Lee, Brandon Jacklyn, Brentley Jones, bromano, Cameron Mulhern, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, crydell-ericsson, Dan Bamikiya, Daniel McCarney, Daniel Wagner-Hall, Danny Wolf, Dave MacLachlan, Dave Nicponski, David Cummings, David, David Ostrovsky, Delwin9999, Denys Kurylenko, Dmitry Ivankov, dorranh, ecngtng, Ed Schouten, Eitan Adler, Elliotte Rusty Harold, erenon, Eric Cousineau, Ethan Steinberg, Fabian Meumertzheim, Fabian Meumertzheim, FaBrand, Felix Ehrenpfort, Finn Ball, frazze-jobb, Fredrik Medley, Garrett Holmstrom, Gautam Korlam, George Gensure, goodspark, Greg Estren, Grzegorz Lukasik, Grzegorz Lukasik, hvadehra, Ikko Ashimine, Jesse Chan, Joe Lencioni, Johannes Abt, John Laxson, Jonathan Schear, Justus Tumacder, Keith Smiley, kekxv, Kevin Hogeland, Lauri Peltonen, Liu Liu, Lszl Csomor, m, Marc Zych, Mark Karpov, Masoud Koleini, Mathieu Olivari, Matt Mackay, Mauricio Galindo, Max Liu, Menny Even Danan, menny, Michael Chinen, Nathaniel Brough, Nick Korostelev, Niek Peeters, Nikolay Shelukhin, odisseus, Oleh Stolyar, Olek Wojnar, Olle Lundberg, Omar Zuniga, Paul Gschwendtner, Peter Kasting, Philipp Schrader, Pras Velagapudi, Qais Patankar, Rabi Shanker Guha, Rahul Butani, Rai, ron-stripe, Ryan Beasley, samhowes, Samuel Giddins, Sebastian Olsson, Sergey Tyurin, Steve Siano, steve-the-bayesian, Stiopa Koltsov, susinmotion, tatiana, Tetsuo Kiso, Thaler Benedek, Thi Doan, Thi Don, Thomas Carmet, ThomasCJY, Timothe Peignier, Timothy Klim, Tobi, Torgil Svensson, Trustin Lee, Ulf Adams, Ulrik Falklof, Uri Baghin, Vaidas Pilkauskas, Vertexwahn, William Muir, wisechengyi, Wren Turkal, Xavier Bonaventura, Yannic Bonenberger, Yannic Bonenberger, Yannic, Yury Evtikhov, Yuval Kaplan, Yuval K, Yuval, [zqzzq].
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: e5b3536 Incompatible changes: - Removing java_common.javac_jar Starlark call. - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change because there is some code that relies on the precise type returned, including brittle workarounds for this bug specifically and insufficiently flexible workarounds for other issues with the intersection of select and native.existing_rule. - flipped incompatible_use_toolchain_resolution_for_java_rules, see bazelbuild#7849 - Query output=xml/proto/location for source files will now show the location of line 1 of the source file (as the new default) instead of its location in the BUILD file. - Specifying a target pattern underneath a directory specified by .bazelignore will now emit a warning, not an error. - Query `--order_output=auto` will now sort lexicographically. However, when `somepath` is used as a top level function (e.g. `query 'somepath(a, b)'`), it will continue to output in dependency order. If you do not want the lexicographical output ordering, specify another `--order_output` value (`no`, `deps` or `full`) based on what ordering you require. - In the build event stream, BuildMetrics.TargetMetrics.targets_loaded is no longer populated. Its value was always mostly meaningless. BuildMetrics.TargetMetrics.targets_configured and BuildMetrics.ActionSummary.actions_created now include configured aspect data. - //visibility:legacy_public has been removed. - Flip and remove incompatible_dont_collect_so_artifacts (bazelbuild#13043). - Remove flag --experimental_no_product_name_out_symlink: it is always true. - The Starlark method generate_dsym in objc fragment has been deleted. Please use the equivalent apple_generate_dsym in cpp fragment instead. - Native libraries in data attribute are not collected. See bazelbuild#13550 for details - Enforce the `--profile` path to be absolute. - Enforce the --memory_profile path to be absolute. - JavaToolchainInfo.jvm_opt returns Depset instead of a list. - --apple_sdk has been deleted. It is a no-op. - --bep_publish_used_heap_size_post_build is now a no-op and will be deleted in a future release. Use --memory_profile=/dev/null instead. - Flipped --incompatible_disallow_resource_jars (see bazelbuild#13221). - Remove --bep_publish_used_heap_size_post_build - JSON trace profile: rename counter names. - Removed --action_graph from the dump command. - Remove `--{experimental_,}json_trace_compression` option. - Remove `--experimental_profile_cpu_usage`. - flipped --incompatible_java_common_parameters (see bazelbuild#12373) New features: - Args.add_all and Args.add_joined can now accept closures in map_each if explicitly enabled via allow_closure. - Add `--bes_header` flag to pass extra headers to the BES server. Important changes: - Flag --incompatible_objc_compile_info_migration is removed. See bazelbuild#10854. - Flag --incompatible_objc_compile_info_migration is removed. See bazelbuild#10854. - Flag --incompatible_objc_compile_info_migration is removed. See bazelbuild#10854. - none PAIR=cmita - The --incompatible_load_python_rules_from_bzl flag is now a no-op. - Filter all (instead of just C++) source files for coverage output according to --instrumentation_filter and --instrument_test_targets. - The `--incompatible_disable_native_apple_binary_rule` flag has been added which disables the native `apple_binary` rule. Users who need to use `apple_binary` directly (if they cannot use one of the more specific Apple rules) should load it from https://github.com/bazelbuild/rules_apple. - The Android rules' --use_singlejar_apkbuilder is now a no-op. SingleJar will always be used to build APKs. - dict.setdefault(key, ...) now fails if dict is frozen, even if it already contains key. This is an incompatible API change. - Flag --incompatible_objc_provider_remove_compile_info is removed. See bazelbuild#11359. - Starlark now permits def statements to be nested (closures). - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change, though the fallout is expected to be small. - Starlark now supports lambda (anonymous function) expressions. - The "test" and "coverage" commands no longer return 3 when a test action fails because of a system error. Instead, the exit code reflects the type of system error. - The undocumented ctx.expand feature no longer exists. - Make --legacy_dynamic_scheduler a no-op flag. - Multiplex persistent workers can now use the JSON protocol. - native.existing_rule now returns a mutable list, not a tuple, for a list-valued attributes. This is an incompatible API change. - Roll back change to have native.existing_rules use list instead of tuple. - BEP includes test suite expansions. - config_setting now honors `visibility` attribute (and defaults to `//visibility:public`) - Change the MultiArchSplitTransitionProvider to be based on platform type + CPU instead of fixed "ios_" + cpu. - enforce config_setting visibility. See bazelbuild#12932 for details. - add a flag to build v4 signature file - Added _direct_source_jars output group to Java related targets. END_PUBLIC - pkg_deb is no longer part of @bazel_tools//build_defs/pkg:pkg.bzl. Use https://github.com/bazelbuild/rules_pkg/tree/main/pkg instead - Allowing the lipo operations to be conditional in the linkMultiArchBinary API for Apple binaries. Single architecture slices are now returned through AppleBinaryOutput and the Starlark API. - Release restriction for "-" in the package name for Python sources. Now `py_binary` and `py_test` targets can have main source file with "-" in the path. - Users consuming BEP may assume that a `named_set_of_files` event will appear before any event referencing that `named_set` by ID. This allows consumers to process the files for such events (eg. `TargetCompleted`) immediately. - BEP includes all files from successful actions in requested output groups. Previously, an output group's files were excluded if any file in the output group was not produced due to a failing action. Users can expect BEP output to be larger for failed builds. - In BEP, TargetComplete.output_group has a new field `incomplete` indicating that the file_sets field is missing one or more declared artifacts whose generating actions failed. - The flag `--toolchain_resolution_debug` now takes a regex argument, which is used to check which toolchain types should have debug info printed. You may use `.*` as an argument to keep the current behavior of debugging every toolchain type. - Add runfiles.merge_all() for merging a sequence of runfiles objects. - runfiles.merge() and merge_all() now respect --nested_set_depth_limit. If you hit the depth limit because you were calling merge() in a loop, use merge_all() on a sequence of runfiles objects instead. - Bazel will no longer create a bazel-out symlink if --symlink_prefix is specified: the directory pointed to via the bazel-out symlink is accessible via ${symlink_prefix}-out. If this causes problems for you, set --experimental_no_product_name_out_symlink=false in your builds and file an issue. - Updates worker protocol with cancellation fields, and adds experimental_worker_cancellation flag to control cancellation. - Simplify build failure output by always using `NNN arguments`. - trim_test_configuration now defaults to on - Mark genrule.srcs as a source attribute for coverage. - When using --allow_analysis_failures (for example, via bazel-skylib's analysistest with `expect_failure = True`), analysis-time failures in aspect implementation functions will now be propagated and saved in AnalysisFailureInfo, just like analysis-time failures in rules. - cquery --noimplicit_deps now correctly filters out resolved cc_toolchains - Sign apks deterministically. - Make gcov optional in cc_toolchain tools. - If --experimental_prefer_mutual_xcode is passed, Bazel will choose the local default (instead of the newest mutually available version) if it's available both locally and remotely. - Remove java_lite_proto_library.strict_deps attribute. - Generate proguard configurations deterministically. - Adds a new flag, `--incompatible_enable_cc_test_feature` which switches from the use of build variables to the feature of the same name. - Dropped fragile xz support from built in pkg_tar. Users requiring xz compression should switch to bazlebuild/rules_pkg. - 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) - Add `disable_annotation_processing` option to `java_common.compile`, which disables any annotation processors passed to `plugins` or in `exported_plugins` of `deps` - Remove obsolete --incompatible_prohibit_aapt1 - The minimum Android build tools version for the Android rules is now 30.0.0 - Adds --experimental_reuse_sandbox_directories flag to reuse already-created non-worker sandboxes with cleanup. - --experimental_force_gc_after_build is deprecated and will be removed soon. Use --bep_publish_used_heap_size_post_build instead - Forward coverage-instrumented files from non-tool dependencies by default. - The used_heap_size_post_build field in BEP is populated when the --memory_profile flag is set - --run_validations defaults to true. - Consider label_keyed_string_dict attributes when gathering instrumented files for coverage. - Remove flag --experimental_forward_instrumented_files_info_by_default, now that this behavior is the default. - When using MemoryProfiler with multiple GCs via the --memory_profile_stable_heap_parameters flag, we do a more precise calculation of heap used at the end of the build. This will generally result in lower values. - --bep_publish_used_heap_size_post_build is deprecated. Use --memory_profile=/dev/null instead. - Disable --all_incompatible_changes flag. - The --all_incompatible_changes flag is now a no-op - The `--toolchain_resolution_debug` flag now accepts regexes matching targets, as well as toolchain types, when choosing what debug messages to print. - Adds --experimental_existing_rules_immutable_view flag to make the native.existing_rule and native.existing_rules functions more efficient by returning immutable, lightweight dict-like view objects instead of mutable dicts. - Add support to length-delimited protos as undeclared output annotations [] - The deprecated "relative_to_caller_repository" parameter has been removed from the Label constructor. - The toolchain transition is now enabled for all toolchains. - incompatible_disable_depset_items is flipped - The --experimental_existing_rules_immutable_view flag has been renamed to --incompatible_existing_rules_immutable_view - Bazel no longer supports Java 8. From this version on, the minimum required JDK is OpenJDK 11. - Deprecate --incompatible_applicable_licenses flag, in preparation for removal in Bazel 6.x. - Treat py_*.srcs_version="PY2" the same as "PY2ONLY". - The Build Event Protocol now contains file digests and sizes along with the file name and URI. - Refactor system suspend event handling. This release contains contributions from many people at Google, as well as Adam Liddell, Alessandro Patti, Alex Eagle, Alex Eagle, Alex Eagle, Andrew Katson, Anthony Pratti, Artem V. Navrotskiy, Austin Schuh, Benedek Thaler, Benjamin Lee, Benjamin Peterson, Benjamin Peterson, Ben Lee, Brandon Jacklyn, Brentley Jones, bromano, Cameron Mulhern, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, crydell-ericsson, Dan Bamikiya, Daniel McCarney, Daniel Wagner-Hall, Danny Wolf, Dave MacLachlan, Dave Nicponski, David Cummings, David, David Ostrovsky, Delwin9999, Denys Kurylenko, Dmitry Ivankov, dorranh, ecngtng, Ed Schouten, Eitan Adler, Elliotte Rusty Harold, erenon, Eric Cousineau, Ethan Steinberg, Fabian Meumertzheim, Fabian Meumertzheim, FaBrand, Felix Ehrenpfort, Finn Ball, frazze-jobb, Fredrik Medley, Garrett Holmstrom, Gautam Korlam, George Gensure, goodspark, Greg Estren, Grzegorz Lukasik, Grzegorz Lukasik, hvadehra, Ikko Ashimine, Jesse Chan, Joe Lencioni, Johannes Abt, John Laxson, Jonathan Schear, Justus Tumacder, Keith Smiley, kekxv, Kevin Hogeland, Lauri Peltonen, Liu Liu, Lszl Csomor, m, Marc Zych, Mark Karpov, Masoud Koleini, Mathieu Olivari, Matt Mackay, Mauricio Galindo, Max Liu, Menny Even Danan, menny, Michael Chinen, Nathaniel Brough, Nick Korostelev, Niek Peeters, Nikolay Shelukhin, odisseus, Oleh Stolyar, Olek Wojnar, Olle Lundberg, Omar Zuniga, Paul Gschwendtner, Peter Kasting, Philipp Schrader, Pras Velagapudi, Qais Patankar, Rabi Shanker Guha, Rahul Butani, Rai, ron-stripe, Ryan Beasley, samhowes, Samuel Giddins, Sebastian Olsson, Sergey Tyurin, Steve Siano, steve-the-bayesian, Stiopa Koltsov, susinmotion, tatiana, Tetsuo Kiso, Thaler Benedek, Thi Doan, Thi Don, Thomas Carmet, ThomasCJY, Timothe Peignier, Timothy Klim, Tobi, Torgil Svensson, Trustin Lee, Ulf Adams, Ulrik Falklof, Uri Baghin, Vaidas Pilkauskas, Vertexwahn, William Muir, wisechengyi, Wren Turkal, Xavier Bonaventura, Yannic Bonenberger, Yannic Bonenberger, Yannic, Yury Evtikhov, Yuval Kaplan, Yuval K, Yuval, [zqzzq].
bazelbuild@174c67f This was rolled back in bazelbuild@cef1437 while bazelbuild@268be23 was processing. Fixes bazelbuild#12932 For bazelbuild#16446 PiperOrigin-RevId: 480364678 Change-Id: I4a8c05d748428e0493880796db40f3b718d0ad7b
…ng_visibility This change is needed for the upcoming Bazel 6.0 release. Context: bazelbuild/bazel#12932 Breakage: https://buildkite.com/bazel/bazel-at-head-plus-downstream/builds/2670#0183c9f5-c730-4e6d-9374-2bc9ace37761 PiperOrigin-RevId: 480784917
Related bazelbuild/bazel#12932 We plan to flip this flag in Bazel 6.0, the visibility changes are needed to make sure TensorFlow still builds with the upcoming Bazel version. PiperOrigin-RevId: 479513308
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: 8d66a41 Cherry picks: + becd149: Remote: Cache merkle trees + d7628e1: Update DEFAULT_IOS_CPU for M1 arm64 simulator support + 80c56ff: Compile Apple tools as fat binaries if possible + 3c09f34: Add protobuf as a well known module + 3a5b360: Remote: Merge target-level exec_properties with --remote_default_exec_properties + 917e15e: Add -no_uuid for hermetic macOS toolchain setup + f5cf8b0: Remote: Fixes an issue when --experimental_remote_cache_async encounter flaky tests. + 77a002c: Remove DigestUtils.getDigestInExclusiveMode() now that SsdModule has … + 557a7e7: Fixes for the Starlark transition hash computation (#14251) + 34c7146: Do location expansion in copts of objc_library + 50274a9: [5.x] Remote: Add support for compression on gRPC cache (#14277) + 61bf2e5: Automated rollback of commit 34c7146. + 79888fe: Silence a zstd-jni GCC warning. + 063b5c9: Remote: Limit max number of gRPC connections by --remote_max_connections. + fd727ec: Do location expansion in copts of objc_library + 23d0969: Fix _is_shared_library_extension_valid + 5cf1d6e: Remove merging of java_outputs in JavaPluginInfo. + cea5f4f: Cherrypick Bzlmod documentation (#14301) + 227e49e: Format work requests according to ndjson spec + ae0a6c9: Enable user_link_flags_feature for macosx cc_toolchain_config + 8c2c78c: Remote: Use Action's salt field to differentiate cache across workspaces. + f948989: [5.x] Remote: Fix "file not found" error when remote cache is changed from enabled to disabled. (#14321) + 3069ac4: Delete marker file before fetching an external repository + c05c626: Remote: Fix file counting in merkletree.DirectoryTreeBuilder + d84f799: Fix remote spawn tests for remote_merkle_tree_cache=true + 59e16e9: Show skipped tests as a warning + 76b3c24: Build xcode-locator as a universal binary + aa52f2d: Exit collect_coverage.sh early if LCOV_MERGER is not set. + 4256d46: Automated rollback of commit d84f799. + dce2435: [apple] fix issues compiling C in objc_library for watchos/armv7k + bfc2413: 5.x: Remote: Ignore blobs referenced in BEP if the generating action cannot be cached remotely. (#14389) + 5aef53a: Remote: Don't blocking-get when acquiring gRPC connections. (#14420) + 005361c: Disable IncludeValidation for ObjC in bazel + d703b7b: Update java_tools v11.6 + 90965b0: Stop remote blob upload if upload is complete. (#14467) + dc59d9e: [5.x] Make remote BES uploader better (#14472) + 2edab73: Avoid too verbose warnings in terminal when cache issues + 1160485: Rename --project_id to --bes_instance_name + c63d9ec: Automated rollback of commit bfdfa6e. + b341802: [apple] support watchos_arm64 in toolchain + 43bcf80: Disable implicitly collecting baseline coverage for toolchain targets. + 302971e: Automated rollback of commit 7d09b4a. + 6200202: Bzlmod: Starlarkify default attr values for TypeCheckedTags + 38117d4: Fix build after rc4 cherrypicks (#14581) + 41feb61: Release 5.0.0 (2022-01-19) + 486d153: Find runfiles in directories that are themselves runfiles + 0de7bb9: Don't resolve symlinks for --sandbox_base + 8b60c90: Remove uses of -lstdc++ on darwin + 60f757c: Allow Label instances as keys in select (#14755) + 3836ad0: Remote: Only waits for background tasks from remote execution. + 8734ccf: Add the default solib dir to the rpath for cc_imports with transitions + 9e16a64: Flip --experimental_worker_allow_json_protocol + fce7ea8: Fix `ctx.fragments.apple.single_arch_cpu` returning incorrect cpu for tools when host cpu and exec cpu are different + 0c1d09e: Propagate --experimental_cc_implementation_deps to host config + 1c3a245: Support select() on constraint_value for aliases. + 67a133b: Improve documentation for select() + 5356fed: Cherrypicks for experimental cc_shared_library (#14773) + ffdd633: [apple] support tvos_sim_arm64 in toolchain (#14779) + a58ddea: Cherry pick win arm64 (#14794) + dc41a20: [5.1.0] cherrypick subpackages support (#14780) + 86e2db7: Add a helper method for rules to depend on the cpp toolchain type. + 6990c02: UrlRewriter should be able to load credentials from .netrc (#14834) + 32d1606: Add "arch" struct field to repository_os + 2cfdcea: [5.x] bzlmod: Add support for WORKSPACE.bzlmod (#14813) + c2ddbd1: Ignore missing include directory in JDK distribution. + 16de035: Fix bazel coverage false negative + 0c74741: Remote: Postpone the block waiting in `afterCommand` to `BlockWaitingModule` (#14833) + 3297d92: Switch to `ProcessHandle` for getting the PID (#14842) + a987b98: Fix uses of std++ on bsd + d184e48: Remote: handle early return of compressed blobs uploads + 0b09e9e: Add removeprefix/removesuffix to Starlark strings + d42ab0c: Fix default CPU for macOS and iOS (#14923) + cd24f39: Add paramfile support for def_parser, since in rare cases on Windows command line character limit was reached. + 0b1beef: Normalize rpath entries to guard against missing default solib dir + 24e8242: Fix aggressive params file assumption + c45838b: Fix precompiled libs not in runfiles of cc_shared_library (#14943) + 764614e: Bzlmod: Allow multiple `use_extension`s on the same extension (#14945) + fa761f8: Fix typo in `apple_common.platform` docs + f7d8288: Yield a Proxy for addresses without protocol + 8cefb8b: Avoid merging URLs in HttpUtils + b480480: Make protocOpts() public. (#14952) + 113eaca: Do not hide BulkTransferException messages when there were more than one exception + b1bf9d6: merkle_tree_cache: change default size to 1000 + f15e0c7: Add --experimental_repository_cache_urls_as_default_canonical_id to help detect broken repository URLs (#14989) + f421474: Expose the logic to read user netrc file + b858ec3: Correct cpu and os values of `local_config_cc_toolchains` targets + 5e79972: Expose CoverageOutputGenerator on a Fragment (#14997) + 78f0311: Correct error runfiles cc_shared_library (#14998) + 7937dd1: [5.1] Adding Starlark dependencies to the package //external (#14991) + a73aa12: Remote: Fix crashes with InterruptedException when using http cache. + f8707c0: Account for interface libraries in cc_shared_library + a570f5f: Fix coverage runfiles directory issue + 95de355: Do not validate input-only settings in transitions (#15048) + 71747cc: Filter out system headers on macOS. + cb6500a: Update Bazel bootstrap documentation and remove obsolete flags. (#15065) + 4c031d1: [5.1] Undocument --bes_best_effort (#15066) + 267142f: Fix conflicting actions error when specifying --host_macos_minimum_os (#15068) + f192362: [5.1] Remote: Action should not be successful and cached if outputs were not created (#15071) + 00d74ff: Support decompressing zstd tar archives for repository rules. + f585783: Remote: Don't check TreeArtifact output + efb2b80: osx_cc_wrapper: Only expand existing response files + c771c43: Remote: Fix crashes by InterruptedException when dynamic execution is enabled. (#15091) + 3785677: Use python3 on macOS + 815d9e4: Release 5.1.0 (2022-03-24) + 1fbb69e: Prepare 5.1.1 release + df153df: Fix CODEOWNERS syntax + 2b92a31: Remote: Don't check declared outputs for failed action + b47aa71: Upgrade abseil version to the latest + c49c45d: Revert default export all symbols on Windows + 7d3fb99: Support ZIP files with total number of disks = 0 + 0f5dc11: Release 5.1.1 (2022-04-08) + 2422cfb: Update CODEOWNERS + bbcff18: [5.2.0] Update java_tools 11.7.1 (#15231) + 9c98120: Add support for .ar archives (and .deb files) + d3435b0: Seperate GetSelfPath implementation for Blaze and Bazel + c94572b: Include jdk.crypto.mscapi in minimized Windows embedded JDK + 299022c: remote: Proactively close the ZstdInputStream in ZstdDecompressingOutputStream. + 2770799: Collect coverage from cc_binary data deps of java_test + 3442179: Configure Apple crosstool to return a complete target triple that includes minimum OS version and target environment + bb6f1a7: Collect C++ lcov coverage if runtime object not in runfiles + dbb6e99: Fixing dependencies of //external package + f0213bb: [5.2] Upgrade Google Auth Version (#15383) + a1a74c9: Fix chocolatey package - docsUrl must not 404 (#15395) + fe644be: Fix cache leak when applying transitions when only a rule's attributes change. + ad74d52: Fix checking remote cache for omitted files in buildevent file (#15405) + ac21910: fix(bzlmod): throw on json parse exception + 3d85b88: Add a flag to expose undeclared test outputs in unzipped form. (#15431) + abd7a9f: Remove -U_FORTIFY_SOURCE when thin_lto is enabled (#15433) + 53b9cb8: Catch NumberFormatException while trying to parse thread id. + 19740b5: Improve the --sandbox_debug error message + 0a2a43f: Set keywords on appropriate lifecycle events. + 394ddb8: Record additional profiling information for remotely executed actions. + 652b48e: Fix downloading remote execution output files inside output dirs. (#15444) + 73f1ecb: Fix android emulator darwin_arm64 select + 2649c7c: Fix --use_top_level_targets_for_symlinks with aliases (#15446) + fa1081c: Filter libtool warning about table of contents + 26f8783: Unify sandbox/remote handling of empty TreeArtifact inputs (#15449) + 6b21b77: Revert "Fixes incorrect install names on darwin platforms" + e133e66: config doesn't error on duplicate `--define` values (#15473) + 84d5917: Collect coverage from cc_binary data deps of py_test (#15298) + 519d2da: SolibSymlinkAction does not need exec platform or properties + 6e54699: Let Starlark tests inherit env variables (#15217) + 9610ae8: Update PythonZipper action to use CommandLineItem.CapturingMapFn + 2f1ff6f: Make `coverage --combined_report=lcov` skip incompatible tests + 9fad5a3: Disable ReturnValueIgnored checks to unblock java_tools release + 0120118: Bump the limit of Bazel install base size (#15585) + 668805a: Upgrade zlib to 1.2.12 + 4d900ce: [5.2] Remote: Fix a bug that outputs of actions tagged with no-remote are u... (#15453) + b703cb9: Add feature to produce serialized diagnostics files (#15600) + 2e8458b: Release 5.2.0 (2022-06-07) + 536f8d9: Fix fail message construction in cc_shared_library + 2d42925: Define cc-compiler-darwin in Xcode toolchain + a1d7d1f: Fix alwayslink in objc_import + d273cb6: Unify URL/URLs parameter code across http_archive, http_file, http_jar + fea32be: Preserve --experimental_allow_unresolved_symlinks in exec cfg + e4bc370: Ck/cherry pick cc shared library (#15754) + dbdfa07: Let Starlark executable rules specify their environment (#15766) + e2a6a2b: Fix string formatting when java_home path is missing. + d54a288: Optionally enable LLVM profile continuous mode + ad17b44: Print remote execution message when the action times out (#15772) + 240e3d1: Add missing line to cherrypick e4bc370 (#15784) + 804b474: Replace strdupa with strdup + 62be9ea: Bzlmod: Better canonical repo names for modules with overrides (#15793) + d4663a1: Add repo env test (#15768) + 594962c: Add is_root struct field to bazel_module (#15815) + 3dd2b93: Fix null pointer crash with `bazel coverage` on only incompatible tests + 4175018: Add util for finding credential helper to use + 3ea9eb2: Merge ManifestMergerAction-related commits into release-5.3.0 (#15824) + 64571a4: Ck/cherrypick 15669 (#15788) + 1404651: Create output directories for remote execution (#15818) + ae523f8: Use tree artifacts in bootclasspath rule + 37f181c: [credentialhelper] Add types to communicate with the subprocess + 06ca634: Add a flag to force Bazel to download certain artifacts when using --remote_download_minimal (#15870) + d35f923: RemoteExecutionService: fix outputs not being uploaded + 78af34f: Cherry-pick proto_lang_toolchain Starlarkfication and proto_common module (#15854) + afb434d: Fix behavior of `print()` in module extensions + 6714c30: [credentialhelper] Implement invoking credential helper as subprocess + 0f05904: Add register_{execution_platforms,toolchains} directives to MODULE.bazel files (#15852) + 33516e2: [remote] Improve .netrc test in RemoteModuleTest + aa2a1f3: Fix ZipDecompressor windows 0x80 (file attribute normal) + 30f16e5: Replace uses of `cfg = "host"` with `cfg = "exec"` (#15922) + 2a8d0ad: target pattern file: allow comments + 6f73205: Add factory for creating paths relative to well-known roots (#15931) + 32cc8e6: Update CODEOWNERS (#15910) + 63bc14b: Implement native analysis_test call. (#15940) + 4df77f7: Increase osx_cc_configure timeouts + cdf01a3: Allow string_list flags to be set via repeated flag uses + 05e758d: [credentialhelper] Add parser for flag syntax (#15929) + e4ee344: Docs should mention the new no-remote-cache-upload tag (#15965) + 96d23d3: Add netrc support to --bes_backend (#15970) + c5bc34e: Add CommandLinePathFactory to CommandEnvironment (#15971) + 508f185: Move newCredentialHelperProvider into GoogleAuthUtils (#15973) + 14c944a: Wire up credential helper to command-line flag(s) (#15976) + 04c373b: Add `--output=files` mode to cquery (#15979) + edfe2a1: Make cpp assembly file extensions case sensitive again + 4ae8538: Prevent aspects from executing on incompatible targets (#15984) + f440f8e: Remote: Fix performance regression in "upload missing inputs". (#15998) + 0109031: Updated Codeowners file (#16032) + 6102d33: Propagate the error message when a credential helper fails. (#16030) + a8dacc7: Migrate legacy desugar wrapper to new rlocation() (#16025) + 11368be: Correctly report errors thrown by CommandLinePathFactory#create. + 82452c7: Fix an issue that `incompatible_remote_build_event_upload_respect_no_… (#16045) + e745468: Fix rpath for binaries in external repositories (#16079) + 83041b1: Refactor combined cache. (#16110) + c62496f: C++: Add compound error linked statically but not exported (#16113) + 0f18786: Do not crash on URIs without a host component. + 9c0940d: Add profiler task for calling a credential helper. + 2ca1ab2: Make bazel_cc_code_coverage_test more robust against GCC version differences (#16254) + 1e25152: Fix local execution of external dynamically linked cc_* targets (#16253) + f6cccae: * add change to allow blaze info to skip Starlark build settings that start with --no prefix * add unit tests for both info and clean commands + 59b8b8f: Release 5.3.1 (2022-09-19) + 77f0233: Update GrpcRemoteDownloader to only include relevant headers. (#16450) + 42ff95a: Avoid unnecessary iteration on action inputs. + d29034e: Update flag `--experimental_remote_download_regex` to accept multiple regular expressions. (#16478) Incompatible changes: - Removing java_common.javac_jar Starlark call. - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change because there is some code that relies on the precise type returned, including brittle workarounds for this bug specifically and insufficiently flexible workarounds for other issues with the intersection of select and native.existing_rule. - flipped incompatible_use_toolchain_resolution_for_java_rules, see #7849 - Query output=xml/proto/location for source files will now show the location of line 1 of the source file (as the new default) instead of its location in the BUILD file. - Specifying a target pattern underneath a directory specified by .bazelignore will now emit a warning, not an error. - Query `--order_output=auto` will now sort lexicographically. However, when `somepath` is used as a top level function (e.g. `query 'somepath(a, b)'`), it will continue to output in dependency order. If you do not want the lexicographical output ordering, specify another `--order_output` value (`no`, `deps` or `full`) based on what ordering you require. - In the build event stream, BuildMetrics.TargetMetrics.targets_loaded is no longer populated. Its value was always mostly meaningless. BuildMetrics.TargetMetrics.targets_configured and BuildMetrics.ActionSummary.actions_created now include configured aspect data. - //visibility:legacy_public has been removed. - Flip and remove incompatible_dont_collect_so_artifacts (#13043). - Remove flag --experimental_no_product_name_out_symlink: it is always true. - The Starlark method generate_dsym in objc fragment has been deleted. Please use the equivalent apple_generate_dsym in cpp fragment instead. - Native libraries in data attribute are not collected. See #13550 for details - Enforce the `--profile` path to be absolute. - Enforce the --memory_profile path to be absolute. - JavaToolchainInfo.jvm_opt returns Depset instead of a list. - --apple_sdk has been deleted. It is a no-op. - --bep_publish_used_heap_size_post_build is now a no-op and will be deleted in a future release. Use --memory_profile=/dev/null instead. - Flipped --incompatible_disallow_resource_jars (see #13221). - Remove --bep_publish_used_heap_size_post_build - JSON trace profile: rename counter names. - Removed --action_graph from the dump command. - Remove `--{experimental_,}json_trace_compression` option. - Remove `--experimental_profile_cpu_usage`. - flipped --incompatible_java_common_parameters (see #12373) - GrpcRemoteDownloader only includes relevant headers instead of sending all credentials. Closes #16439. New features: - Args.add_all and Args.add_joined can now accept closures in map_each if explicitly enabled via allow_closure. - Add `--bes_header` flag to pass extra headers to the BES server. Important changes: - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - none PAIR=cmita - The --incompatible_load_python_rules_from_bzl flag is now a no-op. - Filter all (instead of just C++) source files for coverage output according to --instrumentation_filter and --instrument_test_targets. - The `--incompatible_disable_native_apple_binary_rule` flag has been added which disables the native `apple_binary` rule. Users who need to use `apple_binary` directly (if they cannot use one of the more specific Apple rules) should load it from https://github.com/bazelbuild/rules_apple. - The Android rules' --use_singlejar_apkbuilder is now a no-op. SingleJar will always be used to build APKs. - dict.setdefault(key, ...) now fails if dict is frozen, even if it already contains key. This is an incompatible API change. - Flag --incompatible_objc_provider_remove_compile_info is removed. See #11359. - Starlark now permits def statements to be nested (closures). - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change, though the fallout is expected to be small. - Starlark now supports lambda (anonymous function) expressions. - The "test" and "coverage" commands no longer return 3 when a test action fails because of a system error. Instead, the exit code reflects the type of system error. - The undocumented ctx.expand feature no longer exists. - Make --legacy_dynamic_scheduler a no-op flag. - Multiplex persistent workers can now use the JSON protocol. - native.existing_rule now returns a mutable list, not a tuple, for a list-valued attributes. This is an incompatible API change. - Roll back change to have native.existing_rules use list instead of tuple. - BEP includes test suite expansions. - config_setting now honors `visibility` attribute (and defaults to `//visibility:public`) - Change the MultiArchSplitTransitionProvider to be based on platform type + CPU instead of fixed "ios_" + cpu. - enforce config_setting visibility. See #12932 for details. - add a flag to build v4 signature file - Added _direct_source_jars output group to Java related targets. END_PUBLIC - pkg_deb is no longer part of @bazel_tools//build_defs/pkg:pkg.bzl. Use https://github.com/bazelbuild/rules_pkg/tree/main/pkg instead - Allowing the lipo operations to be conditional in the linkMultiArchBinary API for Apple binaries. Single architecture slices are now returned through AppleBinaryOutput and the Starlark API. - Release restriction for "-" in the package name for Python sources. Now `py_binary` and `py_test` targets can have main source file with "-" in the path. - Users consuming BEP may assume that a `named_set_of_files` event will appear before any event referencing that `named_set` by ID. This allows consumers to process the files for such events (eg. `TargetCompleted`) immediately. - BEP includes all files from successful actions in requested output groups. Previously, an output group's files were excluded if any file in the output group was not produced due to a failing action. Users can expect BEP output to be larger for failed builds. - In BEP, TargetComplete.output_group has a new field `incomplete` indicating that the file_sets field is missing one or more declared artifacts whose generating actions failed. - The flag `--toolchain_resolution_debug` now takes a regex argument, which is used to check which toolchain types should have debug info printed. You may use `.*` as an argument to keep the current behavior of debugging every toolchain type. - Add runfiles.merge_all() for merging a sequence of runfiles objects. - runfiles.merge() and merge_all() now respect --nested_set_depth_limit. If you hit the depth limit because you were calling merge() in a loop, use merge_all() on a sequence of runfiles objects instead. - Bazel will no longer create a bazel-out symlink if --symlink_prefix is specified: the directory pointed to via the bazel-out symlink is accessible via ${symlink_prefix}-out. If this causes problems for you, set --experimental_no_product_name_out_symlink=false in your builds and file an issue. - Updates worker protocol with cancellation fields, and adds experimental_worker_cancellation flag to control cancellation. - Simplify build failure output by always using `NNN arguments`. - trim_test_configuration now defaults to on - Mark genrule.srcs as a source attribute for coverage. - When using --allow_analysis_failures (for example, via bazel-skylib's analysistest with `expect_failure = True`), analysis-time failures in aspect implementation functions will now be propagated and saved in AnalysisFailureInfo, just like analysis-time failures in rules. - cquery --noimplicit_deps now correctly filters out resolved cc_toolchains - Sign apks deterministically. - Make gcov optional in cc_toolchain tools. - If --experimental_prefer_mutual_xcode is passed, Bazel will choose the local default (instead of the newest mutually available version) if it's available both locally and remotely. - Remove java_lite_proto_library.strict_deps attribute. - Generate proguard configurations deterministically. - Adds a new flag, `--incompatible_enable_cc_test_feature` which switches from the use of build variables to the feature of the same name. - Dropped fragile xz support from built in pkg_tar. Users requiring xz compression should switch to bazlebuild/rules_pkg. - 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) - Add `disable_annotation_processing` option to `java_common.compile`, which disables any annotation processors passed to `plugins` or in `exported_plugins` of `deps` - Remove obsolete --incompatible_prohibit_aapt1 - The minimum Android build tools version for the Android rules is now 30.0.0 - Adds --experimental_reuse_sandbox_directories flag to reuse already-created non-worker sandboxes with cleanup. - --experimental_force_gc_after_build is deprecated and will be removed soon. Use --bep_publish_used_heap_size_post_build instead - Forward coverage-instrumented files from non-tool dependencies by default. - The used_heap_size_post_build field in BEP is populated when the --memory_profile flag is set - --run_validations defaults to true. - Consider label_keyed_string_dict attributes when gathering instrumented files for coverage. - Remove flag --experimental_forward_instrumented_files_info_by_default, now that this behavior is the default. - When using MemoryProfiler with multiple GCs via the --memory_profile_stable_heap_parameters flag, we do a more precise calculation of heap used at the end of the build. This will generally result in lower values. - --bep_publish_used_heap_size_post_build is deprecated. Use --memory_profile=/dev/null instead. - Disable --all_incompatible_changes flag. - The --all_incompatible_changes flag is now a no-op - The `--toolchain_resolution_debug` flag now accepts regexes matching targets, as well as toolchain types, when choosing what debug messages to print. - Adds --experimental_existing_rules_immutable_view flag to make the native.existing_rule and native.existing_rules functions more efficient by returning immutable, lightweight dict-like view objects instead of mutable dicts. - Add support to length-delimited protos as undeclared output annotations [] - The deprecated "relative_to_caller_repository" parameter has been removed from the Label constructor. - The toolchain transition is now enabled for all toolchains. - incompatible_disable_depset_items is flipped - The --experimental_existing_rules_immutable_view flag has been renamed to --incompatible_existing_rules_immutable_view - Bazel no longer supports Java 8. From this version on, the minimum required JDK is OpenJDK 11. - alias() can now select() directly on constraint_value() Fixes #13047. Closes #14310. - Fixed an issue where Bazel could erroneously report a test passes in coverage mode without actually running the test. - Make protocOpts() publicly accessible. - Add coverage configuration fragment, used to expose output_generator label. - Bazel now no longer includes system headers on macOS in coverage reports (#14969). Closes #14971. - Starlark test rules can use the new inherited_environment parameter of testing.TestEnvironment to specify environment variables whose values should be inherited from the shell environment. Closes #14849. - none RELNOTES:none - Enable merging permissions during Android manifest merging with the --merge_android_manifest_permissions flag. - Added new register_{execution_platforms,toolchains} directives to the MODULE.bazel file, to replace the {execution_platforms,toolchains}_to_register attributes on the module() directive. - Add support for fetching RPC credentials from credential helper. Progress on #15856 Closes #15947. - `cquery`'s new output mode [`--output=files`](https://bazel.build/docs/cquery#files-output) lists the output files of the targets matching the query. It takes the current value of `--output_groups` into account. Closes #15552. - Fix for desugaring failure on Bazel+Android+Windows build scenario. This release contains contributions from many people at Google, as well as Adam Liddell, Alex Eagle, Alex Eagle, amberdixon, Andreas Fuchs, Andrew Katson, Anthony Pratti, Artem V. Navrotskiy, Austin Schuh, Benedek Thaler, Benjamin Lee, Benjamin Peterson, Benjamin Peterson, Ben Lee, Brandon Jacklyn, Brentley Jones, bromano, Cameron Mulhern, Chenchu Kolli, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Dan Bamikiya, Dan Fleming, Daniel McCarney, Daniel Wagner-Hall, Danny Wolf, Dave MacLachlan, Dave Nicponski, David Cummings, David, David Ostrovsky, Delwin9999, Denys Kurylenko, Dmitry Ivankov, dorranh, ecngtng, Ed Schouten, Eitan Adler, Elliotte Rusty Harold, Emil Kattainen, erenon, Eric Cousineau, Ethan Steinberg, Fabian Meumertzheim, Fabian Meumertzheim, FaBrand, Felix Ehrenpfort, Finn Ball, frazze-jobb, Fredrik Medley, Garrett Holmstrom, Gautam Korlam, George Gensure, goodspark, Gowroji Sunil, Greg Estren, Grzegorz Lukasik, Grzegorz Lukasik, hvadehra, Ikko Ashimine, Jesse Chan, Joe Lencioni, Johannes Abt, John Laxson, Jonathan Schear, Juh-Roch, Justus Tumacder, Keith Smiley, kekxv, Kevin Hogeland, kshyanashree, Lauri Peltonen, Liu Liu, Lszl Csomor, m, Marc Zych, Mark Karpov, Masoud Koleini, Mathieu Olivari, Matt Mackay, Mauricio Galindo, Max Liu, Menny Even Danan, menny, Michael Chinen, Nathaniel Brough, Nick Korostelev, Niek Peeters, Nikolay Shelukhin, Niyas Sait, Noa Resare, odisseus, Oleh Stolyar, Olek Wojnar, Oliver Eikemeier, Olle Lundberg, Omar Zuniga, oquenchil, Paul Gschwendtner, Peter Kasting, Peter Mounce, Philipp Schrader, Pras Velagapudi, Qais Patankar, Rabi Shanker Guha, Rai, ron-stripe, Ryan Beasley, Ryan Beasley, samhowes, Samuel Giddins, Sebastian Olsson, Sergey Tyurin, Steve Siano, steve-the-bayesian, Stiopa Koltsov, susinmotion, tatiana, Tetsuo Kiso, Thaler Benedek, Thi Doan, Thi Doãn, Thi Don, Thomas Carmet, ThomasCJY, Timothe Peignier, Timothy Klim, Tobi, Torgil Svensson, Trustin Lee, Ulf Adams, Ulrik Falklof, Uri Baghin, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Wren Turkal, Xavier Bonaventura, Xùdōng Yáng, Yannic Bonenberger, Yannic Bonenberger, Yannic, Yannic, Yury Evtikhov, Yuval Kaplan, Yuval K, Yuval, Zhongpeng Lin, [zqzzq].
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [bazel](https://togithub.com/bazelbuild/bazel) | minor | `5.0.0` -> `5.3.2` | --- ### Release Notes <details> <summary>bazelbuild/bazel</summary> ### [`v5.3.2`](https://togithub.com/bazelbuild/bazel/blob/HEAD/CHANGELOG.md#Release-532-2022-10-19) [Compare Source](https://togithub.com/bazelbuild/bazel/compare/5.3.1...5.3.2) Baseline: 8d66a4171baddcbe1569972f019e54130111202c Cherry picks: + becd1494481b96d2bc08055d3d9d4d7968d9702e: Remote: Cache merkle trees + d7628e1b566be353fe7172241ac8f15d5f8e7ff5: Update DEFAULT_IOS_CPU for M1 arm64 simulator support + 80c56ff7b603fcfff02a5f97829a2a5935f360a0: Compile Apple tools as fat binaries if possible + 3c09f3438a966b49a7c1726022c898b390b3a6e5: Add protobuf as a well known module + 3a5b3606a6f5433467a5b49f0188c41411684bf5: Remote: Merge target-level exec_properties with --remote_default_exec_properties + 917e15ea408e1d3d25574edbb466b39cfbcb61fe: Add -no_uuid for hermetic macOS toolchain setup + f5cf8b076bc913dbe021104d5f6837fb4a6cd8b3: Remote: Fixes an issue when --experimental_remote_cache_async encounter flaky tests. + 77a002cce050e861fcc87c89acf7768aa5c97124: Remove DigestUtils.getDigestInExclusiveMode() now that SsdModule has … + 557a7e71eeb5396f2c87c909ddc025fde2678780: Fixes for the Starlark transition hash computation (#​14251) + 34c71465f84fa780217926db2e8e5ca3d6d4568c: Do location expansion in copts of objc_library + 50274a9f714616d4735a560db7f617e53fb8d01b: [5.x] Remote: Add support for compression on gRPC cache (#​14277) + 61bf2e5b5181cbe34a2f0d584053570943881804: Automated rollback of commit 34c71465f84fa780217926db2e8e5ca3d6d4568c. + 79888fe7369479c398bafe064daa19a7ae30f710: Silence a zstd-jni GCC warning. + 063b5c9c2c09b4794010b9a169b44890ffc79ec4: Remote: Limit max number of gRPC connections by --remote_max_connections. + fd727ec96d861573dcbad3249d727a94eff84789: Do location expansion in copts of objc_library + 23d096931be9b7247eafa750999dd7feadde14c1: Fix _is_shared_library_extension_valid + 5cf1d6e1f78bc860fcd0e2e86eff6fe43ab4a5a2: Remove merging of java_outputs in JavaPluginInfo. + cea5f4f499aa832cf90c68898671869ce79d63f2: Cherrypick Bzlmod documentation (#​14301) + 227e49e28e5122cddd6c4cb70686ff7bde3617ea: Format work requests according to ndjson spec + ae0a6c98d4f94abedbedb2d51c27de5febd7df67: Enable user_link_flags_feature for macosx cc_toolchain_config + 8c2c78cdc66cc9d5eb2cd59823c659892c1643a7: Remote: Use Action's salt field to differentiate cache across workspaces. + f94898915268be5670fb1e93a16c03e9b14d2a58: [5.x] Remote: Fix "file not found" error when remote cache is changed from enabled to disabled. (#​14321) + 3069ac4e33dcca6f3d1abf55940cdd764d03bdbf: Delete marker file before fetching an external repository + c05c6261cdb2cacb7c9881c255c0ada435ab5182: Remote: Fix file counting in merkletree.DirectoryTreeBuilder + d84f7998ef8f15e27376a0c8f25b320145c4ba9e: Fix remote spawn tests for remote_merkle_tree_cache=true + 59e16e944200555da377799aa0d9e8d0674d2e27: Show skipped tests as a warning + 76b3c242831f8e88835e3002a831a185a41fcc52: Build xcode-locator as a universal binary + aa52f2ddf9bab1ebd18e5431124061e813bfcd80: Exit collect_coverage.sh early if LCOV_MERGER is not set. + 4256d46327bad8638df91be1a5d4ef83b12b74c7: Automated rollback of commit d84f7998ef8f15e27376a0c8f25b320145c4ba9e. + dce24350befd08216b3910ae343670015444ff81: [apple] fix issues compiling C in objc_library for watchos/armv7k + bfc24139d93f8643686d91596ba347df2e01966a: 5.x: Remote: Ignore blobs referenced in BEP if the generating action cannot be cached remotely. (#​14389) + 5aef53a8884038f3c9f06e6dddb9372196253378: Remote: Don't blocking-get when acquiring gRPC connections. (#​14420) + 005361c895da334beb873901e93aff06d180256e: Disable IncludeValidation for ObjC in bazel + d703b7b4f09fb3c389f99e52bac1f23930280b56: Update java_tools v11.6 + 90965b072eb4a6dec8ff5b8abde3726732d37bdc: Stop remote blob upload if upload is complete. (#​14467) + dc59d9e8f7937f2e317c042e8da8f97ba6b1237e: [5.x] Make remote BES uploader better (#​14472) + 2edab739e1f61fe8813230b03396ca46f0790089: Avoid too verbose warnings in terminal when cache issues + 1160485192b5e6d95bcd426b55cc9a35fc6b8614: Rename --project_id to --bes_instance_name + c63d9ecbe5fcb5716a0be21d8fc781d7aa5bbc30: Automated rollback of commit bfdfa6ebfd21b388f1c91f512291c848e1a92a96. + b341802700484d11c775bf02d80f43ba3f33b218: [apple] support watchos_arm64 in toolchain + 43bcf80a3dfdc5ac89c1e4d615d6f29a495855fb: Disable implicitly collecting baseline coverage for toolchain targets. + 302971e1b3d803069ac949c0085c0d2a3916c8ab: Automated rollback of commit 7d09b4a15985052670244c277e4357557b4d0039. + 62002024ca7012ffe0f4fc74ac20b5471513c8c8: Bzlmod: Starlarkify default attr values for TypeCheckedTags + 38117d491cbc4a5686e0bdb1e58f8946d96aed58: Fix build after rc4 cherrypicks (#​14581) + 41feb616ae18e21fdba3868e4c298b0b83012f10: Release 5.0.0 (2022-01-19) + 486d153d1981c3f47129f675de20189667667fa7: Find runfiles in directories that are themselves runfiles + 0de7bb95022057e8b89334f44759cf6f950e131f: Don't resolve symlinks for --sandbox_base + 8b60c90f3641591b65c4e153113aea562f1fab94: Remove uses of -lstdc++ on darwin + 60f757c0831f9fbb2415fb0105f964201faa9fa0: Allow Label instances as keys in select (#​14755) + 3836ad029f202ca13c64c9f07e4568ea8ab2d9a6: Remote: Only waits for background tasks from remote execution. + 8734ccf9847eafb7193388cd9c6fa78faa78283f: Add the default solib dir to the rpath for cc_imports with transitions + 9e16a6484e94c358aa77a6ed7b1ded3243b65e8f: Flip --experimental_worker_allow_json_protocol + fce7ea8d5e0facfc125ae7c37bfb4b9a7c586e40: Fix `ctx.fragments.apple.single_arch_cpu` returning incorrect cpu for tools when host cpu and exec cpu are different + 0c1d09e4dce4c3251c2be2c70d4575ec65b1d9d3: Propagate --experimental_cc_implementation_deps to host config + 1c3a2456c95fd19974a5b2bd33c5ebdb2b2277e4: Support select() on constraint_value for aliases. + 67a133b431ccece22b7dd9a72f0837cff77d4360: Improve documentation for select() + 5356fedd4b6079851b51db27077bf84c7bab16a4: Cherrypicks for experimental cc_shared_library (#​14773) + ffdd633d7b9f21267f4f9759dd9833096dd4e3a2: [apple] support tvos_sim_arm64 in toolchain (#​14779) + a58ddea50b2fd476d183e2e0c077ad6173039b89: Cherry pick win arm64 (#​14794) + dc41a20bb045d221a43223a5db6b8b44cd8f1676: [5.1.0] cherrypick subpackages support (#​14780) + 86e2db7d67ec52bfe11c1f517f650653cee3ea26: Add a helper method for rules to depend on the cpp toolchain type. + 6990c02644a71d5e7c95c9c234ecf39bb55c6ac4: UrlRewriter should be able to load credentials from .netrc (#​14834) + 32d1606dac2fea730abe174c41870b7ee70ae041: Add "arch" struct field to repository_os + 2cfdceae971d09f50ceddc3d7ef723fb5f879957: [5.x] bzlmod: Add support for WORKSPACE.bzlmod (#​14813) + c2ddbd1954af5baab63b93f2b055a410a27832c8: Ignore missing include directory in JDK distribution. + 16de03595e21f7bf31818e717505b23c953b3b7d: Fix bazel coverage false negative + 0c74741742301abcf67452a7f591daec1c3a7635: Remote: Postpone the block waiting in `afterCommand` to `BlockWaitingModule` (#​14833) + 3297d9234e15515aa91cc887b3b12db7e1040b02: Switch to `ProcessHandle` for getting the PID (#​14842) + a987b98ea0d6da2656c4115568ef9cbe8a164550: Fix uses of std++ on bsd + d184e4883bb7fc21de2f7aeea4304994de27e9ea: Remote: handle early return of compressed blobs uploads + 0b09e9e018c557da04c9f978d25a66d963cd6cb6: Add removeprefix/removesuffix to Starlark strings + d42ab0cfcce56b5e55c8bd94d0923d08758fdb5b: Fix default CPU for macOS and iOS (#​14923) + cd24f39750d7b08f6f31c82d3a23cc329c7fc78e: Add paramfile support for def_parser, since in rare cases on Windows command line character limit was reached. + 0b1beefd1e7611dc9b9f559d00d8ff76aabb0f32: Normalize rpath entries to guard against missing default solib dir + 24e82426e689853b0d9a04e7b9b6f13e145cf2d6: Fix aggressive params file assumption + c45838bd3e51bcd0c8c3e1a9b4a0e55cdf4b4f59: Fix precompiled libs not in runfiles of cc_shared_library (#​14943) + 764614e0f0287125269e7a92e909a44624bcb360: Bzlmod: Allow multiple `use_extension`s on the same extension (#​14945) + fa761f84994f18db383fbe9aaea524e4385da13a: Fix typo in `apple_common.platform` docs + f7d8288bd7b16c7f2e010aa8ddc241cf2ba8e0d5: Yield a Proxy for addresses without protocol + 8cefb8bed4ac82df8640682517372a9249732352: Avoid merging URLs in HttpUtils + b4804807fc2c184cc36df9e69e472942c01941b8: Make protocOpts() public. (#​14952) + 113eaca5862c48797654ae2a3acbb6e15d761485: Do not hide BulkTransferException messages when there were more than one exception + b1bf9d6c5f85fc4fda0dc48bc3d3e2fe26880867: merkle_tree_cache: change default size to 1000 + f15e0c7224ecc5473d4972afc436e28df35c4e5a: Add --experimental_repository_cache_urls_as_default_canonical_id to help detect broken repository URLs (#​14989) + f4214746fcd15f0ef8c4e747ef8e3edca9f112a5: Expose the logic to read user netrc file + b858ec39aebd7e586af5438aa2035db2adebf9a4: Correct cpu and os values of `local_config_cc_toolchains` targets + 5e79972c05d89280f0cf1fa620f807366847bac6: Expose CoverageOutputGenerator on a Fragment (#​14997) + 78f03110e0dab42f37e427fd524e72706e036d74: Correct error runfiles cc_shared_library (#​14998) + 7937dd14c3c632ffcfaea9073d5dec6dcac93845: [5.1] Adding Starlark dependencies to the package //external (#​14991) + a73aa12be65454ac8cfb5a8f3e056c420402f997: Remote: Fix crashes with InterruptedException when using http cache. + f8707c07f153ac4ac2ec4b210321f1a16343006d: Account for interface libraries in cc_shared_library + a570f5fdb1618a6c272d18bebaa712d3b2af3975: Fix coverage runfiles directory issue + 95de355e4524a6339c0e807b60d333c36c40bdc7: Do not validate input-only settings in transitions (#​15048) + 71747ccc9d0032a865854613329362563c0574df: Filter out system headers on macOS. + cb6500a9ce648a02154dca8d05a978ce9b10c4b4: Update Bazel bootstrap documentation and remove obsolete flags. (#​15065) + 4c031d1030afb1cb48c7e6d71f83cc99fea607c1: [5.1] Undocument --bes_best_effort (#​15066) + 267142f3dc6b8d32b07beb21e3b4ba6f471a69d8: Fix conflicting actions error when specifying --host_macos_minimum_os (#​15068) + f1923627e85b1c1d60bcd928f90f116c3ade7a3a: [5.1] Remote: Action should not be successful and cached if outputs were not created (#​15071) + 00d74ff737cccd60305ee58d85313556a077152a: Support decompressing zstd tar archives for repository rules. + f5857830bb68bd05ffc257506575ed37a8128933: Remote: Don't check TreeArtifact output + efb2b80953983dce499d453a9f55a74ffaf8c42d: osx_cc_wrapper: Only expand existing response files + c771c43b870fb8618db7bdab6725ab40cac4976d: Remote: Fix crashes by InterruptedException when dynamic execution is enabled. (#​15091) + 3785677cc84fc4024fda85575c05efbde5d512fc: Use python3 on macOS + 815d9e499a32fd4d87525ac0c698c293cf26433d: Release 5.1.0 (2022-03-24) + 1fbb69e366034484887e00c6006c7b79508765ed: Prepare 5.1.1 release + df153df9656e0e197f67622bb11f7d77e19238a0: Fix CODEOWNERS syntax + 2b92a3111e83a4d14934059afd0f51161a41276f: Remote: Don't check declared outputs for failed action + b47aa71b21d93c9499103e9a37a6c2ffa79865b9: Upgrade abseil version to the latest + c49c45d8dac87d21cf2b6a176ddd07f2c9f63414: Revert default export all symbols on Windows + 7d3fb993f55b35081786c3fe00cf3bebb89574f3: Support ZIP files with total number of disks = 0 + 0f5dc111be06b2ee8694640f400b58e12bfa5fea: Release 5.1.1 (2022-04-08) + 2422cfb3e5d92d46f9065b2b1e442823a965faf7: Update CODEOWNERS + bbcff1802423fca7ee5bd6a3e527c12d6d7d80ba: [5.2.0] Update java_tools 11.7.1 (#​15231) + 9c98120f33579b72561e02826d9fccf222eccb3c: Add support for .ar archives (and .deb files) + d3435b09d89f25bf5008ef3b9c870c835d51a8da: Seperate GetSelfPath implementation for Blaze and Bazel + c94572bea5ce6bdc0ccda9789e5be6fb3f4c173b: Include jdk.crypto.mscapi in minimized Windows embedded JDK + 299022ca2dc49b6cb27b2674f933755306ae8b9b: remote: Proactively close the ZstdInputStream in ZstdDecompressingOutputStream. + 27707995cc6576ed1f51fbdb199ff8512e8418c9: Collect coverage from cc_binary data deps of java_test + 3442179d240e01ef13b0fa7814db7366bad5ffac: Configure Apple crosstool to return a complete target triple that includes minimum OS version and target environment + bb6f1a7ce79168055ccd62629da07d46a52b930d: Collect C++ lcov coverage if runtime object not in runfiles + dbb6e9954b6e4423f727feb2719ffc75a93b514b: Fixing dependencies of //external package + f0213bbf730c4a5d1a31e65bc9c01fbb55a6edb3: [5.2] Upgrade Google Auth Version (#​15383) + a1a74c9919e03e09ef7c6ae13f38f48eea80ead1: Fix chocolatey package - docsUrl must not 404 (#​15395) + fe644bee95c14d461e0d1e3cccaa8bbcd57bcd8d: Fix cache leak when applying transitions when only a rule's attributes change. + ad74d5243917bb27a37e38d151a4a3c8a49947eb: Fix checking remote cache for omitted files in buildevent file (#​15405) + ac219103d8798965b775db548d7b9214ecd78f73: fix(bzlmod): throw on json parse exception + 3d85b88609a362857d8ee3c0432a37d30268a8a2: Add a flag to expose undeclared test outputs in unzipped form. (#​15431) + abd7a9f70c3dfe96724a692dc7dc04ff33bdece1: Remove -U_FORTIFY_SOURCE when thin_lto is enabled (#​15433) + 53b9cb8637c0faddc6b122a1daab72bcc274bdec: Catch NumberFormatException while trying to parse thread id. + 19740b55ebc283b7ec42b359bcd4c9096facfdd5: Improve the --sandbox_debug error message + 0a2a43f9aab1e3875f03f643f6414eb67834c883: Set keywords on appropriate lifecycle events. + 394ddb82b311ea7edbe2522736b0b0202903ddb6: Record additional profiling information for remotely executed actions. + 652b48e567fcb30768dfc2eddee5f04bf6b5d65b: Fix downloading remote execution output files inside output dirs. (#​15444) + 73f1ecbc1cb00e16ceda4b582f4d57268f8701cd: Fix android emulator darwin_arm64 select + 2649c7c4adef0ebf9bca8fe46aa97304b22de522: Fix --use_top_level_targets_for_symlinks with aliases (#​15446) + fa1081c1f3dce7324a1da59c40d1a1a3533c7047: Filter libtool warning about table of contents + 26f878325e915e0905626a0e4c8bbacffd72f875: Unify sandbox/remote handling of empty TreeArtifact inputs (#​15449) + 6b21b7773157a1eebd3dfe79ff4c4ee750059daf: Revert "Fixes incorrect install names on darwin platforms" + e133e66f715bac17bf5848e4440c089a8c8d3fd9: config doesn't error on duplicate `--define` values (#​15473) + 84d59176622b76223828e61709179dbd5f0c9f8d: Collect coverage from cc_binary data deps of py_test (#​15298) + 519d2daacfff3de6ffabfc5827621fa835e1c815: SolibSymlinkAction does not need exec platform or properties + 6e54699884cfad49d4e8f6dd59a4050bc95c4edf: Let Starlark tests inherit env variables (#​15217) + 9610ae889e6fd45280c5beb7fe8f5bef2d736878: Update PythonZipper action to use CommandLineItem.CapturingMapFn + 2f1ff6fa17c3c30b2533bffe81f40eab06b453b9: Make `coverage --combined_report=lcov` skip incompatible tests + 9fad5a3dc93cd436a5712c46e6c98d3995428ddb: Disable ReturnValueIgnored checks to unblock java_tools release + 0120118893261968bdf116ef215655c428428fa8: Bump the limit of Bazel install base size (#​15585) + 668805aace9bf96f78595fc2a122027a3000ceac: Upgrade zlib to 1.2.12 + 4d900ceea12919ad62012830a95e51f9ec1a48bb: [5.2] Remote: Fix a bug that outputs of actions tagged with no-remote are u... (#​15453) + b703cb9b999e243d776b7620468e48f450c0ce3a: Add feature to produce serialized diagnostics files (#​15600) + 2e8458b7810eab7829fc7d28af5c45b9af91ed7c: Release 5.2.0 (2022-06-07) + 536f8d97991d891fc7db333af1a5262497d85173: Fix fail message construction in cc_shared_library + 2d42925ae80c0fb007aa39f4e210122611897255: Define cc-compiler-darwin in Xcode toolchain + a1d7d1f69f82da1bdfa1cebd32356249127aea3b: Fix alwayslink in objc_import + d273cb62f43ef8169415cf60fc96e503ea2ad823: Unify URL/URLs parameter code across http_archive, http_file, http_jar + fea32be42928c84463aa1f335b5722a1f6b8c93a: Preserve --experimental_allow_unresolved_symlinks in exec cfg + e4bc370b226eb0cc536b55641640266345a214ec: Ck/cherry pick cc shared library (#​15754) + dbdfa07e92f99497be9c14265611ad2920161483: Let Starlark executable rules specify their environment (#​15766) + e2a6a2b130552db7521d3d4d854b9a651b1f4a3b: Fix string formatting when java_home path is missing. + d54a288e6c79c740b9c93dfc31ee345d6a5332af: Optionally enable LLVM profile continuous mode + ad17b44cdc192277fafb0d0e204962b2b924dba8: Print remote execution message when the action times out (#​15772) + 240e3d1e1dbc74c7753dead6421d7c1b5fc28d09: Add missing line to cherrypick e4bc370b226eb0cc536b55641640266345a214ec (#​15784) + 804b4747152a59bc2965be2db85839b8b2764fc7: Replace strdupa with strdup + 62be9ea29295fab5289bd5d1a0f13dc7d55a8bc0: Bzlmod: Better canonical repo names for modules with overrides (#​15793) + d4663a1c950d618c5b15a3e00fb733987cbf45cc: Add repo env test (#​15768) + 594962cb283dcd71b736e0450453903911a8c85a: Add is_root struct field to bazel_module (#​15815) + 3dd2b932d42fe86112899550d21452409cb3c4b0: Fix null pointer crash with `bazel coverage` on only incompatible tests + 4175018b47800db28c390d39fefbd266b5d674bd: Add util for finding credential helper to use + 3ea9eb2e363860c9305a987fa22a059afd35598d: Merge ManifestMergerAction-related commits into release-5.3.0 (#​15824) + 64571a428ffe2bf09f1a5eea13e770a7d0381620: Ck/cherrypick 15669 (#​15788) + 1404651cafe5c26c5dae469e9126de53c2f4f024: Create output directories for remote execution (#​15818) + ae523f82d39daf01cf31e40733de0c6345f0935c: Use tree artifacts in bootclasspath rule + 37f181cb6ed0237f43d81159eb81b19d3b5f8e36: [credentialhelper] Add types to communicate with the subprocess + 06ca634e10f17023022ab591a55aabdd9fb57b12: Add a flag to force Bazel to download certain artifacts when using --remote_download_minimal (#​15870) + d35f923b098e4dc9c90b1ab66b413c216bdee638: RemoteExecutionService: fix outputs not being uploaded + 78af34f9f25b0c8fbf597a794a5162f0014629c5: Cherry-pick proto_lang_toolchain Starlarkfication and proto_common module (#​15854) + afb434da9da79b53da1ea4c7bcc00571dbea6d3f: Fix behavior of `print()` in module extensions + 6714c30507edc70ec84f8c97d47cffc497356c0b: [credentialhelper] Implement invoking credential helper as subprocess + 0f05904171d187e6abacb431b3d7494423b027ab: Add register_{execution_platforms,toolchains} directives to MODULE.bazel files (#​15852) + 33516e27dc6ee6ab5c3b9dee739a267b08d26b6c: [remote] Improve .netrc test in RemoteModuleTest + aa2a1f3afe2f10baab5befcafb39df14cbffc743: Fix ZipDecompressor windows 0x80 (file attribute normal) + 30f16e53cb36a5d506665be7553e785d52772e2d: Replace uses of `cfg = "host"` with `cfg = "exec"` (#​15922) + 2a8d0ad7103511a94382aef41821a315bf8144b7: target pattern file: allow comments + 6f732052654ec37192450c795bb28dd0aad559cd: Add factory for creating paths relative to well-known roots (#​15931) + 32cc8e638b91816f427b74266f6a8da6fb605419: Update CODEOWNERS (#​15910) + 63bc14b095f1ea4043024e7fe1f9c476968897c5: Implement native analysis_test call. (#​15940) + 4df77f771e5cfdf4b614afd8934d00c2b2ff31d1: Increase osx_cc_configure timeouts + cdf01a39ab9def4d46f41595ac1ac9206a96d6f8: Allow string_list flags to be set via repeated flag uses + 05e758d4bc18fc9d9e189526381a06e4399056a2: [credentialhelper] Add parser for flag syntax (#​15929) + e4ee34416ef18094496ab54446e70cb62cd509e6: Docs should mention the new no-remote-cache-upload tag (#​15965) + 96d23d30cc80912b82a8fbab31c902e9db74b6ab: Add netrc support to --bes_backend (#​15970) + c5bc34e5f1dd92703dd8f15f9f0409c49b778837: Add CommandLinePathFactory to CommandEnvironment (#​15971) + 508f18576ab5327bd623db6b476511ac2089d0fa: Move newCredentialHelperProvider into GoogleAuthUtils (#​15973) + 14c944a5386eccbcfbe8389afb6c518582b11270: Wire up credential helper to command-line flag(s) (#​15976) + 04c373b708390341be4ceb8eb5b2f8561385cb11: Add `--output=files` mode to cquery (#​15979) + edfe2a17e3434cce660757f59b14f2e9d6ab944e: Make cpp assembly file extensions case sensitive again + 4ae85387e69db73e507b4f18b36d3e2f799e5d34: Prevent aspects from executing on incompatible targets (#​15984) + f440f8ec3f63e5d663e1f9d9614f05a39422102a: Remote: Fix performance regression in "upload missing inputs". (#​15998) + 0109031a2818b217b78026055b972da5901656f5: Updated Codeowners file (#​16032) + 6102d33bf0b72dc0fe9ada4c71113cbee3eb8187: Propagate the error message when a credential helper fails. (#​16030) + a8dacc7832b04fe1756cd7adce72f2572f357eee: Migrate legacy desugar wrapper to new rlocation() (#​16025) + 11368be4ac24108f18b1965162ad27f207c074f9: Correctly report errors thrown by CommandLinePathFactory#create. + 82452c7c372fb28485b0b5e0a98b471648f0dfd0: Fix an issue that `incompatible_remote_build_event_upload_respect_no_… (#​16045) + e745468461f93839491a4f80d0c1883d9007f9c0: Fix rpath for binaries in external repositories (#​16079) + 83041b145d3966eb353aacb22b7e33ad01d9a239: Refactor combined cache. (#​16110) + c62496f7b76da473cb1102798373f552ba2f434d: C++: Add compound error linked statically but not exported (#​16113) + 0f18786b09e9729d79c0f14f7843b4d8402b6115: Do not crash on URIs without a host component. + 9c0940df3c5962b2291e812600dd71731775d45b: Add profiler task for calling a credential helper. + 2ca1ab2c2c73d78021794f3099ee892cc73f515e: Make bazel_cc_code_coverage_test more robust against GCC version differences (#​16254) + 1e25152906b668bbe56aa4c1773186af85335315: Fix local execution of external dynamically linked cc_* targets (#​16253) + f6cccae5b6f9c0ad0e7d0bf7bd31ea1263449316: * add change to allow blaze info to skip Starlark build settings that start with --no prefix * add unit tests for both info and clean commands + 59b8b8f4dc098c31a372ad45adc2a48c5f1c4a9f: Release 5.3.1 (2022-09-19) + 77f0233420d141e36fbf86a62dff20285c7d8fdc: Update GrpcRemoteDownloader to only include relevant headers. (#​16450) + 42ff95a1202cd18cc3348ed6a442de5eb95845bd: Avoid unnecessary iteration on action inputs. + d29034e43150f32bb02c2cff3774747e25e97de3: Update flag `--experimental_remote_download_regex` to accept multiple regular expressions. (#​16478) Incompatible changes: - Removing java_common.javac_jar Starlark call. - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change because there is some code that relies on the precise type returned, including brittle workarounds for this bug specifically and insufficiently flexible workarounds for other issues with the intersection of select and native.existing_rule. - flipped incompatible_use_toolchain_resolution_for_java_rules, see [#​7849](https://togithub.com/bazelbuild/bazel/issues/7849) - Query output=xml/proto/location for source files will now show the location of line 1 of the source file (as the new default) instead of its location in the BUILD file. - Specifying a target pattern underneath a directory specified by .bazelignore will now emit a warning, not an error. - Query `--order_output=auto` will now sort lexicographically. However, when `somepath` is used as a top level function (e.g. `query 'somepath(a, b)'`), it will continue to output in dependency order. If you do not want the lexicographical output ordering, specify another `--order_output` value (`no`, `deps` or `full`) based on what ordering you require. - In the build event stream, BuildMetrics.TargetMetrics.targets_loaded is no longer populated. Its value was always mostly meaningless. BuildMetrics.TargetMetrics.targets_configured and BuildMetrics.ActionSummary.actions_created now include configured aspect data. - //visibility:legacy_public has been removed. - Flip and remove incompatible_dont_collect_so_artifacts [https://github.com/bazelbuild/bazel/issues/13043](https://togithub.com/bazelbuild/bazel/issues/13043)3043). - Remove flag --experimental_no_product_name_out_symlink: it is always true. - The Starlark method generate_dsym in objc fragment has been deleted. Please use the equivalent apple_generate_dsym in cpp fragment instead. - Native libraries in data attribute are not collected. See [https://github.com/bazelbuild/bazel/issues/13550](https://togithub.com/bazelbuild/bazel/issues/13550)3550 for details - Enforce the `--profile` path to be absolute. - Enforce the --memory_profile path to be absolute. - JavaToolchainInfo.jvm_opt returns Depset instead of a list. - \--apple_sdk has been deleted. It is a no-op. - \--bep_publish_used_heap_size_post_build is now a no-op and will be deleted in a future release. Use --memory_profile=/dev/null instead. - Flipped --incompatible_disallow_resource_jars (see [https://github.com/bazelbuild/bazel/issues/13221](https://togithub.com/bazelbuild/bazel/issues/13221)3221). - Remove --bep_publish_used_heap_size_post_build - JSON trace profile: rename counter names. - Removed --action_graph from the dump command. - Remove `--{experimental_,}json_trace_compression` option. - Remove `--experimental_profile_cpu_usage`. - flipped --incompatible_java_common_parameters (see [#​12373](https://togithub.com/bazelbuild/bazel/issues/12373)) - GrpcRemoteDownloader only includes relevant headers instead of sending all credentials. Closes [#​16439](https://togithub.com/bazelbuild/bazel/issues/16439). New features: - Args.add_all and Args.add_joined can now accept closures in map_each if explicitly enabled via allow_closure. - Add `--bes_header` flag to pass extra headers to the BES server. Important changes: - Flag --incompatible_objc_compile_info_migration is removed. See [#​10854](https://togithub.com/bazelbuild/bazel/issues/10854). - Flag --incompatible_objc_compile_info_migration is removed. See [#​10854](https://togithub.com/bazelbuild/bazel/issues/10854). - Flag --incompatible_objc_compile_info_migration is removed. See [#​10854](https://togithub.com/bazelbuild/bazel/issues/10854). - none PAIR=cmita - The --incompatible_load_python_rules_from_bzl flag is now a no-op. - Filter all (instead of just C++) source files for coverage output according to --instrumentation_filter and \--instrument_test_targets. - The `--incompatible_disable_native_apple_binary_rule` flag has been added which disables the native `apple_binary` rule. Users who need to use `apple_binary` directly (if they cannot use one of the more specific Apple rules) should load it from https://github.com/bazelbuild/rules_apple. - The Android rules' --use_singlejar_apkbuilder is now a no-op. SingleJar will always be used to build APKs. - dict.setdefault(key, ...) now fails if dict is frozen, even if it already contains key. This is an incompatible API change. - Flag --incompatible_objc_provider_remove_compile_info is removed. See [#​11359](https://togithub.com/bazelbuild/bazel/issues/11359). - Starlark now permits def statements to be nested (closures). - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change, though the fallout is expected to be small. - Starlark now supports lambda (anonymous function) expressions. - The "test" and "coverage" commands no longer return 3 when a test action fails because of a system error. Instead, the exit code reflects the type of system error. - The undocumented ctx.expand feature no longer exists. - Make --legacy_dynamic_scheduler a no-op flag. - Multiplex persistent workers can now use the JSON protocol. - native.existing_rule now returns a mutable list, not a tuple, for a list-valued attributes. This is an incompatible API change. - Roll back change to have native.existing_rules use list instead of tuple. - BEP includes test suite expansions. - config_setting now honors `visibility` attribute (and defaults to `//visibility:public`) - Change the MultiArchSplitTransitionProvider to be based on platform type + CPU instead of fixed "ios\_" + cpu. - enforce config_setting visibility. See [https://github.com/bazelbuild/bazel/issues/12932](https://togithub.com/bazelbuild/bazel/issues/12932)2932 for details. - add a flag to build v4 signature file - Added \_direct_source_jars output group to Java related targets. END_PUBLIC - pkg_deb is no longer part of @​bazel_tools//build_defs/pkg:pkg.bzl. Use https://github.com/bazelbuild/rules_pkg/tree/main/pkg instead - Allowing the lipo operations to be conditional in the linkMultiArchBinary API for Apple binaries. Single architecture slices are now returned through AppleBinaryOutput and the Starlark API. - Release restriction for "-" in the package name for Python sources. Now `py_binary` and `py_test` targets can have main source file with "-" in the path. - Users consuming BEP may assume that a `named_set_of_files` event will appear before any event referencing that `named_set` by ID. This allows consumers to process the files for such events (eg. `TargetCompleted`) immediately. - BEP includes all files from successful actions in requested output groups. Previously, an output group's files were excluded if any file in the output group was not produced due to a failing action. Users can expect BEP output to be larger for failed builds. - In BEP, TargetComplete.output_group has a new field `incomplete` indicating that the file_sets field is missing one or more declared artifacts whose generating actions failed. - The flag `--toolchain_resolution_debug` now takes a regex argument, which is used to check which toolchain types should have debug info printed. You may use `.*` as an argument to keep the current behavior of debugging every toolchain type. - Add runfiles.merge_all() for merging a sequence of runfiles objects. - runfiles.merge() and merge_all() now respect \--nested_set_depth_limit. If you hit the depth limit because you were calling merge() in a loop, use merge_all() on a sequence of runfiles objects instead. - Bazel will no longer create a bazel-out symlink if \--symlink_prefix is specified: the directory pointed to via the bazel-out symlink is accessible via ${symlink_prefix}-out. If this causes problems for you, set \--experimental_no_product_name_out_symlink=false in your builds and file an issue. - Updates worker protocol with cancellation fields, and adds experimental_worker_cancellation flag to control cancellation. - Simplify build failure output by always using `NNN arguments`. - trim_test_configuration now defaults to on - Mark genrule.srcs as a source attribute for coverage. - When using --allow_analysis_failures (for example, via bazel-skylib's analysistest with `expect_failure = True`), analysis-time failures in aspect implementation functions will now be propagated and saved in AnalysisFailureInfo, just like analysis-time failures in rules. - cquery --noimplicit_deps now correctly filters out resolved cc_toolchains - Sign apks deterministically. - Make gcov optional in cc_toolchain tools. - If --experimental_prefer_mutual_xcode is passed, Bazel will choose the local default (instead of the newest mutually available version) if it's available both locally and remotely. - Remove java_lite_proto_library.strict_deps attribute. - Generate proguard configurations deterministically. - Adds a new flag, `--incompatible_enable_cc_test_feature` which switches from the use of build variables to the feature of the same name. - Dropped fragile xz support from built in pkg_tar. Users requiring xz compression should switch to bazlebuild/rules_pkg. - 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) - Add `disable_annotation_processing` option to `java_common.compile`, which disables any annotation processors passed to `plugins` or in `exported_plugins` of `deps` - Remove obsolete --incompatible_prohibit_aapt1 - The minimum Android build tools version for the Android rules is now 30.0.0 - Adds --experimental_reuse_sandbox_directories flag to reuse already-created non-worker sandboxes with cleanup. - \--experimental_force_gc_after_build is deprecated and will be removed soon. Use --bep_publish_used_heap_size_post_build instead - Forward coverage-instrumented files from non-tool dependencies by default. - The used_heap_size_post_build field in BEP is populated when the \--memory_profile flag is set - \--run_validations defaults to true. - Consider label_keyed_string_dict attributes when gathering instrumented files for coverage. - Remove flag \--experimental_forward_instrumented_files_info_by_default, now that this behavior is the default. - When using MemoryProfiler with multiple GCs via the \--memory_profile_stable_heap_parameters flag, we do a more precise calculation of heap used at the end of the build. This will generally result in lower values. - \--bep_publish_used_heap_size_post_build is deprecated. Use \--memory_profile=/dev/null instead. - Disable --all_incompatible_changes flag. - The --all_incompatible_changes flag is now a no-op - The `--toolchain_resolution_debug` flag now accepts regexes matching targets, as well as toolchain types, when choosing what debug messages to print. - Adds --experimental_existing_rules_immutable_view flag to make the native.existing_rule and native.existing_rules functions more efficient by returning immutable, lightweight dict-like view objects instead of mutable dicts. - Add support to length-delimited protos as undeclared output annotations \[] - The deprecated "relative_to_caller_repository" parameter has been removed from the Label constructor. - The toolchain transition is now enabled for all toolchains. - incompatible_disable_depset_items is flipped - The --experimental_existing_rules_immutable_view flag has been renamed to --incompatible_existing_rules_immutable_view - Bazel no longer supports Java 8. From this version on, the minimum required JDK is OpenJDK 11. - alias() can now select() directly on constraint_value() Fixes [https://github.com/bazelbuild/bazel/issues/13047](https://togithub.com/bazelbuild/bazel/issues/13047). Closes [#​14310](https://togithub.com/bazelbuild/bazel/issues/14310). - Fixed an issue where Bazel could erroneously report a test passes in coverage mode without actually running the test. - Make protocOpts() publicly accessible. - Add coverage configuration fragment, used to expose output_generator label. - Bazel now no longer includes system headers on macOS in coverage reports ([#​14969](https://togithub.com/bazelbuild/bazel/issues/14969)). Closes [#​14971](https://togithub.com/bazelbuild/bazel/issues/14971). - Starlark test rules can use the new inherited_environment parameter of testing.TestEnvironment to specify environment variables whose values should be inherited from the shell environment. Closes [#​14849](https://togithub.com/bazelbuild/bazel/issues/14849). - none RELNOTES:none - Enable merging permissions during Android manifest merging with the --merge_android_manifest_permissions flag. - Added new register\_{execution_platforms,toolchains} directives to the MODULE.bazel file, to replace the {execution_platforms,toolchains}\_to_register attributes on the module() directive. - Add support for fetching RPC credentials from credential helper. Progress on [https://github.com/bazelbuild/bazel/issues/15856](https://togithub.com/bazelbuild/bazel/issues/15856) Closes [#​15947](https://togithub.com/bazelbuild/bazel/issues/15947). - `cquery`'s new output mode [`--output=files`](https://bazel.build/docs/cquery#files-output) lists the output files of the targets matching the query. It takes the current value of `--output_groups` into account. Closes [#​15552](https://togithub.com/bazelbuild/bazel/issues/15552). - Fix for desugaring failure on Bazel+Android+Windows build scenario. This release contains contributions from many people at Google, as well as Adam Liddell, Alex Eagle, Alex Eagle, amberdixon, Andreas Fuchs, Andrew Katson, Anthony Pratti, Artem V. Navrotskiy, Austin Schuh, Benedek Thaler, Benjamin Lee, Benjamin Peterson, Benjamin Peterson, Ben Lee, Brandon Jacklyn, Brentley Jones, bromano, Cameron Mulhern, Chenchu Kolli, Christopher Peterson Sauer, Christopher Sauer, Cristian Hancila, Dan Bamikiya, Dan Fleming, Daniel McCarney, Daniel Wagner-Hall, Danny Wolf, Dave MacLachlan, Dave Nicponski, David Cummings, David, David Ostrovsky, Delwin9999, Denys Kurylenko, Dmitry Ivankov, dorranh, ecngtng, Ed Schouten, Eitan Adler, Elliotte Rusty Harold, Emil Kattainen, erenon, Eric Cousineau, Ethan Steinberg, Fabian Meumertzheim, Fabian Meumertzheim, FaBrand, Felix Ehrenpfort, Finn Ball, frazze-jobb, Fredrik Medley, Garrett Holmstrom, Gautam Korlam, George Gensure, goodspark, Gowroji Sunil, Greg Estren, Grzegorz Lukasik, Grzegorz Lukasik, hvadehra, Ikko Ashimine, Jesse Chan, Joe Lencioni, Johannes Abt, John Laxson, Jonathan Schear, Juh-Roch, Justus Tumacder, Keith Smiley, kekxv, Kevin Hogeland, kshyanashree, Lauri Peltonen, Liu Liu, Lszl Csomor, m, Marc Zych, Mark Karpov, Masoud Koleini, Mathieu Olivari, Matt Mackay, Mauricio Galindo, Max Liu, Menny Even Danan, menny, Michael Chinen, Nathaniel Brough, Nick Korostelev, Niek Peeters, Nikolay Shelukhin, Niyas Sait, Noa Resare, odisseus, Oleh Stolyar, Olek Wojnar, Oliver Eikemeier, Olle Lundberg, Omar Zuniga, oquenchil, Paul Gschwendtner, Peter Kasting, Peter Mounce, Philipp Schrader, Pras Velagapudi, Qais Patankar, Rabi Shanker Guha, Rai, ron-stripe, Ryan Beasley, Ryan Beasley, samhowes, Samuel Giddins, Sebastian Olsson, Sergey Tyurin, Steve Siano, steve-the-bayesian, Stiopa Koltsov, susinmotion, tatiana, Tetsuo Kiso, Thaler Benedek, Thi Doan, Thi Doãn, Thi Don, Thomas Carmet, ThomasCJY, Timothe Peignier, Timothy Klim, Tobi, Torgil Svensson, Trustin Lee, Ulf Adams, Ulrik Falklof, Uri Baghin, Vaidas Pilkauskas, Vertexwahn, wisechengyi, Wren Turkal, Xavier Bonaventura, Xùdōng Yáng, Yannic Bonenberger, Yannic Bonenberger, Yannic, Yannic, Yury Evtikhov, Yuval Kaplan, Yuval K, Yuval, Zhongpeng Lin, \[zqzzq]. ### [`v5.3.1`](https://togithub.com/bazelbuild/bazel/blob/HEAD/CHANGELOG.md#Release-531-2022-09-19) [Compare Source](https://togithub.com/bazelbuild/bazel/compare/5.3.0...5.3.1) Baseline: 8d66a4171baddcbe1569972f019e54130111202c Cherry picks: + becd1494481b96d2bc08055d3d9d4d7968d9702e: Remote: Cache merkle trees + d7628e1b566be353fe7172241ac8f15d5f8e7ff5: Update DEFAULT_IOS_CPU for M1 arm64 simulator support + 80c56ff7b603fcfff02a5f97829a2a5935f360a0: Compile Apple tools as fat binaries if possible + 3c09f3438a966b49a7c1726022c898b390b3a6e5: Add protobuf as a well known module + 3a5b3606a6f5433467a5b49f0188c41411684bf5: Remote: Merge target-level exec_properties with --remote_default_exec_properties + 917e15ea408e1d3d25574edbb466b39cfbcb61fe: Add -no_uuid for hermetic macOS toolchain setup + f5cf8b076bc913dbe021104d5f6837fb4a6cd8b3: Remote: Fixes an issue when --experimental_remote_cache_async encounter flaky tests. + 77a002cce050e861fcc87c89acf7768aa5c97124: Remove DigestUtils.getDigestInExclusiveMode() now that SsdModule has … + 557a7e71eeb5396f2c87c909ddc025fde2678780: Fixes for the Starlark transition hash computation (#​14251) + 34c71465f84fa780217926db2e8e5ca3d6d4568c: Do location expansion in copts of objc_library + 50274a9f714616d4735a560db7f617e53fb8d01b: [5.x] Remote: Add support for compression on gRPC cache (#​14277) + 61bf2e5b5181cbe34a2f0d584053570943881804: Automated rollback of commit 34c71465f84fa780217926db2e8e5ca3d6d4568c. + 79888fe7369479c398bafe064daa19a7ae30f710: Silence a zstd-jni GCC warning. + 063b5c9c2c09b4794010b9a169b44890ffc79ec4: Remote: Limit max number of gRPC connections by --remote_max_connections. + fd727ec96d861573dcbad3249d727a94eff84789: Do location expansion in copts of objc_library + 23d096931be9b7247eafa750999dd7feadde14c1: Fix _is_shared_library_extension_valid + 5cf1d6e1f78bc860fcd0e2e86eff6fe43ab4a5a2: Remove merging of java_outputs in JavaPluginInfo. + cea5f4f499aa832cf90c68898671869ce79d63f2: Cherrypick Bzlmod documentation (#​14301) + 227e49e28e5122cddd6c4cb70686ff7bde3617ea: Format work requests according to ndjson spec + ae0a6c98d4f94abedbedb2d51c27de5febd7df67: Enable user_link_flags_feature for macosx cc_toolchain_config + 8c2c78cdc66cc9d5eb2cd59823c659892c1643a7: Remote: Use Action's salt field to differentiate cache across workspaces. + f94898915268be5670fb1e93a16c03e9b14d2a58: [5.x] Remote: Fix "file not found" error when remote cache is changed from enabled to disabled. (#​14321) + 3069ac4e33dcca6f3d1abf55940cdd764d03bdbf: Delete marker file before fetching an external repository + c05c6261cdb2cacb7c9881c255c0ada435ab5182: Remote: Fix file counting in merkletree.DirectoryTreeBuilder + d84f7998ef8f15e27376a0c8f25b320145c4ba9e: Fix remote spawn tests for remote_merkle_tree_cache=true + 59e16e944200555da377799aa0d9e8d0674d2e27: Show skipped tests as a warning + 76b3c242831f8e88835e3002a831a185a41fcc52: Build xcode-locator as a universal binary + aa52f2ddf9bab1ebd18e5431124061e813bfcd80: Exit collect_coverage.sh early if LCOV_MERGER is not set. + 4256d46327bad8638df91be1a5d4ef83b12b74c7: Automated rollback of commit d84f7998ef8f15e27376a0c8f25b320145c4ba9e. + dce24350befd08216b3910ae343670015444ff81: [apple] fix issues compiling C in objc_library for watchos/armv7k + bfc24139d93f8643686d91596ba347df2e01966a: 5.x: Remote: Ignore blobs referenced in BEP if the generating action cannot be cached remotely. (#​14389) + 5aef53a8884038f3c9f06e6dddb9372196253378: Remote: Don't blocking-get when acquiring gRPC connections. (#​14420) + 005361c895da334beb873901e93aff06d180256e: Disable IncludeValidation for ObjC in bazel + d703b7b4f09fb3c389f99e52bac1f23930280b56: Update java_tools v11.6 + 90965b072eb4a6dec8ff5b8abde3726732d37bdc: Stop remote blob upload if upload is complete. (#​14467) + dc59d9e8f7937f2e317c042e8da8f97ba6b1237e: [5.x] Make remote BES uploader better (#​14472) + 2edab739e1f61fe8813230b03396ca46f0790089: Avoid too verbose warnings in terminal when cache issues + 1160485192b5e6d95bcd426b55cc9a35fc6b8614: Rename --project_id to --bes_instance_name + c63d9ecbe5fcb5716a0be21d8fc781d7aa5bbc30: Automated rollback of commit bfdfa6ebfd21b388f1c91f512291c848e1a92a96. + b341802700484d11c775bf02d80f43ba3f33b218: [apple] support watchos_arm64 in toolchain + 43bcf80a3dfdc5ac89c1e4d615d6f29a495855fb: Disable implicitly collecting baseline coverage for toolchain targets. + 302971e1b3d803069ac949c0085c0d2a3916c8ab: Automated rollback of commit 7d09b4a15985052670244c277e4357557b4d0039. + 62002024ca7012ffe0f4fc74ac20b5471513c8c8: Bzlmod: Starlarkify default attr values for TypeCheckedTags + 38117d491cbc4a5686e0bdb1e58f8946d96aed58: Fix build after rc4 cherrypicks (#​14581) + 41feb616ae18e21fdba3868e4c298b0b83012f10: Release 5.0.0 (2022-01-19) + 486d153d1981c3f47129f675de20189667667fa7: Find runfiles in directories that are themselves runfiles + 0de7bb95022057e8b89334f44759cf6f950e131f: Don't resolve symlinks for --sandbox_base + 8b60c90f3641591b65c4e153113aea562f1fab94: Remove uses of -lstdc++ on darwin + 60f757c0831f9fbb2415fb0105f964201faa9fa0: Allow Label instances as keys in select (#​14755) + 3836ad029f202ca13c64c9f07e4568ea8ab2d9a6: Remote: Only waits for background tasks from remote execution. + 8734ccf9847eafb7193388cd9c6fa78faa78283f: Add the default solib dir to the rpath for cc_imports with transitions + 9e16a6484e94c358aa77a6ed7b1ded3243b65e8f: Flip --experimental_worker_allow_json_protocol + fce7ea8d5e0facfc125ae7c37bfb4b9a7c586e40: Fix `ctx.fragments.apple.single_arch_cpu` returning incorrect cpu for tools when host cpu and exec cpu are different + 0c1d09e4dce4c3251c2be2c70d4575ec65b1d9d3: Propagate --experimental_cc_implementation_deps to host config + 1c3a2456c95fd19974a5b2bd33c5ebdb2b2277e4: Support select() on constraint_value for aliases. + 67a133b431ccece22b7dd9a72f0837cff77d4360: Improve documentation for select() + 5356fedd4b6079851b51db27077bf84c7bab16a4: Cherrypicks for experimental cc_shared_library (#​14773) + ffdd633d7b9f21267f4f9759dd9833096dd4e3a2: [apple] support tvos_sim_arm64 in toolchain (#​14779) + a58ddea50b2fd476d183e2e0c077ad6173039b89: Cherry pick win arm64 (#​14794) + dc41a20bb045d221a43223a5db6b8b44cd8f1676: [5.1.0] cherrypick subpackages support (#​14780) + 86e2db7d67ec52bfe11c1f517f650653cee3ea26: Add a helper method for rules to depend on the cpp toolchain type. + 6990c02644a71d5e7c95c9c234ecf39bb55c6ac4: UrlRewriter should be able to load credentials from .netrc (#​14834) + 32d1606dac2fea730abe174c41870b7ee70ae041: Add "arch" struct field to repository_os + 2cfdceae971d09f50ceddc3d7ef723fb5f879957: [5.x] bzlmod: Add support for WORKSPACE.bzlmod (#​14813) + c2ddbd1954af5baab63b93f2b055a410a27832c8: Ignore missing include directory in JDK distribution. + 16de03595e21f7bf31818e717505b23c953b3b7d: Fix bazel coverage false negative + 0c74741742301abcf67452a7f591daec1c3a7635: Remote: Postpone the block waiting in `afterCommand` to `BlockWaitingModule` (#​14833) + 3297d9234e15515aa91cc887b3b12db7e1040b02: Switch to `ProcessHandle` for getting the PID (#​14842) + a987b98ea0d6da2656c4115568ef9cbe8a164550: Fix uses of std++ on bsd + d184e4883bb7fc21de2f7aeea4304994de27e9ea: Remote: handle early return of compressed blobs uploads + 0b09e9e018c557da04c9f978d25a66d963cd6cb6: Add removeprefix/removesuffix to Starlark strings + d42ab0cfcce56b5e55c8bd94d0923d08758fdb5b: Fix default CPU for macOS and iOS (#​14923) + cd24f39750d7b08f6f31c82d3a23cc329c7fc78e: Add paramfile support for def_parser, since in rare cases on Windows command line character limit was reached. + 0b1beefd1e7611dc9b9f559d00d8ff76aabb0f32: Normalize rpath entries to guard against missing default solib dir + 24e82426e689853b0d9a04e7b9b6f13e145cf2d6: Fix aggressive params file assumption + c45838bd3e51bcd0c8c3e1a9b4a0e55cdf4b4f59: Fix precompiled libs not in runfiles of cc_shared_library (#​14943) + 764614e0f0287125269e7a92e909a44624bcb360: Bzlmod: Allow multiple `use_extension`s on the same extension (#​14945) + fa761f84994f18db383fbe9aaea524e4385da13a: Fix typo in `apple_common.platform` docs + f7d8288bd7b16c7f2e010aa8ddc241cf2ba8e0d5: Yield a Proxy for addresses without protocol + 8cefb8bed4ac82df8640682517372a9249732352: Avoid merging URLs in HttpUtils + b4804807fc2c184cc36df9e69e472942c01941b8: Make protocOpts() public. (#​14952) + 113eaca5862c48797654ae2a3acbb6e15d761485: Do not hide BulkTransferException messages when there were more than one exception + b1bf9d6c5f85fc4fda0dc48bc3d3e2fe26880867: merkle_tree_cache: change default size to 1000 + f15e0c7224ecc5473d4972afc436e28df35c4e5a: Add --experimental_repository_cache_urls_as_default_canonical_id to help detect broken repository URLs (#​14989) + f4214746fcd15f0ef8c4e747ef8e3edca9f112a5: Expose the logic to read user netrc file + b858ec39aebd7e586af5438aa2035db2adebf9a4: Correct cpu and os values of `local_config_cc_toolchains` targets + 5e79972c05d89280f0cf1fa620f807366847bac6: Expose CoverageOutputGenerator on a Fragment (#​14997) + 78f03110e0dab42f37e427fd524e72706e036d74: Correct error runfiles cc_shared_library (#​14998) + 7937dd14c3c632ffcfaea9073d5dec6dcac93845: [5.1] Adding Starlark dependencies to the package //external (#​14991) + a73aa12be65454ac8cfb5a8f3e056c420402f997: Remote: Fix crashes with InterruptedException when using http cache. + f8707c07f153ac4ac2ec4b210321f1a16343006d: Account for interface libraries in cc_shared_library + a570f5fdb1618a6c272d18bebaa712d3b2af3975: Fix coverage runfiles directory issue + 95de355e4524a6339c0e807b60d333c36c40bdc7: Do not validate input-only settings in transitions (#​15048) + 71747ccc9d0032a865854613329362563c0574df: Filter out system headers on macOS. + cb6500a9ce648a02154dca8d05a978ce9b10c4b4: Update Bazel bootstrap documentation and remove obsolete flags. (#​15065) + 4c031d1030afb1cb48c7e6d71f83cc99fea607c1: [5.1] Undocument --bes_best_effort (#​15066) + 267142f3dc6b8d32b07beb21e3b4ba6f471a69d8: Fix conflicting actions error when specifying --host_macos_minimum_os (#​15068) + f1923627e85b1c1d60bcd928f90f116c3ade7a3a: [5.1] Remote: Action should not be successful and cached if outputs were not created (#​15071) + 00d74ff737cccd60305ee58d85313556a077152a: Support decompressing zstd tar archives for repository rules. + f5857830bb68bd05ffc257506575ed37a8128933: Remote: Don't check TreeArtifact output + efb2b80953983dce499d453a9f55a74ffaf8c42d: osx_cc_wrapper: Only expand existing response files + c771c43b870fb8618db7bdab6725ab40cac4976d: Remote: Fix crashes by InterruptedException when dynamic execution is enabled. (#​15091) + 3785677cc84fc4024fda85575c05efbde5d512fc: Use python3 on macOS + 815d9e499a32fd4d87525ac0c698c293cf26433d: Release 5.1.0 (2022-03-24) + 1fbb69e366034484887e00c6006c7b79508765ed: Prepare 5.1.1 release + df153df9656e0e197f67622bb11f7d77e19238a0: Fix CODEOWNERS syntax + 2b92a3111e83a4d14934059afd0f51161a41276f: Remote: Don't check declared outputs for failed action + b47aa71b21d93c9499103e9a37a6c2ffa79865b9: Upgrade abseil version to the latest + c49c45d8dac87d21cf2b6a176ddd07f2c9f63414: Revert default export all symbols on Windows + 7d3fb993f55b35081786c3fe00cf3bebb89574f3: Support ZIP files with total number of disks = 0 + 0f5dc111be06b2ee8694640f400b58e12bfa5fea: Release 5.1.1 (2022-04-08) + 2422cfb3e5d92d46f9065b2b1e442823a965faf7: Update CODEOWNERS + bbcff1802423fca7ee5bd6a3e527c12d6d7d80ba: [5.2.0] Update java_tools 11.7.1 (#​15231) + 9c98120f33579b72561e02826d9fccf222eccb3c: Add support for .ar archives (and .deb files) + d3435b09d89f25bf5008ef3b9c870c835d51a8da: Seperate GetSelfPath implementation for Blaze and Bazel + c94572bea5ce6bdc0ccda9789e5be6fb3f4c173b: Include jdk.crypto.mscapi in minimized Windows embedded JDK + 299022ca2dc49b6cb27b2674f933755306ae8b9b: remote: Proactively close the ZstdInputStream in ZstdDecompressingOutputStream. + 27707995cc6576ed1f51fbdb199ff8512e8418c9: Collect coverage from cc_binary data deps of java_test + 3442179d240e01ef13b0fa7814db7366bad5ffac: Configure Apple crosstool to return a complete target triple that includes minimum OS version and target environment + bb6f1a7ce79168055ccd62629da07d46a52b930d: Collect C++ lcov coverage if runtime object not in runfiles + dbb6e9954b6e4423f727feb2719ffc75a93b514b: Fixing dependencies of //external package + f0213bbf730c4a5d1a31e65bc9c01fbb55a6edb3: [5.2] Upgrade Google Auth Version (#​15383) + a1a74c9919e03e09ef7c6ae13f38f48eea80ead1: Fix chocolatey package - docsUrl must not 404 (#​15395) + fe644bee95c14d461e0d1e3cccaa8bbcd57bcd8d: Fix cache leak when applying transitions when only a rule's attributes change. + ad74d5243917bb27a37e38d151a4a3c8a49947eb: Fix checking remote cache for omitted files in buildevent file (#​15405) + ac219103d8798965b775db548d7b9214ecd78f73: fix(bzlmod): throw on json parse exception + 3d85b88609a362857d8ee3c0432a37d30268a8a2: Add a flag to expose undeclared test outputs in unzipped form. (#​15431) + abd7a9f70c3dfe96724a692dc7dc04ff33bdece1: Remove -U_FORTIFY_SOURCE when thin_lto is enabled (#​15433) + 53b9cb8637c0faddc6b122a1daab72bcc274bdec: Catch NumberFormatException while trying to parse thread id. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/cgrindel/github_snippets). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xNC4wIiwidXBkYXRlZEluVmVyIjoiMzQuMTcuMSJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…bazelrc to prevent regression Imported from GitHub PR tensorflow/tensorflow#58832 Related: bazelbuild/bazel#12932 and bazelbuild/bazel#12933 Copybara import of the project: -- b4edfd47bd9a0c0363a9feb1eb1b48d067e4644e by Yun Peng <[email protected]>: Flip two incompatible flags in .bazelrc to prevent regression -- c33c0dd6e5744393fe2b1909efc91dc19bd6dda1 by Yun Peng <[email protected]>: Add visibility to more targets -- 34d1bfe1564f0905993c26a891f2385b83480e3d by Yun Peng <[email protected]>: --incompatible_config_setting_private_default_visibility cannot be flipped yet Merging this change closes #58832 PiperOrigin-RevId: 494895621
…bazelrc to prevent regression Imported from GitHub PR tensorflow/tensorflow#58832 Related: bazelbuild/bazel#12932 and bazelbuild/bazel#12933 Copybara import of the project: -- b4edfd47bd9a0c0363a9feb1eb1b48d067e4644e by Yun Peng <[email protected]>: Flip two incompatible flags in .bazelrc to prevent regression -- c33c0dd6e5744393fe2b1909efc91dc19bd6dda1 by Yun Peng <[email protected]>: Add visibility to more targets -- 34d1bfe1564f0905993c26a891f2385b83480e3d by Yun Peng <[email protected]>: --incompatible_config_setting_private_default_visibility cannot be flipped yet Merging this change closes #58832 PiperOrigin-RevId: 494895621
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: 0a47a1f Incompatible changes: - Removing java_common.javac_jar Starlark call. - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change because there is some code that relies on the precise type returned, including brittle workarounds for this bug specifically and insufficiently flexible workarounds for other issues with the intersection of select and native.existing_rule. - flipped incompatible_use_toolchain_resolution_for_java_rules, see #7849 - Query output=xml/proto/location for source files will now show the location of line 1 of the source file (as the new default) instead of its location in the BUILD file. - Specifying a target pattern underneath a directory specified by .bazelignore will now emit a warning, not an error. - Query `--order_output=auto` will now sort lexicographically. However, when `somepath` is used as a top level function (e.g. `query 'somepath(a, b)'`), it will continue to output in dependency order. If you do not want the lexicographical output ordering, specify another `--order_output` value (`no`, `deps` or `full`) based on what ordering you require. - In the build event stream, BuildMetrics.TargetMetrics.targets_loaded is no longer populated. Its value was always mostly meaningless. BuildMetrics.TargetMetrics.targets_configured and BuildMetrics.ActionSummary.actions_created now include configured aspect data. - //visibility:legacy_public has been removed. - Flip and remove incompatible_dont_collect_so_artifacts (#13043). - Remove flag --experimental_no_product_name_out_symlink: it is always true. - The Starlark method generate_dsym in objc fragment has been deleted. Please use the equivalent apple_generate_dsym in cpp fragment instead. - Native libraries in data attribute are not collected. See #13550 for details - Enforce the `--profile` path to be absolute. - Enforce the --memory_profile path to be absolute. - JavaToolchainInfo.jvm_opt returns Depset instead of a list. - --apple_sdk has been deleted. It is a no-op. - --bep_publish_used_heap_size_post_build is now a no-op and will be deleted in a future release. Use --memory_profile=/dev/null instead. - Flipped --incompatible_disallow_resource_jars (see #13221). - Remove --bep_publish_used_heap_size_post_build - JSON trace profile: rename counter names. - Removed --action_graph from the dump command. - Remove `--{experimental_,}json_trace_compression` option. - Remove `--experimental_profile_cpu_usage`. - flipped --incompatible_java_common_parameters (see #12373) - this incompatible change breaks old instances of http_archive that specified netrc as an absolute path. It is unlikely there are many instances in the wild since the path would refer to a netrc file inside the external repository by absolute path. Migration should be straightforward. - genrule switched to use exec transition instead of host. This can break targets with hardcoded output paths. To avoid using hardcoded paths use make variables, see https://docs.bazel.build/versions/4.2.2/be/make-variables.html#pre defined_label_variables - this incompatible change breaks old instances of http_archive that specified netrc as an absolute path. It is unlikely there are many instances in the wild since... - Error Prone now checks for unused return values of additional methods on `java.lang.Object`, which can be disabled using `--javacopts=-Xep:ReturnValueIgnored:OFF` - Error Prone now checks for unused return values of additional methods on `java.lang.Object`, which can be disabled using `--javacopts=-Xep:ReturnValueIgnored:OFF` - The --incompatible_existing_rules_immutable_view flag has been flipped to true. See #13907 for migration notes. - Split up the C++ archive from the C++ link action and set `CppArchive` as mnemonic. - workspace(managed_directories=) is not available anymore. - --legacy_important_outputs now has a default of false. - --legacy_important_outputs default reverted to true. - objc_library now requires CcInfo in its deps. If this breaks you, add empty CcInfo() to your rule. - Flag --experimental_local_memory_estimate removed. - Added a new flag --incompatible_unambiguous_label_stringification, which causes labels in the main repo to stringify into unambiguous forms starting with an @. See #15916 for more information. - analysis_test moved into testing.analysis_test - Flip incompatible_enable_cc_toolchain_resolution (#7260) - (Rollback) Flip incompatible_enable_cc_toolchain_resolution (#7260) - name parameter is removed from rule call (#16301) - name parameter is removed from rule call (#16301) - name parameter is removed from rule call (#16301) - --incompatible_remote_downloader_send_all_headers is flipped to true. See #16356 for details. - GrpcRemoteDownloader only includes relevant headers instead of sending all credentials. - In package_group's `packages` attribute, the syntax "//..." now refers to all packages in the same repository as the package group, rather than all packages everywhere. The new item "public" can be used instead to obtain the old behavior. In `bazel query --output=proto` (and `--output=xml`), the `packages` attribute now serializes with the leading double slash included (for instance, `//foo/bar/...` instead of `foo/bar/...`). See also #16355, #16323, and #16391. - This has the side effect of changing the message on unsuccessful builds from ``` FAILED: Build did NOT complete successfully (0 packages loaded) ``` to ``` ERROR: Build did NOT complete successfully ``` - Bazel no longer increases the delay between progress updates when there is no cursor control. - This has the side effect of changing the message on unsuccessful builds from ``` FAILED: Build did NOT complete successfully (0 packages loaded) ``` to ``` ERROR: Build did NOT complete successfully ``` - the --experimental_async_execution flag is now a no-op. - --experimental_replay_action_out_err is not a no-op. - `cquery --output=files` also outputs source files. - `--incompatible_strict_conflict_checks` is flipped to true. See #16729 for details. - `--incompatible_strict_conflict_checks` is flipped to true. See #16729 for details. - `--incompatible_always_include_files_in_data` is flipped to true. See #16654 for details. - This changes the behavior of Python version in exec/host configuration. Mitigation is to set Python version on the targets. - When multiple --deleted_packages options are passed on the command line, they will be concatenated instead of the latest one taking effect. - This has the side effect of changing the message on unsuccessful builds from - JSON profile: Use doubles instead of strings for counter series. - query --output=proto --order_output=deps now returns targets in topological order (previously there was no ordering). - --experimental_build_transitive_python_runfiles is flipped to false. See #16303 for details - --incompatible_python_disable_py2 is flipped to true. See #17293 for details. - When remote cache evicts blobs, Bazel will exit with code 39. - `--features` only applies to targets built in the target configuration, and `--host_features` is used for the host / exec configuration (gated behind `--incompatible_use_host_features`) - `--incompatible_strict_conflict_checks` is flipped to true. See #16729 for details. - Bazel's local CPU resource on Linux is now container aware. Use `--local_cpu_resources`, `--loading_phase_threads` or `--jobs` to override. - `copy_from_rule` is exec_groups is deprecated (#17668). - --legacy_bazel_java_test is now a no-op - --legacy_bazel_java_test is now a no-op - --legacy_bazel_java_test is now a no-op - `--experimental_execution_graph_log` no longer exists. Current users that want local logs need to pass `--experimental_enable_execution_graph_log --experimental_execution_graph_log_path=/some/local/path`. Current users that want logs uploaded to BEP need to pass `--experimental_enable_execution_graph_log --experimental_stream_log_file_uploads`. - Remove 'darwin' as a CPU value, use 'darwin_x86_64' instead - Remove high priority workers functionality from blaze. New features: - Args.add_all and Args.add_joined can now accept closures in map_each if explicitly enabled via allow_closure. - Add `--bes_header` flag to pass extra headers to the BES server. - Support local_repository in Bazel Registry's source.json file - The `aquery` and `cquery` commands now respect the `--query_file` flag just like the `query` command. Important changes: - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - Flag --incompatible_objc_compile_info_migration is removed. See #10854. - none PAIR=cmita - The --incompatible_load_python_rules_from_bzl flag is now a no-op. - Filter all (instead of just C++) source files for coverage output according to --instrumentation_filter and --instrument_test_targets. - The `--incompatible_disable_native_apple_binary_rule` flag has been added which disables the native `apple_binary` rule. Users who need to use `apple_binary` directly (if they cannot use one of the more specific Apple rules) should load it from https://github.com/bazelbuild/rules_apple. - The Android rules' --use_singlejar_apkbuilder is now a no-op. SingleJar will always be used to build APKs. - dict.setdefault(key, ...) now fails if dict is frozen, even if it already contains key. This is an incompatible API change. - Flag --incompatible_objc_provider_remove_compile_info is removed. See #11359. - Starlark now permits def statements to be nested (closures). - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change, though the fallout is expected to be small. - Starlark now supports lambda (anonymous function) expressions. - The "test" and "coverage" commands no longer return 3 when a test action fails because of a system error. Instead, the exit code reflects the type of system error. - The undocumented ctx.expand feature no longer exists. - Make --legacy_dynamic_scheduler a no-op flag. - Multiplex persistent workers can now use the JSON protocol. - native.existing_rule now returns a mutable list, not a tuple, for a list-valued attributes. This is an incompatible API change. - Roll back change to have native.existing_rules use list instead of tuple. - BEP includes test suite expansions. - config_setting now honors `visibility` attribute (and defaults to `//visibility:public`) - Change the MultiArchSplitTransitionProvider to be based on platform type + CPU instead of fixed "ios_" + cpu. - enforce config_setting visibility. See #12932 for details. - add a flag to build v4 signature file - Added _direct_source_jars output group to Java related targets. END_PUBLIC - pkg_deb is no longer part of @bazel_tools//build_defs/pkg:pkg.bzl. Use https://github.com/bazelbuild/rules_pkg/tree/main/pkg instead - Allowing the lipo operations to be conditional in the linkMultiArchBinary API for Apple binaries. Single architecture slices are now returned through AppleBinaryOutput and the Starlark API. - Release restriction for "-" in the package name for Python sources. Now `py_binary` and `py_test` targets can have main source file with "-" in the path. - Users consuming BEP may assume that a `named_set_of_files` event will appear before any event referencing that `named_set` by ID. This allows consumers to process the files for such events (eg. `TargetCompleted`) immediately. - BEP includes all files from successful actions in requested output groups. Previously, an output group's files were excluded if any file in the output group was not produced due to a failing action. Users can expect BEP output to be larger for failed builds. - In BEP, TargetComplete.output_group has a new field `incomplete` indicating that the file_sets field is missing one or more declared artifacts whose generating actions failed. - The flag `--toolchain_resolution_debug` now takes a regex argument, which is used to check which toolchain types should have debug info printed. You may use `.*` as an argument to keep the current behavior of debugging every toolchain type. - Add runfiles.merge_all() for merging a sequence of runfiles objects. - runfiles.merge() and merge_all() now respect --nested_set_depth_limit. If you hit the depth limit because you were calling merge() in a loop, use merge_all() on a sequence of runfiles objects instead. - Bazel will no longer create a bazel-out symlink if --symlink_prefix is specified: the directory pointed to via the bazel-out symlink is accessible via ${symlink_prefix}-out. If this causes problems for you, set --experimental_no_product_name_out_symlink=false in your builds and file an issue. - Updates worker protocol with cancellation fields, and adds experimental_worker_cancellation flag to control cancellation. - Simplify build failure output by always using `NNN arguments`. - trim_test_configuration now defaults to on - Mark genrule.srcs as a source attribute for coverage. - When using --allow_analysis_failures (for example, via bazel-skylib's analysistest with `expect_failure = True`), analysis-time failures in aspect implementation functions will now be propagated and saved in AnalysisFailureInfo, just like analysis-time failures in rules. - cquery --noimplicit_deps now correctly filters out resolved cc_toolchains - Sign apks deterministically. - Make gcov optional in cc_toolchain tools. - If --experimental_prefer_mutual_xcode is passed, Bazel will choose the local default (instead of the newest mutually available version) if it's available both locally and remotely. - Remove java_lite_proto_library.strict_deps attribute. - Generate proguard configurations deterministically. - Adds a new flag, `--incompatible_enable_cc_test_feature` which switches from the use of build variables to the feature of the same name. - Dropped fragile xz support from built in pkg_tar. Users requiring xz compression should switch to bazlebuild/rules_pkg. - 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) - Add `disable_annotation_processing` option to `java_common.compile`, which disables any annotation processors passed to `plugins` or in `exported_plugins` of `deps` - Remove obsolete --incompatible_prohibit_aapt1 - The minimum Android build tools version for the Android rules is now 30.0.0 - Adds --experimental_reuse_sandbox_directories flag to reuse already-created non-worker sandboxes with cleanup. - --experimental_force_gc_after_build is deprecated and will be removed soon. Use --bep_publish_used_heap_size_post_build instead - Forward coverage-instrumented files from non-tool dependencies by default. - The used_heap_size_post_build field in BEP is populated when the --memory_profile flag is set - --run_validations defaults to true. - Consider label_keyed_string_dict attributes when gathering instrumented files for coverage. - Remove flag --experimental_forward_instrumented_files_info_by_default, now that this behavior is the default. - When using MemoryProfiler with multiple GCs via the --memory_profile_stable_heap_parameters flag, we do a more precise calculation of heap used at the end of the build. This will generally result in lower values. - --bep_publish_used_heap_size_post_build is deprecated. Use --memory_profile=/dev/null instead. - Disable --all_incompatible_changes flag. - The --all_incompatible_changes flag is now a no-op - The `--toolchain_resolution_debug` flag now accepts regexes matching targets, as well as toolchain types, when choosing what debug messages to print. - Adds --experimental_existing_rules_immutable_view flag to make the native.existing_rule and native.existing_rules functions more efficient by returning immutable, lightweight dict-like view objects instead of mutable dicts. - Add support to length-delimited protos as undeclared output annotations [] - The deprecated "relative_to_caller_repository" parameter has been removed from the Label constructor. - The toolchain transition is now enabled for all toolchains. - incompatible_disable_depset_items is flipped - The --experimental_existing_rules_immutable_view flag has been renamed to --incompatible_existing_rules_immutable_view - Bazel no longer supports Java 8. From this version on, the minimum required JDK is OpenJDK 11. - Deprecate --incompatible_applicable_licenses flag, in preparation for removal in Bazel 6.x. - Treat py_*.srcs_version="PY2" the same as "PY2ONLY". - The Build Event Protocol now contains file digests and sizes along with the file name and URI. - Refactor system suspend event handling. - alias() can now select() directly on constraint_value() - Allow \a \b \f \v escape sequences in Starlark. - Match remote and local xcode version by most granular version. - Adds `--experimental_worker_multiplex_sandboxing` flag that controls whether to sandbox multiplex workers that support it. - provider() has a new parameter: init, a callback for performing pre-processing and validation of field values. Iff this parameter is set, provider() returns a tuple of 2 elements: the usual provider symbol (which, when called, invokes init) and a raw constructor (which bypasses init). - Tests that fail to create or complete their `TestAttemptContinuation` by throwing an `ExecException` will report an `INCOMPLETE` status. Previously, Bazel would fail to report any status for the test attempt. - Fixed an issue where Bazel could erroneously report a test passes in coverage mode without actually running the test. - Include more information about configurations in cquery proto formatted output. This deprecates the configuration field of AnalysisProtosV2.ConfiguredTarget, and adds a new field, configuration_id, to be used instead. - experimental cc_library.implementation_deps inverted to interface_deps - In aquery and cquery proto output, indicate if a configuration is a tool or non-tool configuration. - Include complete configurations in cquery proto output. - experimental cc_library.implementation_deps inverted to interface_deps - Make protocOpts() publicly accessible. - Add some documentation about how configuration information is conveyed in cquery proto output. - Introduces experimental static library linking API under apple_common.link_multi_arch_static_library - Further deprecation and removal of pkg_tar. Stop supporting legacy use of 'files' attribute, where it could be a list of labels instead of a map of paths to labels. - Removed --incompatible_no_build_defs_pkg flag. It never fulfilled its purpose because --all_incompatible_changes would never set it. The last rule it gated (pkg_tar) is scheduled to be removed in Bazel 6.x. - Add coverage configuration fragment, used to expose output_generator label. - Bazel now no longer includes system headers on macOS in coverage reports (#14969). - android_sdk_repository read $ANDROID_SDK_ROOT in addition to $ANDROID_HOME. - The default dexer is now d8. dx can be optionally enabled using: --define=android_dexmerger_tool=dx_dexmerger \ --define=android_incremental_dexing_tool=dx_dexbuilder \ --define=android_standalone_dexing_tool=dx_compat_dx \ --use_workers_with_dexbuilder - Packaging support for deploy JAR embedded JDK files (hermetic Java). - Don't stamp cc_common.link actions for tool dependencies. - Starlark test rules can use the new inherited_environment parameter of testing.TestEnvironment to specify environment variables whose values should be inherited from the shell environment. - Enable merging permissions during Android manifest merging with the --merge_android_manifest_permissions flag. - Allow specialization to work with constraint_values. - Bazel uses the D8 jar from Maven instead of the SDK. - Make ijar / java_import preserve classes with `@kotlin.Metadata` annotations - Switch cc_test implementation to Starlark. Note: cc_test will now link statically when _targeting_ Windows regardless of host platform (rather than always linking statically when Windows is the _host_). - Switch cc_test implementation to Starlark. Note: cc_test will now link statically when _targeting_ Windows regardless of host platform (rather than always linking statically when Windows is the _host_). - Add devtools/build/lib/worker:work_request_handlers to the remote android tools release package. This will be transitively packaged into all_android_tools. - Bazel uses the D8 jar from Maven instead of the SDK. - android_sdk_repository read $ANDROID_SDK_ROOT in addition to $ANDROID_HOME. - Advance android_tools_pkg version to 0.24.0. - Switch cc_test implementation to Starlark. Note: cc_test will now link statically when _targeting_ Windows regardless of host platform (rather than always linking statically when Windows is the _host_). - Bazel uses the D8 jar from Maven instead of the SDK. - "blaze config" now only reports info from the last build. To compare configurations across multiple builds, redirect "blaze config" output to a file and run your favorite diff tool. - The --incompatible_override_toolchain_transition flag is now always set, and will be removed in the future. Thus, --noincompatible_override_toolchain_transition has no effect, and the value of the incompatible_use_toolchain_transition parameter in aspect() and rule() builtins is ignored. - Switch cc_test implementation to Starlark. Note: cc_test will now link statically when _targeting_ Windows regardless of host platform (rather than always linking statically when Windows is the _host_). - Toolchain types may now be optional, in addition to mandatory. See https://bazel.build/docs/toolchains#optional-toolchains for further details. - Add six to deps of has_services=1 py_proto_librarys. - pkg_tar(symlinks) has been removed. Users needing that feature should migrate to @rules_pkg. - Aspects can now define and use exec groups using the same API as rules. - Removed the obsolete --incompatible_applicable_licenses flag. The feature is permanently enabled. - embedded_tools packages R8 desugarer again - Bazel now selects sh path based on execution platform instead of host platform, making it possible to execute sh actions in multiplatform builds. --shell_executable now only applies to actions configured for host. - labels in genquery.scope are no longer configured. - When Bzlmod is enabled, all Bzlmod-generated repos will have an extra '@' prepended to their names. This effectively enables the canonical label literal syntax for Bzlmod-generated repos (`@@canonicalRepoName//pkg:target`; see https://docs.google.com/document/d/1N81qfCa8oskCk5LqTW-LNthy6EBrDo t7bdUsjz6JFC4/edit?usp=sharing). - Exposed `CcSharedLibraryInfo` to Starlark builtins. - Enable --use_top_level_targets_for_symlinks by default. - Singlejar accepts runtime Created-By field - --noincompatible_disable_managed_directories, and with that, workspace(managed_directories=) is not supported anymore. - Bazel supports D8 desugaring, albeit without persistent workers - Remove mtime options from pkg_tar. Users should migrate to @rules_pkg. - Test for experimental multiplexed persistent resource processor. - Added new register_{execution_platforms,toolchains} directives to the MODULE.bazel file, to replace the {execution_platforms,toolchains}_to_register attributes on the module() directive. - The legacy pkg_tar no longer supports the ability to untar and repackage an input tar file (`deps` attribute). Users needed that capability must switch to github.com/bazelbuild/rules_pkg. - `cquery`'s new output mode [`--output=files`](https://bazel.build/docs/cquery#files-output) lists the output files of the targets matching the query. It takes the current value of `--output_groups` into account. - Change singlejar metadata to report Created-By Bazel - Add support for fetching RPC credentials from credential helper. - Revert interface_deps back to implementation_deps after problem reported in. Use `buildozer 'rename deps implementation_deps' //...:%cc_library; buildozer 'rename interface_deps deps' //...:%cc_library` - Fix for desugaring failure on Bazel+Android+Windows build scenario. - D8 is the default desugarer - Migrate main_dex_list_creator to D8 (DX deprecation) - --experimental_enable_bzlmod has been renamed --enable_bzlmod, and still defaults to false. - selects() no longer produce irrelevant duplicate label checks - Adds a dexer output cache to CompatDexBuilder to improve build speed. - Improved error messages when analyzing inline bzl code - Improved error messages when analyzing inline bzl code - The `@bazel_tools//tools/cpp:compiler` flag now has the value `gcc` if the configured compiler is detected to be gcc rather than the generic value `compiler`. A branch for `gcc` may have to be added to `select` statements that do not have a default case that handles gcc appropriately. - The `get_child` method of `path` now accepts an arbitrary number of relative path strings as positional arguments. - SourceManifestAction supports `Action.content` - Add --incompatible_build_transitive_python_runfiles alias. See #16303 - The @bazel_tools//tools/cpp:compiler flag now has the value `clang` for the auto-configured Xcode toolchain rather than the generic value compiler. A branch for `clang` may have to be added to select statements that do not have a default case that handles this toolchain appropriately. - added additional debug message to warn of skipped toolchains during resolution - The deprecated --remote_allow_symlink_upload flag has been removed. Symlinks in local action outputs are always permitted, even with remote caching. Whether they're uploaded as symlinks or as the files/directories they point to is still determined by the --incompatible_remote_symlinks flag. - Added `struct`, `json`, `proto`, and `depset` to the starlark environment of Bazel's cquery (--output=starlark) command - Added three `package_group`-related flags: `--incompatible_package_group_includes_double_slash` (#16391), `--incompatible_package_group_has_public_syntax` (#16355), and `--incompatible_fix_package_group_reporoot_syntax` (#16323). With these flags, `package_group` can now easily specify "all packages", "no packages", and "all packages in the current repo". - Record hermetic packaged JDK modules file size in deploy JAR manifest 'JDK-Lib-Modules-Size' attribute. - .bzl files may now set a visibility to guard what other .bzl and BUILD files may load them. See [...] for more information. - Deletes the --extra_proguard_specs Blaze flag - The new path variable `$(rlocationpath ...)` and its plural form `$(rlocationpaths ...)` can be used to expand labels to the paths accepted by the `Rlocation` function of runfiles libraries. This is the preferred way to access data dependencies at runtime and works on all platforms, even when runfiles are not enabled (e.g., on Windows by default). - Starlark `print()` statements are now emitted iff the line of code is executed. They are no longer replayed on subsequent invocations unless the Starlark code is re-executed. Additionally, multiple identical `print()` statements (same string from the same line of code, e.g. from a loop) are all emitted and no longer deduplicated. - Fixes a bug where some compilation flags would not be applied to a cc_test - removed outdated ctx.host_fragments - removed outdated ctx.host_configuration - Now that the host configuration is finished, `genrule` should prefer the use of `tools` and stop using `exec_tools`. - Added a `native.package_relative_label()` function, which converts a label string to a Label object in the context of the calling package, in contrast to `Label()`, which does so in the context of the current .bzl file. Both functions now also accept relative labels such as `:foo`, and are idempotent. - Update Android manifest merger to v30.1.3, and also drop support for legacy (pre-D8) desugaring. - Adds coverage metric support to android_local_test - Correctly encode double value positive infinity as "inf" instead of "+inf" for textprotos. - Add --use_target_platform_for_tests which uses the target platform for executing tests instead of the execution platform. - Custom C++ rules on Windows calling cc_common.create_linking_context_from_compilation_outputs should review whether each target of the rule type should produce a dynamic library since a condition which blocked their creation has been moved to the rules from behind the API. - Add flag `--experimental_remote_cache_ttl` and set the default value to 3 hours. - making --incompatible_use_platforms_repo_for_constraints do nothing. Using constraints from @bazel_tools//platforms with or without the flag will throw error with message "Constraints from @bazel_tools//platforms have been removed. Please use constraints from @platforms repository embedded in Bazel, or preferably declare dependency on https://github.com/bazelbuild/platforms" - Fixed an issue where WORKSPACE and WORKSPACE-loaded .bzl files couldn't see the Bzlmod root module's mappings when Bzlmod is enabled. - Subsequent settings of --extra_execution_platforms now override previous settings, instead of adding them to a list. If you currently set --extra_execution_platforms more than once, please migrate by passing a list of values to --extra_execution_platforms instead so that earlier values aren't overwritten. - @bazel_tools//config:common_settings.bzl has been removed. Use @bazel_skylib//rules:common_settings.bzl instead. - cc_shared_library is no longer experimental, see #16709 for details - The flag `--distinct_host_configuration` is removed. It has been a no-op since Bazel 6.0.0. - Added `native.module_name()` and `native.module_version()` to allow BUILD macro authors to acquire information about which Bazel module the current repo is associated with. - Add `--skip_incompatible_explicit_targets` option - Remove 'darwin' as a CPU value, use 'darwin_x86_64' instead - cc_test can now be configured by using a native.toolchain(). - `@foo` labels can now be used on the command line as the top-level target (that is, `bazel build @foo` now works). Double-dot syntax is now forbidden (`bazel build ../foo` will no longer work). - The location of rules that explicitly specify `generator_name` and/or `generator_function` attributes (typically because they are incidentally copied from `native.existing_rule()`) is now the top-level call in the `BUILD` file, which is consistent with rules that do not explicitly specify these attributes. - Warnings (most notably those associated with the `deprecation` rule attribute) are no longer replayed on subsequent invocations unless the target in question is re-analyzed. Warnings are purely informational, so this change has no bearing on the correctness of the build. Downstream tests that break due to this change should update their expectations. - `--experimental_remote_build_event_upload` has been renamed to `--remote_build_event_upload` - [Breaking change] platform, constraint_setting, and constraint_value can no longer take an applicable_licenses value. Remediation is to remove the attribute and rely on the package level default. - `--experimental_action_cache_store_output_metadata` has been renamed to `--action_cache_store_output_metadata` - Changed the default value for `--remote_build_event_upload` to `minimal`. - `--experimental_remote_cache_compression` has been renamed to `--remote_cache_compression` - The REPO.bazel and MODULE.bazel files are now also considered workspace boundary markers. This release contains contributions from many people at Google, as well as Adam Azarchs, Adam Lavin, Adam Liddell, Adam Singer, Adam Wolf, Albert Lloveras, Alessandro Patti, Alex Eagle, Alex Eagle, Alex Eagle, Alex Scott, AlexTereshenkov, Alex Torok, Amanda L Martin, Andreas Fuchs, Andreas Herrmann, Andreas Herrmann, Andrew Katson, Andrew Klotz, Andy Hamon, Ankush Goyal, Anthony Pratti, Anthony Ter-Saakov, Ara Nguyen, Artem V. Navrotskiy, Artem Zinnatullin, arunkumar9t2, arun.sampathkumar, aryeh, Ast-x64, Austin Schuh, Benedek Thaler, Benjamin Lee, Benjamin Peterson, Benjamin Peterson, Benjamin Sigonneau, Ben Lee, Bohdan Vanieiev, Bo Zhang, Bo Zhang, Bradley Burns, Brandon Duffany, Brandon Jacklyn, Brentley Jones, Brentley Jones, bromano, Cameron Mulhern, Chad Miller, Charles-Francois Natali, Chirag Ramani, Chris Clearwater, Chris Fredrickson, Christopher Peterson Sauer, Christopher Rydell, Christopher Sauer, ckiffel, Cristian Hancila, crydell-ericsson, Dan Bamikiya, Dan Fleming, Daniel Grunwald, Daniel KT, Daniel McCarney, Daniel Wagner-Hall, Danny Wolf, Dave MacLachlan, Dave Nicponski, David Cummings, David, David Ostrovsky, David Sanderson, Delwin9999, Denys Kurylenko, dhmemi, Dimi Shahbaz, divanorama, dmaclach, Dmitry Ivankov, dorranh, ecngtng, Ed Schouten, Eitan Adler, Elliotte Rusty Harold, Emil Kattainen, erenon, Eric Cousineau, Eric Song, Eric Wendelin, Ethan Steinberg, Ezekiel Warren, Fabian Brandstetter, Fabian Meumertzheim, Fabian Meumertzheim, FaBrand, Fahrzin Hemmati, Fahrzin Hemmati, Felix Ehrenpfort, Finn Ball, floriographygoth, frazze-jobb, Fredrik Medley, Garrett Holmstrom, Gaspare Vitta, Gautam Korlam, George Gensure, George Prekas, gkgoat1, gkorlam, goodspark, Greg Estren, Greg, Greg Magolan, Gregory Fong, Greg Roodt, Grzegorz Lukasik, Grzegorz Lukasik, Halil Sener, Halil Sener, Hannes Kufler, Hao Yuan, homuler, hvadehra, hvd, Igor Nazarenko, Ikko Ashimine, Jack Dai, James Broadhead, James Ma, Jan, Jason Tan, Jay Bazuzi, Jeremy Volkman, Jesse Chan, jheaff1, Jiawen Chen, Joe Lencioni, Joel Jeske, Joel Williamson, Johannes Abt, John Hinnegan, John Laxson, John Laxson, John Millikin, Jonathan Gerrish, Jonathan Schear, Jon Landis, Jon Parise, jonrose-dev, Jon Shea, Jordan, juanchoviedo, Julio Merino, Justus Tumacder, Kaiqin Chen, keertk, Keith Smiley, kekxv, Ken Micklas, Kevin Hogeland, Kevin Lin, Kirill Zabelin, Kiron, Konstantin Erman, Krishna Ersson, Krzysztof Naglik, kshyanashree, Kun-Lu, Lauri Peltonen, Lee Mracek, lihu, Liu Liu, lripoche, Lszl Csomor, Luc Bertrand, Luis Fernando Pino Duque, m, Malte Poll, Marc Zych, Marc Zych, Marek uppa, Mark Karpov, Masoud Koleini, Mathieu Olivari, Matt Clarkson, Matt Mackay, Mauricio Galindo, Max Liu, Maxwell Elliott, Menny Even Danan, menny, Michael Chinen, Michael P. Nitowski, Mikhail Balabin, mohamadk, Mostyn Bramley-Moore, Nathaniel Brough, nathyong, Nick Korostelev, Niek Peeters, Nikolay Shelukhin, Nitesh Anandan, Niyas Sait, Noa Resare, odisseus, Oleh Stolyar, Olek Wojnar, Oliver Lee, Olle Lundberg, Omar Zuniga, Oscar Bonilla, Patrick Balestra, Patrick Balestra, Paul Gschwendtner, Paul Tarjan, Peter Kasting, Peter Mounce, Philipp Schrader, Pras Velagapudi, Qais Patankar, Rabi Shanker Guha, Rahul Butani, Rai, Rajeshwar Reddy T, Red Daly, redwrasse, Rifqi Mulya Fahmi, robincaloudis, Robin Tweedie, Roger Hu, Roman Salvador, ron-stripe, rustberry, Ryan Beasley, Ryan Schmidt, Sagar Pathare, Sahin Yort, Saleem Abdulrasool, samhowes, Samuel Giddins, Sara Adams, Sascha Moecker, Sebastian Olsson, Sergey Tyurin, Severin Strobl, Shuai Zhang, Siddhesh Bhupendra Kuakde, Simon Bjorklen, Simon Mavi Stewart, something_vague, Son Luong Ngoc, Stephan Wolski, Steve Siano, steve-the-bayesian, Steve Vermeulen, Stiopa Koltsov, susinmotion, Sven Tiffe, Takeo Sawada, Tao Wang, tatiana, tbaing, Ted Kaplan, Ted Kaplan, Tetsuo Kiso, Thaler Benedek, Thi Doan, Thi Doan, Thi Don, Thomas Carmet, Thomas Chen, ThomasCJY, Thomas, Thomas Zayouna, Thulio Ferraz Assis, Timothe Peignier, Timothy Klim, Tobi, Tomas Volf, Tom Cnops, Tom de Goede, Torgil Svensson, Trustin Lee, Ulf Adams, Ulf Adams, Ulrik Falklof, Uri Baghin, Vaidas Pilkauskas, vardaro, Vasilios Pantazopoulos, Vertexwahn, Vladimir Tagakov, Waleed Khan, William Muir, wisechengyi, Wren Turkal, Xavier Bonaventura, Xdng Yng, Xiangquan Xiao, Yannic Bonenberger, Yannic Bonenberger, Yannic, Yannic, Yesudeep Mangalapilly, Yi Cheng, Yury Evtikhov, Yuval Kaplan, Yuval K, Yuval, yuzhy8701, Zhongpeng Lin, [zqzzq].
Hey, uh, guys...I definitely have config_setttings with unset visibility that aren't erroring when used from selects() outside their packages. That's unexpected, right? (True with --incompatible_enforce_config_setting_visibility and on bazel rolling 7.0.0-pre.20230426.1.) |
This migration is confusing (sorry) because there are two flags.
#12933 changes the default to private. This is not yet flipped at head. As I understand from the comment thread @keertk is working through CI fixups. |
Sorry--on a second read, I'm realizing you'd said above. Sorry for the false alarm, Greg, and thanks as always for being patient, informative, and great. In recompense, I'll work to make sure our deps (like rules_boost, where I have a commit bit) all work with it and update the issue that brought me here. |
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.
Baseline: 0a47a1f Incompatible changes: - Removing java_common.javac_jar Starlark call. - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change because there is some code that relies on the precise type returned, including brittle workarounds for this bug specifically and insufficiently flexible workarounds for other issues with the intersection of select and native.existing_rule. - flipped incompatible_use_toolchain_resolution_for_java_rules, see bazelbuild#7849 - Query output=xml/proto/location for source files will now show the location of line 1 of the source file (as the new default) instead of its location in the BUILD file. - Specifying a target pattern underneath a directory specified by .bazelignore will now emit a warning, not an error. - Query `--order_output=auto` will now sort lexicographically. However, when `somepath` is used as a top level function (e.g. `query 'somepath(a, b)'`), it will continue to output in dependency order. If you do not want the lexicographical output ordering, specify another `--order_output` value (`no`, `deps` or `full`) based on what ordering you require. - In the build event stream, BuildMetrics.TargetMetrics.targets_loaded is no longer populated. Its value was always mostly meaningless. BuildMetrics.TargetMetrics.targets_configured and BuildMetrics.ActionSummary.actions_created now include configured aspect data. - //visibility:legacy_public has been removed. - Flip and remove incompatible_dont_collect_so_artifacts (bazelbuild#13043). - Remove flag --experimental_no_product_name_out_symlink: it is always true. - The Starlark method generate_dsym in objc fragment has been deleted. Please use the equivalent apple_generate_dsym in cpp fragment instead. - Native libraries in data attribute are not collected. See bazelbuild#13550 for details - Enforce the `--profile` path to be absolute. - Enforce the --memory_profile path to be absolute. - JavaToolchainInfo.jvm_opt returns Depset instead of a list. - --apple_sdk has been deleted. It is a no-op. - --bep_publish_used_heap_size_post_build is now a no-op and will be deleted in a future release. Use --memory_profile=/dev/null instead. - Flipped --incompatible_disallow_resource_jars (see bazelbuild#13221). - Remove --bep_publish_used_heap_size_post_build - JSON trace profile: rename counter names. - Removed --action_graph from the dump command. - Remove `--{experimental_,}json_trace_compression` option. - Remove `--experimental_profile_cpu_usage`. - flipped --incompatible_java_common_parameters (see bazelbuild#12373) - this incompatible change breaks old instances of http_archive that specified netrc as an absolute path. It is unlikely there are many instances in the wild since the path would refer to a netrc file inside the external repository by absolute path. Migration should be straightforward. - genrule switched to use exec transition instead of host. This can break targets with hardcoded output paths. To avoid using hardcoded paths use make variables, see https://docs.bazel.build/versions/4.2.2/be/make-variables.html#pre defined_label_variables - this incompatible change breaks old instances of http_archive that specified netrc as an absolute path. It is unlikely there are many instances in the wild since... - Error Prone now checks for unused return values of additional methods on `java.lang.Object`, which can be disabled using `--javacopts=-Xep:ReturnValueIgnored:OFF` - Error Prone now checks for unused return values of additional methods on `java.lang.Object`, which can be disabled using `--javacopts=-Xep:ReturnValueIgnored:OFF` - The --incompatible_existing_rules_immutable_view flag has been flipped to true. See bazelbuild#13907 for migration notes. - Split up the C++ archive from the C++ link action and set `CppArchive` as mnemonic. - workspace(managed_directories=) is not available anymore. - --legacy_important_outputs now has a default of false. - --legacy_important_outputs default reverted to true. - objc_library now requires CcInfo in its deps. If this breaks you, add empty CcInfo() to your rule. - Flag --experimental_local_memory_estimate removed. - Added a new flag --incompatible_unambiguous_label_stringification, which causes labels in the main repo to stringify into unambiguous forms starting with an @. See bazelbuild#15916 for more information. - analysis_test moved into testing.analysis_test - Flip incompatible_enable_cc_toolchain_resolution (bazelbuild#7260) - (Rollback) Flip incompatible_enable_cc_toolchain_resolution (bazelbuild#7260) - name parameter is removed from rule call (bazelbuild#16301) - name parameter is removed from rule call (bazelbuild#16301) - name parameter is removed from rule call (bazelbuild#16301) - --incompatible_remote_downloader_send_all_headers is flipped to true. See bazelbuild#16356 for details. - GrpcRemoteDownloader only includes relevant headers instead of sending all credentials. - In package_group's `packages` attribute, the syntax "//..." now refers to all packages in the same repository as the package group, rather than all packages everywhere. The new item "public" can be used instead to obtain the old behavior. In `bazel query --output=proto` (and `--output=xml`), the `packages` attribute now serializes with the leading double slash included (for instance, `//foo/bar/...` instead of `foo/bar/...`). See also bazelbuild#16355, bazelbuild#16323, and bazelbuild#16391. - This has the side effect of changing the message on unsuccessful builds from ``` FAILED: Build did NOT complete successfully (0 packages loaded) ``` to ``` ERROR: Build did NOT complete successfully ``` - Bazel no longer increases the delay between progress updates when there is no cursor control. - This has the side effect of changing the message on unsuccessful builds from ``` FAILED: Build did NOT complete successfully (0 packages loaded) ``` to ``` ERROR: Build did NOT complete successfully ``` - the --experimental_async_execution flag is now a no-op. - --experimental_replay_action_out_err is not a no-op. - `cquery --output=files` also outputs source files. - `--incompatible_strict_conflict_checks` is flipped to true. See bazelbuild#16729 for details. - `--incompatible_strict_conflict_checks` is flipped to true. See bazelbuild#16729 for details. - `--incompatible_always_include_files_in_data` is flipped to true. See bazelbuild#16654 for details. - This changes the behavior of Python version in exec/host configuration. Mitigation is to set Python version on the targets. - When multiple --deleted_packages options are passed on the command line, they will be concatenated instead of the latest one taking effect. - This has the side effect of changing the message on unsuccessful builds from - JSON profile: Use doubles instead of strings for counter series. - query --output=proto --order_output=deps now returns targets in topological order (previously there was no ordering). - --experimental_build_transitive_python_runfiles is flipped to false. See bazelbuild#16303 for details - --incompatible_python_disable_py2 is flipped to true. See bazelbuild#17293 for details. - When remote cache evicts blobs, Bazel will exit with code 39. - `--features` only applies to targets built in the target configuration, and `--host_features` is used for the host / exec configuration (gated behind `--incompatible_use_host_features`) - `--incompatible_strict_conflict_checks` is flipped to true. See bazelbuild#16729 for details. - Bazel's local CPU resource on Linux is now container aware. Use `--local_cpu_resources`, `--loading_phase_threads` or `--jobs` to override. - `copy_from_rule` is exec_groups is deprecated (bazelbuild#17668). - --legacy_bazel_java_test is now a no-op - --legacy_bazel_java_test is now a no-op - --legacy_bazel_java_test is now a no-op - `--experimental_execution_graph_log` no longer exists. Current users that want local logs need to pass `--experimental_enable_execution_graph_log --experimental_execution_graph_log_path=/some/local/path`. Current users that want logs uploaded to BEP need to pass `--experimental_enable_execution_graph_log --experimental_stream_log_file_uploads`. - Remove 'darwin' as a CPU value, use 'darwin_x86_64' instead - Remove high priority workers functionality from blaze. New features: - Args.add_all and Args.add_joined can now accept closures in map_each if explicitly enabled via allow_closure. - Add `--bes_header` flag to pass extra headers to the BES server. - Support local_repository in Bazel Registry's source.json file - The `aquery` and `cquery` commands now respect the `--query_file` flag just like the `query` command. Important changes: - Flag --incompatible_objc_compile_info_migration is removed. See bazelbuild#10854. - Flag --incompatible_objc_compile_info_migration is removed. See bazelbuild#10854. - Flag --incompatible_objc_compile_info_migration is removed. See bazelbuild#10854. - none PAIR=cmita - The --incompatible_load_python_rules_from_bzl flag is now a no-op. - Filter all (instead of just C++) source files for coverage output according to --instrumentation_filter and --instrument_test_targets. - The `--incompatible_disable_native_apple_binary_rule` flag has been added which disables the native `apple_binary` rule. Users who need to use `apple_binary` directly (if they cannot use one of the more specific Apple rules) should load it from https://github.com/bazelbuild/rules_apple. - The Android rules' --use_singlejar_apkbuilder is now a no-op. SingleJar will always be used to build APKs. - dict.setdefault(key, ...) now fails if dict is frozen, even if it already contains key. This is an incompatible API change. - Flag --incompatible_objc_provider_remove_compile_info is removed. See bazelbuild#11359. - Starlark now permits def statements to be nested (closures). - native.existing_rule now returns select values in a form that is accepted by rule instantiation. This is a breaking API change, though the fallout is expected to be small. - Starlark now supports lambda (anonymous function) expressions. - The "test" and "coverage" commands no longer return 3 when a test action fails because of a system error. Instead, the exit code reflects the type of system error. - The undocumented ctx.expand feature no longer exists. - Make --legacy_dynamic_scheduler a no-op flag. - Multiplex persistent workers can now use the JSON protocol. - native.existing_rule now returns a mutable list, not a tuple, for a list-valued attributes. This is an incompatible API change. - Roll back change to have native.existing_rules use list instead of tuple. - BEP includes test suite expansions. - config_setting now honors `visibility` attribute (and defaults to `//visibility:public`) - Change the MultiArchSplitTransitionProvider to be based on platform type + CPU instead of fixed "ios_" + cpu. - enforce config_setting visibility. See bazelbuild#12932 for details. - add a flag to build v4 signature file - Added _direct_source_jars output group to Java related targets. END_PUBLIC - pkg_deb is no longer part of @bazel_tools//build_defs/pkg:pkg.bzl. Use https://github.com/bazelbuild/rules_pkg/tree/main/pkg instead - Allowing the lipo operations to be conditional in the linkMultiArchBinary API for Apple binaries. Single architecture slices are now returned through AppleBinaryOutput and the Starlark API. - Release restriction for "-" in the package name for Python sources. Now `py_binary` and `py_test` targets can have main source file with "-" in the path. - Users consuming BEP may assume that a `named_set_of_files` event will appear before any event referencing that `named_set` by ID. This allows consumers to process the files for such events (eg. `TargetCompleted`) immediately. - BEP includes all files from successful actions in requested output groups. Previously, an output group's files were excluded if any file in the output group was not produced due to a failing action. Users can expect BEP output to be larger for failed builds. - In BEP, TargetComplete.output_group has a new field `incomplete` indicating that the file_sets field is missing one or more declared artifacts whose generating actions failed. - The flag `--toolchain_resolution_debug` now takes a regex argument, which is used to check which toolchain types should have debug info printed. You may use `.*` as an argument to keep the current behavior of debugging every toolchain type. - Add runfiles.merge_all() for merging a sequence of runfiles objects. - runfiles.merge() and merge_all() now respect --nested_set_depth_limit. If you hit the depth limit because you were calling merge() in a loop, use merge_all() on a sequence of runfiles objects instead. - Bazel will no longer create a bazel-out symlink if --symlink_prefix is specified: the directory pointed to via the bazel-out symlink is accessible via ${symlink_prefix}-out. If this causes problems for you, set --experimental_no_product_name_out_symlink=false in your builds and file an issue. - Updates worker protocol with cancellation fields, and adds experimental_worker_cancellation flag to control cancellation. - Simplify build failure output by always using `NNN arguments`. - trim_test_configuration now defaults to on - Mark genrule.srcs as a source attribute for coverage. - When using --allow_analysis_failures (for example, via bazel-skylib's analysistest with `expect_failure = True`), analysis-time failures in aspect implementation functions will now be propagated and saved in AnalysisFailureInfo, just like analysis-time failures in rules. - cquery --noimplicit_deps now correctly filters out resolved cc_toolchains - Sign apks deterministically. - Make gcov optional in cc_toolchain tools. - If --experimental_prefer_mutual_xcode is passed, Bazel will choose the local default (instead of the newest mutually available version) if it's available both locally and remotely. - Remove java_lite_proto_library.strict_deps attribute. - Generate proguard configurations deterministically. - Adds a new flag, `--incompatible_enable_cc_test_feature` which switches from the use of build variables to the feature of the same name. - Dropped fragile xz support from built in pkg_tar. Users requiring xz compression should switch to bazlebuild/rules_pkg. - 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) - Add `disable_annotation_processing` option to `java_common.compile`, which disables any annotation processors passed to `plugins` or in `exported_plugins` of `deps` - Remove obsolete --incompatible_prohibit_aapt1 - The minimum Android build tools version for the Android rules is now 30.0.0 - Adds --experimental_reuse_sandbox_directories flag to reuse already-created non-worker sandboxes with cleanup. - --experimental_force_gc_after_build is deprecated and will be removed soon. Use --bep_publish_used_heap_size_post_build instead - Forward coverage-instrumented files from non-tool dependencies by default. - The used_heap_size_post_build field in BEP is populated when the --memory_profile flag is set - --run_validations defaults to true. - Consider label_keyed_string_dict attributes when gathering instrumented files for coverage. - Remove flag --experimental_forward_instrumented_files_info_by_default, now that this behavior is the default. - When using MemoryProfiler with multiple GCs via the --memory_profile_stable_heap_parameters flag, we do a more precise calculation of heap used at the end of the build. This will generally result in lower values. - --bep_publish_used_heap_size_post_build is deprecated. Use --memory_profile=/dev/null instead. - Disable --all_incompatible_changes flag. - The --all_incompatible_changes flag is now a no-op - The `--toolchain_resolution_debug` flag now accepts regexes matching targets, as well as toolchain types, when choosing what debug messages to print. - Adds --experimental_existing_rules_immutable_view flag to make the native.existing_rule and native.existing_rules functions more efficient by returning immutable, lightweight dict-like view objects instead of mutable dicts. - Add support to length-delimited protos as undeclared output annotations [] - The deprecated "relative_to_caller_repository" parameter has been removed from the Label constructor. - The toolchain transition is now enabled for all toolchains. - incompatible_disable_depset_items is flipped - The --experimental_existing_rules_immutable_view flag has been renamed to --incompatible_existing_rules_immutable_view - Bazel no longer supports Java 8. From this version on, the minimum required JDK is OpenJDK 11. - Deprecate --incompatible_applicable_licenses flag, in preparation for removal in Bazel 6.x. - Treat py_*.srcs_version="PY2" the same as "PY2ONLY". - The Build Event Protocol now contains file digests and sizes along with the file name and URI. - Refactor system suspend event handling. - alias() can now select() directly on constraint_value() - Allow \a \b \f \v escape sequences in Starlark. - Match remote and local xcode version by most granular version. - Adds `--experimental_worker_multiplex_sandboxing` flag that controls whether to sandbox multiplex workers that support it. - provider() has a new parameter: init, a callback for performing pre-processing and validation of field values. Iff this parameter is set, provider() returns a tuple of 2 elements: the usual provider symbol (which, when called, invokes init) and a raw constructor (which bypasses init). - Tests that fail to create or complete their `TestAttemptContinuation` by throwing an `ExecException` will report an `INCOMPLETE` status. Previously, Bazel would fail to report any status for the test attempt. - Fixed an issue where Bazel could erroneously report a test passes in coverage mode without actually running the test. - Include more information about configurations in cquery proto formatted output. This deprecates the configuration field of AnalysisProtosV2.ConfiguredTarget, and adds a new field, configuration_id, to be used instead. - experimental cc_library.implementation_deps inverted to interface_deps - In aquery and cquery proto output, indicate if a configuration is a tool or non-tool configuration. - Include complete configurations in cquery proto output. - experimental cc_library.implementation_deps inverted to interface_deps - Make protocOpts() publicly accessible. - Add some documentation about how configuration information is conveyed in cquery proto output. - Introduces experimental static library linking API under apple_common.link_multi_arch_static_library - Further deprecation and removal of pkg_tar. Stop supporting legacy use of 'files' attribute, where it could be a list of labels instead of a map of paths to labels. - Removed --incompatible_no_build_defs_pkg flag. It never fulfilled its purpose because --all_incompatible_changes would never set it. The last rule it gated (pkg_tar) is scheduled to be removed in Bazel 6.x. - Add coverage configuration fragment, used to expose output_generator label. - Bazel now no longer includes system headers on macOS in coverage reports (bazelbuild#14969). - android_sdk_repository read $ANDROID_SDK_ROOT in addition to $ANDROID_HOME. - The default dexer is now d8. dx can be optionally enabled using: --define=android_dexmerger_tool=dx_dexmerger \ --define=android_incremental_dexing_tool=dx_dexbuilder \ --define=android_standalone_dexing_tool=dx_compat_dx \ --use_workers_with_dexbuilder - Packaging support for deploy JAR embedded JDK files (hermetic Java). - Don't stamp cc_common.link actions for tool dependencies. - Starlark test rules can use the new inherited_environment parameter of testing.TestEnvironment to specify environment variables whose values should be inherited from the shell environment. - Enable merging permissions during Android manifest merging with the --merge_android_manifest_permissions flag. - Allow specialization to work with constraint_values. - Bazel uses the D8 jar from Maven instead of the SDK. - Make ijar / java_import preserve classes with `@kotlin.Metadata` annotations - Switch cc_test implementation to Starlark. Note: cc_test will now link statically when _targeting_ Windows regardless of host platform (rather than always linking statically when Windows is the _host_). - Switch cc_test implementation to Starlark. Note: cc_test will now link statically when _targeting_ Windows regardless of host platform (rather than always linking statically when Windows is the _host_). - Add devtools/build/lib/worker:work_request_handlers to the remote android tools release package. This will be transitively packaged into all_android_tools. - Bazel uses the D8 jar from Maven instead of the SDK. - android_sdk_repository read $ANDROID_SDK_ROOT in addition to $ANDROID_HOME. - Advance android_tools_pkg version to 0.24.0. - Switch cc_test implementation to Starlark. Note: cc_test will now link statically when _targeting_ Windows regardless of host platform (rather than always linking statically when Windows is the _host_). - Bazel uses the D8 jar from Maven instead of the SDK. - "blaze config" now only reports info from the last build. To compare configurations across multiple builds, redirect "blaze config" output to a file and run your favorite diff tool. - The --incompatible_override_toolchain_transition flag is now always set, and will be removed in the future. Thus, --noincompatible_override_toolchain_transition has no effect, and the value of the incompatible_use_toolchain_transition parameter in aspect() and rule() builtins is ignored. - Switch cc_test implementation to Starlark. Note: cc_test will now link statically when _targeting_ Windows regardless of host platform (rather than always linking statically when Windows is the _host_). - Toolchain types may now be optional, in addition to mandatory. See https://bazel.build/docs/toolchains#optional-toolchains for further details. - Add six to deps of has_services=1 py_proto_librarys. - pkg_tar(symlinks) has been removed. Users needing that feature should migrate to @rules_pkg. - Aspects can now define and use exec groups using the same API as rules. - Removed the obsolete --incompatible_applicable_licenses flag. The feature is permanently enabled. - embedded_tools packages R8 desugarer again - Bazel now selects sh path based on execution platform instead of host platform, making it possible to execute sh actions in multiplatform builds. --shell_executable now only applies to actions configured for host. - labels in genquery.scope are no longer configured. - When Bzlmod is enabled, all Bzlmod-generated repos will have an extra '@' prepended to their names. This effectively enables the canonical label literal syntax for Bzlmod-generated repos (`@@canonicalRepoName//pkg:target`; see https://docs.google.com/document/d/1N81qfCa8oskCk5LqTW-LNthy6EBrDo t7bdUsjz6JFC4/edit?usp=sharing). - Exposed `CcSharedLibraryInfo` to Starlark builtins. - Enable --use_top_level_targets_for_symlinks by default. - Singlejar accepts runtime Created-By field - --noincompatible_disable_managed_directories, and with that, workspace(managed_directories=) is not supported anymore. - Bazel supports D8 desugaring, albeit without persistent workers - Remove mtime options from pkg_tar. Users should migrate to @rules_pkg. - Test for experimental multiplexed persistent resource processor. - Added new register_{execution_platforms,toolchains} directives to the MODULE.bazel file, to replace the {execution_platforms,toolchains}_to_register attributes on the module() directive. - The legacy pkg_tar no longer supports the ability to untar and repackage an input tar file (`deps` attribute). Users needed that capability must switch to github.com/bazelbuild/rules_pkg. - `cquery`'s new output mode [`--output=files`](https://bazel.build/docs/cquery#files-output) lists the output files of the targets matching the query. It takes the current value of `--output_groups` into account. - Change singlejar metadata to report Created-By Bazel - Add support for fetching RPC credentials from credential helper. - Revert interface_deps back to implementation_deps after problem reported in. Use `buildozer 'rename deps implementation_deps' //...:%cc_library; buildozer 'rename interface_deps deps' //...:%cc_library` - Fix for desugaring failure on Bazel+Android+Windows build scenario. - D8 is the default desugarer - Migrate main_dex_list_creator to D8 (DX deprecation) - --experimental_enable_bzlmod has been renamed --enable_bzlmod, and still defaults to false. - selects() no longer produce irrelevant duplicate label checks - Adds a dexer output cache to CompatDexBuilder to improve build speed. - Improved error messages when analyzing inline bzl code - Improved error messages when analyzing inline bzl code - The `@bazel_tools//tools/cpp:compiler` flag now has the value `gcc` if the configured compiler is detected to be gcc rather than the generic value `compiler`. A branch for `gcc` may have to be added to `select` statements that do not have a default case that handles gcc appropriately. - The `get_child` method of `path` now accepts an arbitrary number of relative path strings as positional arguments. - SourceManifestAction supports `Action.content` - Add --incompatible_build_transitive_python_runfiles alias. See bazelbuild#16303 - The @bazel_tools//tools/cpp:compiler flag now has the value `clang` for the auto-configured Xcode toolchain rather than the generic value compiler. A branch for `clang` may have to be added to select statements that do not have a default case that handles this toolchain appropriately. - added additional debug message to warn of skipped toolchains during resolution - The deprecated --remote_allow_symlink_upload flag has been removed. Symlinks in local action outputs are always permitted, even with remote caching. Whether they're uploaded as symlinks or as the files/directories they point to is still determined by the --incompatible_remote_symlinks flag. - Added `struct`, `json`, `proto`, and `depset` to the starlark environment of Bazel's cquery (--output=starlark) command - Added three `package_group`-related flags: `--incompatible_package_group_includes_double_slash` (bazelbuild#16391), `--incompatible_package_group_has_public_syntax` (bazelbuild#16355), and `--incompatible_fix_package_group_reporoot_syntax` (bazelbuild#16323). With these flags, `package_group` can now easily specify "all packages", "no packages", and "all packages in the current repo". - Record hermetic packaged JDK modules file size in deploy JAR manifest 'JDK-Lib-Modules-Size' attribute. - .bzl files may now set a visibility to guard what other .bzl and BUILD files may load them. See [...] for more information. - Deletes the --extra_proguard_specs Blaze flag - The new path variable `$(rlocationpath ...)` and its plural form `$(rlocationpaths ...)` can be used to expand labels to the paths accepted by the `Rlocation` function of runfiles libraries. This is the preferred way to access data dependencies at runtime and works on all platforms, even when runfiles are not enabled (e.g., on Windows by default). - Starlark `print()` statements are now emitted iff the line of code is executed. They are no longer replayed on subsequent invocations unless the Starlark code is re-executed. Additionally, multiple identical `print()` statements (same string from the same line of code, e.g. from a loop) are all emitted and no longer deduplicated. - Fixes a bug where some compilation flags would not be applied to a cc_test - removed outdated ctx.host_fragments - removed outdated ctx.host_configuration - Now that the host configuration is finished, `genrule` should prefer the use of `tools` and stop using `exec_tools`. - Added a `native.package_relative_label()` function, which converts a label string to a Label object in the context of the calling package, in contrast to `Label()`, which does so in the context of the current .bzl file. Both functions now also accept relative labels such as `:foo`, and are idempotent. - Update Android manifest merger to v30.1.3, and also drop support for legacy (pre-D8) desugaring. - Adds coverage metric support to android_local_test - Correctly encode double value positive infinity as "inf" instead of "+inf" for textprotos. - Add --use_target_platform_for_tests which uses the target platform for executing tests instead of the execution platform. - Custom C++ rules on Windows calling cc_common.create_linking_context_from_compilation_outputs should review whether each target of the rule type should produce a dynamic library since a condition which blocked their creation has been moved to the rules from behind the API. - Add flag `--experimental_remote_cache_ttl` and set the default value to 3 hours. - making --incompatible_use_platforms_repo_for_constraints do nothing. Using constraints from @bazel_tools//platforms with or without the flag will throw error with message "Constraints from @bazel_tools//platforms have been removed. Please use constraints from @platforms repository embedded in Bazel, or preferably declare dependency on https://github.com/bazelbuild/platforms" - Fixed an issue where WORKSPACE and WORKSPACE-loaded .bzl files couldn't see the Bzlmod root module's mappings when Bzlmod is enabled. - Subsequent settings of --extra_execution_platforms now override previous settings, instead of adding them to a list. If you currently set --extra_execution_platforms more than once, please migrate by passing a list of values to --extra_execution_platforms instead so that earlier values aren't overwritten. - @bazel_tools//config:common_settings.bzl has been removed. Use @bazel_skylib//rules:common_settings.bzl instead. - cc_shared_library is no longer experimental, see bazelbuild#16709 for details - The flag `--distinct_host_configuration` is removed. It has been a no-op since Bazel 6.0.0. - Added `native.module_name()` and `native.module_version()` to allow BUILD macro authors to acquire information about which Bazel module the current repo is associated with. - Add `--skip_incompatible_explicit_targets` option - Remove 'darwin' as a CPU value, use 'darwin_x86_64' instead - cc_test can now be configured by using a native.toolchain(). - `@foo` labels can now be used on the command line as the top-level target (that is, `bazel build @foo` now works). Double-dot syntax is now forbidden (`bazel build ../foo` will no longer work). - The location of rules that explicitly specify `generator_name` and/or `generator_function` attributes (typically because they are incidentally copied from `native.existing_rule()`) is now the top-level call in the `BUILD` file, which is consistent with rules that do not explicitly specify these attributes. - Warnings (most notably those associated with the `deprecation` rule attribute) are no longer replayed on subsequent invocations unless the target in question is re-analyzed. Warnings are purely informational, so this change has no bearing on the correctness of the build. Downstream tests that break due to this change should update their expectations. - `--experimental_remote_build_event_upload` has been renamed to `--remote_build_event_upload` - [Breaking change] platform, constraint_setting, and constraint_value can no longer take an applicable_licenses value. Remediation is to remove the attribute and rely on the package level default. - `--experimental_action_cache_store_output_metadata` has been renamed to `--action_cache_store_output_metadata` - Changed the default value for `--remote_build_event_upload` to `minimal`. - `--experimental_remote_cache_compression` has been renamed to `--remote_cache_compression` - The REPO.bazel and MODULE.bazel files are now also considered workspace boundary markers. This release contains contributions from many people at Google, as well as Adam Azarchs, Adam Lavin, Adam Liddell, Adam Singer, Adam Wolf, Albert Lloveras, Alessandro Patti, Alex Eagle, Alex Eagle, Alex Eagle, Alex Scott, AlexTereshenkov, Alex Torok, Amanda L Martin, Andreas Fuchs, Andreas Herrmann, Andreas Herrmann, Andrew Katson, Andrew Klotz, Andy Hamon, Ankush Goyal, Anthony Pratti, Anthony Ter-Saakov, Ara Nguyen, Artem V. Navrotskiy, Artem Zinnatullin, arunkumar9t2, arun.sampathkumar, aryeh, Ast-x64, Austin Schuh, Benedek Thaler, Benjamin Lee, Benjamin Peterson, Benjamin Peterson, Benjamin Sigonneau, Ben Lee, Bohdan Vanieiev, Bo Zhang, Bo Zhang, Bradley Burns, Brandon Duffany, Brandon Jacklyn, Brentley Jones, Brentley Jones, bromano, Cameron Mulhern, Chad Miller, Charles-Francois Natali, Chirag Ramani, Chris Clearwater, Chris Fredrickson, Christopher Peterson Sauer, Christopher Rydell, Christopher Sauer, ckiffel, Cristian Hancila, crydell-ericsson, Dan Bamikiya, Dan Fleming, Daniel Grunwald, Daniel KT, Daniel McCarney, Daniel Wagner-Hall, Danny Wolf, Dave MacLachlan, Dave Nicponski, David Cummings, David, David Ostrovsky, David Sanderson, Delwin9999, Denys Kurylenko, dhmemi, Dimi Shahbaz, divanorama, dmaclach, Dmitry Ivankov, dorranh, ecngtng, Ed Schouten, Eitan Adler, Elliotte Rusty Harold, Emil Kattainen, erenon, Eric Cousineau, Eric Song, Eric Wendelin, Ethan Steinberg, Ezekiel Warren, Fabian Brandstetter, Fabian Meumertzheim, Fabian Meumertzheim, FaBrand, Fahrzin Hemmati, Fahrzin Hemmati, Felix Ehrenpfort, Finn Ball, floriographygoth, frazze-jobb, Fredrik Medley, Garrett Holmstrom, Gaspare Vitta, Gautam Korlam, George Gensure, George Prekas, gkgoat1, gkorlam, goodspark, Greg Estren, Greg, Greg Magolan, Gregory Fong, Greg Roodt, Grzegorz Lukasik, Grzegorz Lukasik, Halil Sener, Halil Sener, Hannes Kufler, Hao Yuan, homuler, hvadehra, hvd, Igor Nazarenko, Ikko Ashimine, Jack Dai, James Broadhead, James Ma, Jan, Jason Tan, Jay Bazuzi, Jeremy Volkman, Jesse Chan, jheaff1, Jiawen Chen, Joe Lencioni, Joel Jeske, Joel Williamson, Johannes Abt, John Hinnegan, John Laxson, John Laxson, John Millikin, Jonathan Gerrish, Jonathan Schear, Jon Landis, Jon Parise, jonrose-dev, Jon Shea, Jordan, juanchoviedo, Julio Merino, Justus Tumacder, Kaiqin Chen, keertk, Keith Smiley, kekxv, Ken Micklas, Kevin Hogeland, Kevin Lin, Kirill Zabelin, Kiron, Konstantin Erman, Krishna Ersson, Krzysztof Naglik, kshyanashree, Kun-Lu, Lauri Peltonen, Lee Mracek, lihu, Liu Liu, lripoche, Lszl Csomor, Luc Bertrand, Luis Fernando Pino Duque, m, Malte Poll, Marc Zych, Marc Zych, Marek uppa, Mark Karpov, Masoud Koleini, Mathieu Olivari, Matt Clarkson, Matt Mackay, Mauricio Galindo, Max Liu, Maxwell Elliott, Menny Even Danan, menny, Michael Chinen, Michael P. Nitowski, Mikhail Balabin, mohamadk, Mostyn Bramley-Moore, Nathaniel Brough, nathyong, Nick Korostelev, Niek Peeters, Nikolay Shelukhin, Nitesh Anandan, Niyas Sait, Noa Resare, odisseus, Oleh Stolyar, Olek Wojnar, Oliver Lee, Olle Lundberg, Omar Zuniga, Oscar Bonilla, Patrick Balestra, Patrick Balestra, Paul Gschwendtner, Paul Tarjan, Peter Kasting, Peter Mounce, Philipp Schrader, Pras Velagapudi, Qais Patankar, Rabi Shanker Guha, Rahul Butani, Rai, Rajeshwar Reddy T, Red Daly, redwrasse, Rifqi Mulya Fahmi, robincaloudis, Robin Tweedie, Roger Hu, Roman Salvador, ron-stripe, rustberry, Ryan Beasley, Ryan Schmidt, Sagar Pathare, Sahin Yort, Saleem Abdulrasool, samhowes, Samuel Giddins, Sara Adams, Sascha Moecker, Sebastian Olsson, Sergey Tyurin, Severin Strobl, Shuai Zhang, Siddhesh Bhupendra Kuakde, Simon Bjorklen, Simon Mavi Stewart, something_vague, Son Luong Ngoc, Stephan Wolski, Steve Siano, steve-the-bayesian, Steve Vermeulen, Stiopa Koltsov, susinmotion, Sven Tiffe, Takeo Sawada, Tao Wang, tatiana, tbaing, Ted Kaplan, Ted Kaplan, Tetsuo Kiso, Thaler Benedek, Thi Doan, Thi Doan, Thi Don, Thomas Carmet, Thomas Chen, ThomasCJY, Thomas, Thomas Zayouna, Thulio Ferraz Assis, Timothe Peignier, Timothy Klim, Tobi, Tomas Volf, Tom Cnops, Tom de Goede, Torgil Svensson, Trustin Lee, Ulf Adams, Ulf Adams, Ulrik Falklof, Uri Baghin, Vaidas Pilkauskas, vardaro, Vasilios Pantazopoulos, Vertexwahn, Vladimir Tagakov, Waleed Khan, William Muir, wisechengyi, Wren Turkal, Xavier Bonaventura, Xdng Yng, Xiangquan Xiao, Yannic Bonenberger, Yannic Bonenberger, Yannic, Yannic, Yesudeep Mangalapilly, Yi Cheng, Yury Evtikhov, Yuval Kaplan, Yuval K, Yuval, yuzhy8701, Zhongpeng Lin, [zqzzq].
Visibility on
config_setting
isn't historically enforced. This is purely for legacy reasons. There's no philosophical reason to distinguish them.This flag starts the process of removing the distinction.
Values:
--incompatible_enforce_config_setting_visibility=off
: everyconfig_setting
is visible to every target, regardless of visibility settings--incompatible_enforce_config_setting_visibility=on
:config_setting
follows the policy set by--incompatible_config_setting_private_default_visibility
(incompatible_config_setting_private_default_visibility #12933).Incompatibility error:
ERROR: myapp/BUILD:4:1: in config_setting rule //myapp:my_config: target 'myapp:my_config' is not visible from target '//some:other_target. Check the visibility declaration of the former target if you think the dependency is legitimate
Migration:
Treat all
config_setting
s as if they follow standard visibility logic at https://docs.bazel.build/versions/master/visibility.html: have them set visibility explicitly if they'll be used anywhere outside their own package. The ultimate goal of this migration is to fully enforce that expectation.The text was updated successfully, but these errors were encountered: