tree 6de181ae103b03d24ea13b75fcdca194ff28605f
parent 3b2d686f2976e66ca4f93b568f2262a88621855a
author Bazel Release System <noreply@google.com> 1648130261 +0100
committer Xudong Yang <wyv@google.com> 1648130261 +0100

Release 5.1.0 (2022-03-24)

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.
   + 8d5973d29d60c0c615838c534ee27f93377cf5af:
     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
   + 7632928a116efc4e28a02ec9206870663bcaacf7:
     Remove merging of java_outputs in JavaPluginInfo.
   + cea5f4f499aa832cf90c68898671869ce79d63f2:
     Cherrypick Bzlmod documentation (#14301)
   + 299e50aae9d8c0b7f0d47aa2ce3d2658a3a80a94:
     Format work requests according to ndjson spec (#14314)
   + e53ae63c04a7158b78da19bc76ede57a8cc31673:
     Enable user_link_flags_feature for macosx cc_toolchain_config
     (#14313)
   + b587be37b3b817879d700d7ee55c44cd884b0905:
     Remote: Use Action's salt field to differentiate cache across
     workspaces. (#14320)
   + f94898915268be5670fb1e93a16c03e9b14d2a58:
     [5.x] Remote: Fix "file not found" error when remote cache is
     changed from enabled to disabled.  (#14321)
   + dc76f74d3a6f77de03c49234386bf0ca7d15bdcc:
     Delete marker file before fetching an external repository
     (#14323)
   + fabdff40070acf415282543b72cf114e2b5723f6:
     Remote: Fix file counting in merkletree.DirectoryTreeBuilder
     (#14331)
   + 541ed05702751a5b061b22f1ff98f0cef17af1a5:
     Fix remote spawn tests for remote_merkle_tree_cache=true (#14334)
   + aa884df6b09ed19fccd83aad67f39653fde5fbed:
     Show skipped tests as a warning (#14345)
   + 6916fc1c4c49134ee76b9a725deddd1e6bcab24a:
     Build xcode-locator as a universal binary (#14351)
   + ffa12adb44e86772ae48eeb5a387f172130407fa:
     Exit collect_coverage.sh early if LCOV_MERGER is not set.
     (#14359)
   + b46de754aba0f24d67cd9c882f8a82428915fae5:
     Automated rollback of commit
     d84f7998ef8f15e27376a0c8f25b320145c4ba9e. (#14358)
   + 24a340a50a11e255dff656d2ee9b3dcfb093b729:
     [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)
   + 2fb7dfe7b35b5997cc5fbcd1d98612b99419f097:
     Disable IncludeValidation for ObjC in bazel (#14440)
   + 7deb940f3840e6ac3233963a9b68227e7f0f4a9e:
     Update java_tools v11.6 (#14423)
   + 90965b072eb4a6dec8ff5b8abde3726732d37bdc:
     Stop remote blob upload if upload is complete. (#14467)
   + dc59d9e8f7937f2e317c042e8da8f97ba6b1237e:
     [5.x] Make remote BES uploader better (#14472)
   + d7f134110631641ea8c3f9b19b37165bb177ef2e:
     Avoid too verbose warnings in terminal when cache issues (#14504)
   + 2b48c6b9a447756fcb3295b8a75899b96efa7fd4:
     Rename --project_id to --bes_instance_name (#14507)
   + 7c7f102576c917acf6c9d6013a5c7c4783bf396d:
     Automated rollback of commit
     bfdfa6ebfd21b388f1c91f512291c848e1a92a96. (#14515)
   + 9c1c622fed219cb6b9c0656ebe4a4f3c117029b9:
     [apple] support watchos_arm64 in toolchain (#14527)
   + 43bcf80a3dfdc5ac89c1e4d615d6f29a495855fb:
     Disable implicitly collecting baseline coverage for toolchain
     targets.
   + 48a0fc51ccf6a3a263b9f8d96921d84d4243e0e6:
     Automated rollback of commit
     7d09b4a15985052670244c277e4357557b4d0039.
   + a233aaa649572b7173ea27aceed31cb705d7ba9b:
     Bzlmod: Starlarkify default attr values for TypeCheckedTags
   + 38117d491cbc4a5686e0bdb1e58f8946d96aed58:
     Fix build after rc4 cherrypicks (#14581)
   + 41feb616ae18e21fdba3868e4c298b0b83012f10:
     Release 5.0.0 (2022-01-19)
   + d53f53cf5cc05c738a9857ca95059ce8903107cd:
     Find runfiles in directories that are themselves runfiles
     (#14737)
   + 167e79f08a95ae14edfb44d85452c9c74e0f1a3c:
     Don't resolve symlinks for --sandbox_base (#14748)
   + 22bede95a5a74c61571d3b50c14488b0e922ff63:
     Remove uses of -lstdc++ on darwin (#14750)
   + 60f757c0831f9fbb2415fb0105f964201faa9fa0:
     Allow Label instances as keys in select (#14755)
   + a5f2813acf3e31aeb3037d80a6f9d7fddf76a1c8:
     Remote: Only waits for background tasks from remote execution.
     (#14752)
   + d17a769965f12363f339c7b93524f49dbcdd1b1e:
     Add the default solib dir to the rpath for cc_imports with
     transitions (#14757)
   + 53ee76e96365bdea88847f77706d55f2c39b9273:
     Flip --experimental_worker_allow_json_protocol (#14749)
   + 21ff46a639a83084975251ca7c21cfc8d74763eb:
     Fix `ctx.fragments.apple.single_arch_cpu` returning incorrect
     cpu for tools when host cpu and exec cpu are different (#14751)
   + 0c1d09e4dce4c3251c2be2c70d4575ec65b1d9d3:
     Propagate --experimental_cc_implementation_deps to host config
   + 0df1851f0759279d84c79ea6731552437c95ce65:
     Support select() on constraint_value for aliases. (#14754)
   + 58ecec37747636b3483bbcba29a7f3e0e2372697:
     Improve documentation for select() (#14769)
   + 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)
   + af34c452c12dae8758340dc5c284cf30f3c80302:
     Add a helper method for rules to depend on the cpp toolchain
     type. (#14795)
   + 6990c02644a71d5e7c95c9c234ecf39bb55c6ac4:
     UrlRewriter should be able to load credentials from .netrc
     (#14834)
   + 65904046031325c418734dfda994bdeff4134160:
     Add "arch" struct field to repository_os (#14835)
   + 2cfdceae971d09f50ceddc3d7ef723fb5f879957:
     [5.x] bzlmod: Add support for WORKSPACE.bzlmod (#14813)
   + 59384ddee429ca363022c2a03b62a5a9a43c31c4:
     Ignore missing include directory in JDK distribution. (#14832)
   + 344e8f8e97db2e2aa9b2fce7d68083a7549e4bc6:
     Fix bazel coverage false negative (#14836)
   + 0c74741742301abcf67452a7f591daec1c3a7635:
     Remote: Postpone the block waiting in `afterCommand` to
     `BlockWaitingModule` (#14833)
   + 3297d9234e15515aa91cc887b3b12db7e1040b02:
     Switch to `ProcessHandle` for getting the PID (#14842)
   + 031a772acfd304fb5678e6a53e6c4ac3b99103ff:
     Fix uses of std++ on bsd (#14860)
   + 8ebd70b0c97c8bd584647f219be8dd52217cb5cf:
     Remote: handle early return of compressed blobs uploads (#14885)
   + 50bb742fc35c04ab422a7ce723160b27d6900e6c:
     Add removeprefix/removesuffix to Starlark strings (#14899)
   + d42ab0cfcce56b5e55c8bd94d0923d08758fdb5b:
     Fix default CPU for macOS and iOS (#14923)
   + ed7a10d6170049877a07cf27edaf8db65d17f77b:
     Add param file for def parser action (#14925)
   + e624aff6d63dd6264d7ff56ec9650b7a1aeb3a36:
     Normalize rpath entries to guard against missing default solib
     dir (#14929)
   + c1ecca22d2cb761bd094fcd40eb8b13e826e777e:
     Fix aggressive params file assumption (#14930)
   + c45838bd3e51bcd0c8c3e1a9b4a0e55cdf4b4f59:
     Fix precompiled libs not in runfiles of cc_shared_library
     (#14943)
   + 764614e0f0287125269e7a92e909a44624bcb360:
     Bzlmod: Allow multiple `use_extension`s on the same extension
     (#14945)
   + 85d7ed68fa7bd84a5a23baf0431cbb04d64d7fa6:
     Fix typo in `apple_common.platform` docs (#14958)
   + a6a430540879bd866dfbef5cd048b2a4ab6bd883:
     Yield a Proxy for addresses without protocol (#14956)
   + 698da7e563b76633c973ea3029b7e313b69545fd:
     Avoid merging URLs in HttpUtils (#14954)
   + b4804807fc2c184cc36df9e69e472942c01941b8:
     Make protocOpts() public. (#14952)
   + 61cfa1d01eefb0923e8e3029ab9e92fdfe77ff50:
     Do not hide BulkTransferException messages when there were more
     than one exception (#14986)
   + 0764821a8c1175fbcbca630d3681901244b33095:
     merkle_tree_cache: change default size to 1000 (#14984)
   + f15e0c7224ecc5473d4972afc436e28df35c4e5a:
     Add --experimental_repository_cache_urls_as_default_canonical_id
     to help detect broken repository URLs (#14989)
   + 87ef5ce4103be75e8d9935e071fa215a481536e1:
     Expose the logic to read user netrc file (#14990)
   + 785c7ecafa9b93e700e846397c3a13c320c1dbdd:
     Correct cpu and os values of `local_config_cc_toolchains`
     targets (#14995)
   + 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)
   + 6cd6a27d4480eff91258ef8258b5af1901acde65:
     Remote: Fix crashes with InterruptedException when using http
     cache. (#14999)
   + 91a580ad198a9d7f179c1822d55f75ba5318e2ce:
     Fix interface_library-only libraries_to_link for
     cc_shared_library (#15046)
   + 1345938867e5c0c381f46cccf889c7b2b20a867a:
     Fix coverage runfiles directory issue (#15047)
   + 95de355e4524a6339c0e807b60d333c36c40bdc7:
     Do not validate input-only settings in transitions (#15048)
   + f19d6107bca9aea7742bd66eb3080f29fcf3bd81:
     Filter out system headers on macOS. (#15020)
   + 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)
   + 6d26dc74da2602817d56b0507ec79394c35a3781:
     Support decompressing zstd tar archives for repository rules.
     (#15087)
   + 376cd472bbf7d81c7feb79563e7894cc3d74151a:
     Remote: Don't check TreeArtifact output (#15085)
   + 48b60d22bca0158d194b78481ff86b0ac251243f:
     osx_cc_wrapper: Only expand existing response files (#15090)
   + c771c43b870fb8618db7bdab6725ab40cac4976d:
     Remote: Fix crashes by InterruptedException when dynamic
     execution is enabled. (#15091)
   + 3b2d686f2976e66ca4f93b568f2262a88621855a:
     Use python3 on macOS (#15102)

Important changes:

  - alias() can now select() directly on constraint_value()

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

    Closes #14310.
  - Fixed an issue where Bazel could erroneously report a test passes
    in coverage mode without actually running the test.
  - 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.

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