Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

chore(deps): update dependency bazel to v7 #171

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Apr 9, 2024

This PR contains the following updates:

Package Update Change
bazel major 6.5.0 -> 7.4.1

Release Notes

bazelbuild/bazel (bazel)

v7.4.1

Compare Source


Release Notes:

v7.4.0

Compare Source

[!NOTE]
If you are looking for rolling releases, please visit this page.

Release 7.4.0 (2024-10-22)

Bazel 7.4.0 is a minor LTS release. It is fully backward compatible with Bazel 7.0 and contains selected changes by the Bazel community and Google engineers.

Configurability

  • Bazel now supports all characters in the rlocation and target paths of runfiles and can be run from workspaces with a space in their full path. (#​23912)

External Deps

  • Overrides in the root MODULE.bazel file are now ignored with --ignore_dev_dependency. (Overrides in non-root modules are already ignored.) (#​23550)
  • Repository rules instantiated in the same module extensions can now refer to each other by their extension-specified names in label attributes. (#​23585)
  • Bazel fetch and vendor command now supports --target_pattern_file for specifying target patterns. (#​23663)
  • Patches to the module file in single_version_override are now effective as long as the patch file lies in the root module. (#​23757)
  • override_repo and inject_repo can be used to override and inject repos in module extensions. (#​23938)
  • When using vendor mode, the vendor dir is automatically ignored while package loading (#​23919)

Remote Execution

  • Improve progress message in case there are no actions in flight, and display explicitly "no actions running" in that case. (#​23357)
  • Added support for using a remote cache that evicts blobs and doesn't have AC integrity check (e.g. HTTP cache). (#​23561)
  • Implemented disk cache garbage collection (#​23833)

C++ / Objective-C

  • The new cc_static_library rule produces a static library that bundles given targets and all their transitive dependencies. It has to be enabled via --experimental_cc_static_library. (#​23392)
  • Add conlyopts and cxxopts attributes to cc rules (#​23904)
  • Auto-load with language specific rules that're removed from Bazel with --incompatible_autoload_externally (#​23906)

Refer to the full list of commits for more details.

Acknowledgements:

This release contains contributions from many people at Google, as well as Alessandro Patti, Benjamin Peterson, Cornelius Riemenschneider, Daniel Wagner-Hall, David Sanderson, Dennis van den Berg, Fabian Meumertzheim, FaBrand, Fredrik Medley, George Gensure, Grzegorz Lukasik, Jamison Lahman, Jay Conrod, Jordan Mele, Keith Smiley, Laurent Le Brun, Lior Gorelik, Luis Padron, Michael Siegrist, Son Luong Ngoc, Tom Renn, and xinyu.wang.

Notice: Bazel installers contain binaries licensed under the GPLv2 with Classpath exception. Those installers should always be redistributed along with the source code.

Some versions of Bazel contain a bundled version of OpenJDK. The license of the bundled OpenJDK and other open-source components can be displayed by running the command bazel license. The vendor and version information of the bundled OpenJDK can be displayed by running the command bazel info java-runtime. The binaries and source-code of the bundled OpenJDK can be downloaded from our mirror server.

Security: All our binaries are signed with our public key 3D5919B.

v7.3.2

Compare Source


Release Notes:

v7.3.1

Compare Source


Release Notes:

v7.3.0

Compare Source


Release Notes:

v7.2.1

Compare Source


Release Notes:

v7.2.0

Compare Source


Release Notes:

Configurability:
+ aquery: `//foo:bar` now means "all configured targets with label `//foo:bar`" instead of "choose an arbitrary configured target with label `//foo:bar`". This is in line with cquery behavior. (#​22135)
+ Added a new flag `--incompatible_disable_native_repo_rules` to disable native repo rule usage in WORKSPACE. All native repo rules now have a Starlark counterpart that can be used in both WORKSPACE and Bzlmod; see #​22080 for more details. (#​22203)
+ Starlark command-line flags can now be referred to through `alias` targets. (#​22212)

ExternalDeps:
+ bzlmod `git_repository` now accepts the `strip_prefix` arg and passes it to the underlying `git_repository` call. (#​22137)
+ Added a new `include()` directive to `MODULE.bazel` files, which allows the root module file to be divided into multiple segments. (#​22204)
+ Fixed certain deadlocks in repo fetching with worker threads (`--experimental_worker_for_repo_fetching=auto`). (#​22261)
+ `print` statements in module files are now only executed for the root module and modules subject to non-registry overrides (e.g. `local_path_override`). (#​22263)
+ The new `refresh` value for `--lockfile_mode` behaves like the `update` mode, but additionally forces a refresh of mutable registry content (yanked versions and missing module versions) when switched to or from time to time while enabled. (#​22371)
+ `Label` instances passed to `print` or `fail` as positional arguments are now formatted with apparent repository names (optimized for human readability). (#​22460)
+ Changes to environment variables read via `getenv` now correctly invalidate module extensions. (#​22541)
+ Git merge conflicts in `MODULE.bazel.lock` files can be resolved automatically. See https://bazel.build/external/lockfile#automatic-resolution for the required setup. (#​22650)

OSS:
+ Bazel on Linux and BSD now respects the XDG_CACHE_HOME environment variable instead of assuming that ~/.cache/bazel is writable. (#​21817)

Performance:
+ Paths in the Linux sandbox are now again identical to those outside the sandbox, even with `--incompatible_sandbox_hermetic_tmp`. (#​22407)

Remote-Exec:
+ The combined coverage report produced via `--combined_report=lcov` is now announced on the BES via the new `CoverageReport` event. (#​22327)
+ The compact and full execution logs now contain start times for spawns (if available). (#​22341)

Rules-CPP:
+ The default Unix C++ toolchain now supports the `parse_headers` feature to validate header files with `--process_headers_in_dependencies`. (#​22369)

Starlark-Interpreter:
+ Starlark `min` and `max` buitins now allow a `key` callback, similarly to `sorted`. (#​21960)

Acknowledgements:

This release contains contributions from many people at Google, as well as bazel.build machine account, Brentley Jones, Cameron Martin, Daniel Wagner-Hall, Douglas Thor, Fabian Meumertzheim, George Gensure, hvd, Isaac Torres, Keith Smiley, Mark Elliot, oquenchil, Romain Chossart, Son Luong Ngoc, Spencer Putt, Thomas Weischuh, Xdng Yng, Xùdōng Yáng, Zheng Wei Tan.

v7.1.2

Compare Source

Baseline:  d798ebde6c6394203a87b5f1a6b62ecfc3880991

Release Notes:

+ Consider MODULE.bazel for workspace detection in bazel.sh (#​20594)
+ Auto-create deploy jars for Bazel `java_test` targets if requested (#​20602)
+ `java_binary` wrapper should forward `restricted_to` (#​20611)
+ Mount user-specified bind mounts before Bazel's own magic. (#​20609)
+ Fix bootstrapped Bazel binary (#​20612)
+ Modify the error message that occurs when a requested target does not… (#​20636)
+ Cherry-pick all presubmit.yml changes (#​20736)
+ Accept labels of aliases in config_setting. (#​20649)
+ Improve `use_repo_rule` error when not referencing a `repository_rule` (#​20732)
+ Attempt to make main repo mapping inverse more efficient (#​20633)
+ Retry binding to ipv6 localhost (#​20755)
+ Print interactive sandboxed shell command with `--sandbox_debug` (#​20769)
+ Fix two issues with --incompatible_sandbox_hermetic_tmp that manifested themselves when the output base was under /tmp (#​20766)
+ Optimize prefetchInputs. (#​20719)
+ Fix crash on `bazel mod` error containing `%` (#​20651)
+ Cover missing cases during module extension label normalization (#​20630)
+ Do not print errors when repository rules are interrupted (#​20662)
+ Restart at most once when prepopulating repository rule environment (#​20643)
+ Add profiles to the call sites of `updateRunfiles` (#​20803)
+ Fixes for Bazel's own integration tests fail locally on Linux (#​20822)
+ Remove unnecessary `cc_test` coverage handling (#​20641)
+ Fix NPE in BzlmodRepoRuleFunction (#​20829)
+ Return labels instead of strings from DescribableExecutionUnit methods. (#​20788)
+ Introduce a SpawnLogContext interface. (#​20842)
+ Fix `common` `.bazelrc` behavior for flag expansions (#​20844)
+ Add a profiler span for fetching repositories. (#​20852)
+ Make Bazel's RAM estimate container aware (#​20644)
+ Auto-create deploy jars for Bazel `java_test` targets if requested (#​20762)
+ Ignore read-only errors when updating the `mtime` of the `install_base` (#​20648)
+ Add profiling to `remoteActionBuildingSemaphore.acquire()` (#​20645)
+ DigestUtils: avoid throwing on invalid digest function name (#​20650)
+ Use a larger buffer size for `java.util.zip.*Stream` classes (#​20642)
+ Flip flag `--experimental_use_semaphore_for_jobs`. (#​20646)
+ RemoteSpawnRunner: record inbetween phases in timing profile (#​20647)
+ Add fastutil 7.2.1 dependency (#​20854)
+ Allow repo rules to download multiple things in parallel. (#​20856)
+ Add support for tmpfs mounts under `/tmp` with hermetic tmp (#​20859)
+ Add new flag `--enable_workspace` that allows us to disable WORKSPACE… (#​20855)
+ Add support for bind mounts under `/tmp` with hermetic tmp (#​20772)
+ Document `--digest_function` startup flag (#​20864)
+ Add flag `experimental_throttle_remote_action_building` (#​20858)
+ Remove suffix from fastutil alias. (#​20872)
+ Move StableSort into the exec package.
+ Test that missing spawn outputs are logged correctly.
+ Simplify computeDigest.
+ Add SpawnBuilder#with{Inputs,Tools} overloads accepting a NestedSet.
+ Correctly log paths for runfiles and filesets.
+ Report empty files in the spawn log.
+ Propagate the tool bit to logged directory inputs.
+ Move some more common logic into SpawnLogContext.
+ Introduce a new compact execution log format.
+ Apply zstd compression to the compact execution log.
+ Avoid unnecessary overhead when determining whether an action input is a directory.
+ Offer Shell completion for top-level packages without subpackages (#​20879)
+ Increase maximal length of profile span for repository function calls (#​20907)
+ Still generate a WORKSPACE file in repo rules if --enable_workspace is set (#​20914)
+ Read authentication information from .netrc (#​20915)
+ deps: rules_python 0.4.0 -> 0.22.0 (#​20916)
+ Avoid emitting canonical labels into generated repos (#​20917)
+ python: make incompatible_python_disallow_native_rules work for top-level external repo targets (#​20923)
+ Remove flag guarding for the AndroidIdeInfo provider (#​20932)
+ Point _virtual_includes to stable locations so IDE integrations survive builds (#​20946)
+ [rfc] Allow repository rules to lazily declare environment variable deps (#​20944)
+ Replaced usage of rev with awk in bash runfiles (#​20934)
+ Cherry pick a few changes to address flaky tests (#​20956)
+ Cherry-pick the change to reduce repository invalidations to Bazel 7.1 (#​20949)
+ The label API shakeup & docs cleanup (#​20977)
+ New docs for labels, repos, etc (#​20978)
+ Add support for arbitrary headers to rctx.download[_and_extract] (#​20979)
+ Show a warning message when the credential helper invocation fails (#​20992)
+ Fix singlejar resource mapping for external repositories (#​20989)
+ Remove user specific path from the lockfile (Fixes #​19621) (#​21009)
+ Also report cycles involving WORKSPACE from BzlmodRepoCycleReporter (#​21013)
+ Fix -fatal_warnings on macOS (#​21018)
+ Cherry-picks for module extension repo mapping usage tracking (#​21033)
+ bzlmod: support git repos in source.json (#​21036)
+ Add `bazel mod dump_repo_mapping` (#​21023)
+ Cherry-picks for elimination of repo rule restarts (#​21082)
+ Fix inconsistent dep graph stubs in Bzlmod tests (#​21085)
+ Distinguish the disk and remote caches in the action progress status. (#​21084)
+ Clarify where to find the definition of the --experimental_remote_scrubbing_config configuration format. (#​21089)
+ Disable `--legacy_external_runfiles` in Bazel tests (#​21086)
+ Follow directory symlink in RemoteActionFileSystem#getDirectoryEntries(). (#​21088)
+ Treat the inability to load the Windows filesystem JNI as an error. (#​21090)
+ Fix up permissions error in getInputStream, like we already do for getOutputStream. (#​21087)
+ Force output checking for incremental run commands without the bytes. (#​20988)
+ Remove visionos_x86_64 CPUs (#​21022)
+ Close test.err before deleteing it (#​21020)
+ Fix linker feature detection being performed on wrong linker (#​20990)
+ Add an option to set a minimum size threshold for zstd blob compression. (#​21124)
+ Publish RCs to GitHub (#​21127)
+ Avoid using `InputStream.available()` to detect EOF while reading delimited protos. (#​21143)
+ Starlark: reuse positional array in native calls where possible (#​21144)
+ Harmonize BUILD files. (#​21145)
+ Add bash completion for external targets (#​21149)
+ Make some minor adjustments to the compact execution log format and document it better. (#​21146)
+ Optimize the execution log sorter by using reference equality. (#​21147)
+ Update to Turbine 0.4.0 (#​21161)
+ Split StableSort into a separate target. (#​21152)
+ Document that the compact execution log isn't guaranteed to be serialized in increasing ID order. (#​21165)
+ Fix the comment for MessageOutputStream#write(). (#​21166)
+ Make repo marker files sensitive to repo mapping changes (#​21172)
+ Include the digest hash function in the compact execution log. (#​21174)
+ Report unresolved symlinks as such in the execution log. (#​21177)
+ Correctly handle unresolved symlinks when they appear in the inputs. (#​21181)
+ Add missing close(). (#​21183)
+ Add a profile span for building the upload manifest. (#​21184)
+ Remove obsolete comments and dividers. (#​21185)
+ Implement a new execution log conversion tool. (#​21187)
+ Implement a new execution log conversion tool. (#​21192)
+ Introduce a MessageInputStream abstraction, mirroring MessageOutputStream. (#​21207)
+ Upgrade to use Bazel 7.0.2 (#​21208)
+ Do not store the repository name in `RepoSpec` (#​21209)
+ Make sure we build as well as test //src/tools/execlog/... on CI. (#​21216)
+ Teach ExecLogConverter to read the compact format. (#​21223)
+ Switch macOS minimum version flag to gcc compatible version (#​21219)
+ Update default visionOS CPU to sim_arm64 (#​21240)
+ Avoid exception-based control flow in RemoteActionFileSystem#stat. (#​21236)
+ Cherry-pick: linker_param_file only added to command line if it starts with "@​" (#​21235)
+ Fixes for experimental extend rule and subrule functionality (#​21237)
+ Fix NPE in ResourceManager when collecting local resource estimation in the profiler. (#​21229)
+ Optimize RemoteActionFileSystem#readdir for the tree artifact input case. (#​21251)
+ Document --incompatible_disallow_unsound_directory_outputs. (#​21252)
+ Also path map transitive header jar paths with direct classpath optimization (#​21227)
+ Error on invalid path characters in `.bazelignore` (#​21259)
+ Mark gcc-<version> as `gcc` instead of `compiler` in Unix CC toolchain (#&#8203;21224)
+ Avoid exception-based control flow in RAFS#getDigest and RAFS#getFastDigest. (#&#8203;21264)
+ Add `add_exports/add_opens` to bazel java_binary deploy jars (#&#8203;21270)
+ Manipulate the local filesystem directly in the writeLocalFile test helper. (#&#8203;21272)
+ Improve the documentation for PathFragment methods dealing with segments. (#&#8203;21275)
+ Canonicalize the parent path in RemoteActionFileSystem#delete. (#&#8203;21282)
+ Revert "Also path map transitive header jar paths with direct classpath optimization" (#&#8203;21281)
+ Make it possible to toggle cache key scrubbing by rule kind (#&#8203;21276)
+ Fix a hanging issue with skymeld & `--combined_report=lcov`. (#&#8203;21271)
+ Canonicalize the parent path in RemoteActionFileSystem#renameTo. (#&#8203;21285)
+ Exclude `//src/test/py/bazel:mod_command_test` from RBE tests due to frequent flaky timeouts.
+ Add `bazel mod tidy` (#&#8203;21265)
+ Don't use worker threads for repo fetching during Skyframe er… (#&#8203;21305)
+ Fix flakiness in //src/test/shell/bazel:starlark_repository_test (#&#8203;21309)
+ Document best practice of avoiding extensions directly specifying repository names (#&#8203;21300)
+ Allow `@repo_name` labels in override attributes (#&#8203;21313)
+ Reproducible extension (#&#8203;21306)
+ Omit unique module versions from canonical repo names (#&#8203;21316)
+ Add `Label.to_display_form()` (#&#8203;21312)
+ Clarify the purpose and overall behavior of RemoteActionFileSystem. (#&#8203;21294)
+ Make SpawnLogConvert an abstract class instead of an interface. (#&#8203;21325)
+ Add support for additional command profiler event types. (#&#8203;21327)
+ Remove the fileSize parameter from DigestUtils. (#&#8203;21328)
+ Optimize RemoteActionFileSystem#resolveSymbolicLinks by caching intermediate results in a trie. (#&#8203;21333)
+ Mark `use_repo_rule` extension as reproducible (#&#8203;21335)
+ Make SpawnLogContext interruptible. (#&#8203;21337)
+ Document --cache_computed_file_digests. (#&#8203;21326)
+ Generate a lockfile for the distribution archive on the fly (#&#8203;21338)
+ Introduce --local_resources flag (#&#8203;21331)
+ Cherry-pick recent changes to fix CI flakiness and breakages (#&#8203;21349)
+ Clear the file digests cache on clean. (#&#8203;21346)
+ Parallelize TreeArtifactValue.visitTree across files instead of subdirectories. (#&#8203;21347)
+ Temporarily hardcode rules_java repository name (#&#8203;21356)
+ Remove unnecessary test assertions to fix flakiness. (#&#8203;21354)
+ Make it possible to avoid an extra stat() when obtaining a digest from the cache. (#&#8203;21353)
+ Collect directory contents in parallel in CompactSpawnLogContext. (#&#8203;21361)
+ Introduce --default_test_resources flag (#&#8203;21311)
+ python: rules_python 0.22.0 -> 0.22.1 soas to register Python toolchain by default (#&#8203;21369)
+ Add vendor mode (#&#8203;21366)
+ Clarify the behavior of --incompatible_remote_symlinks in the presence of a dangling symlink. (#&#8203;21363)
+ Handle symlinks in a more consistent manner in UploadManifest. (#&#8203;21371)
+ Set the executable bit on files in output directories uploaded to a disk or remote cache. (#&#8203;21376)
+ Call out that TreeArtifactVisitor.visit is called in a nondeterministic order. (#&#8203;21377)
+ Optimize out a stat call. (#&#8203;21388)
+ Compute output directories in parallel when building the upload manifest. (#&#8203;21386)
+ Fix rule definition environment for repo rules (#&#8203;21397)
+ Share classpath `NestedSet` between full and header compile actions (#&#8203;21389)
+ Emit labels in display form in Java rules (#&#8203;21395)
+ Fetch refactor and mod command fix (#&#8203;21385)
+ Implement `describeKey` for more actions (#&#8203;21421)
+ Let scrubbed actions fall back to local execution when remote execution is enabled. (#&#8203;21384)
+ Publish the new execution log format to the build event protocol. (#&#8203;21417)
+ Ensure that the mtime of an AC entry is smaller, not larger, than the CAS blobs it references. (#&#8203;21416)
+ Pass the name of the classpath manifest jar to JacocoCoverageRunner (#&#8203;21413)
+ Traverse symlinks to directories while collecting a TreeArtifactValue. (#&#8203;21418)
+ Correctly handle file inputs/outputs with directory contents in the execution log. (#&#8203;21427)
+ Upgrade to async-profiler v3.0. (#&#8203;21428)
+ Avoid a superfluous stat() in DigestUtil. (#&#8203;21400)
+ [credentialhelper] Respect `expires` field from helper (#&#8203;21429)
+ Improve performance of --reuse_sandbox_directories (#&#8203;21433)
+ [credentialhelper] Update flag doc to point to more convenient usage instructions (#&#8203;21441)
+ Repo file/dir watching API (#&#8203;21435)
+ Clarify the meaning of Dirent.Type.UNKNOWN. (#&#8203;21434)
+ Add a native image of turbine to the prebuilt Java tools (#&#8203;21426)
+ Update java_tools v13.4 / rules_java 7.4.0 (#&#8203;21359)
+ Automated rollback of commit b11fa7a7c7fdb37012c7a442b16f6fdcf90b9177. (#&#8203;21448)
+ Remove the restriction that relative symlinks in a tree artifact may not point outside the tree. (#&#8203;21449)
+ Revert "Add `Label.to_display_form()`" (#&#8203;21454)
+ Do not record any repo mapping entries in the RepoMappingRecorder for WORKSPACE repo rules (#&#8203;21457)
+ Reland "Also path map transitive header jar paths with direct classpath optimization" (#&#8203;21458)
+ Backport CI test configs (#&#8203;21456)
+ Use execution info instead of hard-coded mnemonics for Java path mapping (#&#8203;21461)
+ Always decide whether to scrub an input by its effective path. (#&#8203;21472)
+ Set RC branch when creating GitHub releases (#&#8203;21477)
+ Fix vendor existing repo (#&#8203;21487)
+ [test][windows] Export BAZEL_TEST=1 on windows (#&#8203;21494)
+ Enable aar_import JNI libs to work with --android_platforms. (#&#8203;21502)
+ Fix stale trash dir not cleaned up on worker creation (#&#8203;21510)
+ Fix genrule autostamping in bazel (#&#8203;21512)
+ Remove --host_jvm_args=-Djava.net.preferIPv6Addresses=true (#&#8203;21546)
+ Passthrough HTTP headers to remote downloader service (#&#8203;21503)
+ [credentialhelper] Support paths relative to `%install_base%` (#&#8203;21532)
+ Update LibrariesToLinkCollector.java for .dll suffix stripping (#&#8203;21524)
+ Backport changes for updating default lockfile used in integration tests. (#&#8203;21547)
+ Fix a flaky test by avoiding leaking the eager capability RPC thread. (#&#8203;21550)
+ Add a profiler span for the findMissingDigests call associated with an upload. (#&#8203;21552)
+ Move the disk cache reads and writes into a thread pool. (#&#8203;21551)
+ Lazily open files to be uploaded to an HTTP cache. (#&#8203;21549)
+ Exclude convenience symlinks after changing the output base (#&#8203;21505)
+ StarlarkBaseExternalContext.java: propagate error message when deleting temporary directory failed (#&#8203;21555)
+ Fix `bazel fetch` by replacing query with cquery for underlying implementation (#&#8203;21567)
+ Fix watching paths in undefined repos in repo rules (#&#8203;21575)
+ Implicit dependencies should be visible to rule/aspect definitions in `.bzl` files in the same package (#&#8203;21577)
+ Disable some tests because of JDK21 (#&#8203;21595)
+ Expose the ApkInfo provider constructor to Starlark. (#&#8203;21588)
+ Add multiplex sandboxing support to JavaBuilder (#&#8203;21598)
+ Attempt to fix cancellation crash in repo fetching w/ worker thread (#&#8203;21599)
+ Move compile StarlarkMethod back to CcModuleAPI (#&#8203;21605)
+ Expose AndroidIdeInfo in android_common (#&#8203;21607)
+ Release 7.1.0 (2024-03-11)
+ Update centos7 platform in build_bazel_binaries.yml (#&#8203;21644)
+ Fix `bazel mod tidy` failure with no changes (#&#8203;21662)
+ Update .bazelversion to 7.1.0 (#&#8203;21664)
+ Let native Turbine image find `ct.sym` with non-hermetic `java_runtime` (#&#8203;21670)
+ Actually use shouldPublish() to determine whether to publish the execution log to the BEP. (#&#8203;21671)
+ Also inject a failure for createWritableDirectory when testing that ActionOutputDirectoryHelper propagates exceptions. (#&#8203;21683)
+ Fix race condition and add more logging for null entry error message (#&#8203;21692)
+ Allow any canonical repo name to be used with `bazel mod show_repo` (#&#8203;21694)
+ Fix two `bazel mod tidy` crashes (#&#8203;21700)
+ Cherry-pick Java execution info improvements (#&#8203;21703)
+ Disable //src/test/shell/bazel:srcs_test on Intel macOS (#&#8203;21707)
+ Fix sandbox cleanup crashing after server restart (#&#8203;21733)
+ Revert "Fix `bazel fetch` by replacing query with cquery for … (#&#8203;21735)
+ Release 7.1.1 (2024-03-21)
+ Implement RemoteActionFileSystem#statIfFound correctly when the path cannot be canonicalized (#&#8203;21889)
+ Don't upload remote input to remote cache (#&#8203;21941)
+ Do not watch `.netrc` in `read_netrc` (#&#8203;22186)
+ Set public visibility for R8 desugar binary (#&#8203;22176)

Acknowledgements:

This release contains contributions from many people at Google, as well as Alessandro Patti, Artem V. Navrotskiy, bazel.build machine account, Brentley Jones, Cameron Martin, Chi Wawng, Christian Scott, Cristin Donoso, David Ostrovsky, Ed Schouten, Fabian Meumertzheim, Gunnar Wagenknecht, Jordan Mele, Keith Smiley, lberki, Nikhil Kalige, oquenchil, Patrick Balestra, Rahul Butani, Ryan Beasley, Siddhartha Bagaria, Son Luong Ngoc, Sushain Cherivirala, thesayyn, Tianyu Geng, Viktor Kustov, Xdng Yng, Xùdōng Yáng, Yannic, Yannic Bonenberger.

v7.1.1

Compare Source

[!NOTE]
If you are looking for rolling releases, please visit this page.

Release 7.1.1 (2024-03-21)

Baseline: 9b39cca

Bazel 7.1.1 is a patch LTS release. It is fully backward compatible with Bazel 7.0 and contains selected changes by the Bazel community and Google engineers.

External Deps

  • Fix bazel mod tidy failure with no changes (#​21662)
  • Allow any canonical repo name to be used with bazel mod show_repo (#​21694)
  • Fix two bazel mod tidy crashes (#​21700)
  • Reverted the 7.1.0 change to make bazel fetch use cquery under the hood (#​21735)

Local Execution

  • Also inject a failure for createWritableDirectory when testing that ActionOutputDirectoryHelper propagates exceptions. (#​21683)
  • Fix race condition and add more logging for null entry error message (#​21692)
  • Fix sandbox cleanup crashing after server restart (#​21733)

Performance

  • Actually use shouldPublish() to determine whether to publish the execution log to the BEP. (#​21671)
  • Use execution info instead of hard-coded mnemonics for Java path mapping (#​21703)

Java

  • Let native Turbine image find ct.sym with non-hermetic java_runtime (#​21670)

Acknowledgements:

This release contains contributions from many people at Google, as well as Fabian Meumertzheim.

Notice: Bazel installers contain binaries licensed under the GPLv2 with Classpath exception. Those installers should always be redistributed along with the source code.

Some versions of Bazel contain a bundled version of OpenJDK. The license of the bundled OpenJDK and other open-source components can be displayed by running the command bazel license. The vendor and version information of the bundled OpenJDK can be displayed by running the command bazel info java-runtime. The binaries and source-code of the bundled OpenJDK can be downloaded from our mirror server.

Security: All our binaries are signed with our public key 3D5919B.

v7.1.0

Compare Source

[!NOTE]
If you are looking for rolling releases, please visit this page.

Release 7.1.0 (2024-03-11)

Baseline: 8f4b115

Bazel 7.1.0 is a minor LTS release. It is fully backward compatible with Bazel 7.0 and contains selected changes by the Bazel community and Google engineers.

Configurability

  • genrule now supports setting stamp = -1 to request conditional stamping (based on the value of the build's --stamp flag). (#​21512)

External Deps

  • Added a flag --enable_workspace (defaults to True) that allows the user to completely disable WORKSPACE logic when turned off. We plan to change the default to False with Bazel 8. (#​20365)
  • Added new repo rule and module extension APIs to watch arbitrary files or directory trees: (#​21435)
    • New methods repository_ctx.watch() and module_ctx.watch() allow changes to a path to trigger a refetch/re-evaluation of the repo/extension.
    • Several methods such as repository_ctx.read() and repository_ctx.template() gain a new watch parameter to allow them to watch for changes to the path in question.
    • path.readdir() now watches for changes under the directory by default.
    • New method repository_ctx.watch_tree() allows changes to anything transitively under a directory tree to trigger a repo refetch.
  • Added path.is_dir to detect whether a path points to a directory.
  • Added a new method repository_ctx.getenv, which allows Starlark repository rules to declare environment variable dependencies during the fetch, instead of upfront using repository_rule.environ. (#​20944)
  • The flag --experimental_worker_for_repo_fetching now defaults to auto, which uses virtual threads from JDK 21 if it's available. This eliminates restarts during repo fetching. (#​21082)
  • The new bazel mod tidy subcommand automatically updates use_repo calls in the MODULE.bazel file for extensions that use module_ctx.extension_metadata. (#​21265)
  • bazel mod dump_repo_mapping <canonical repo name>... returns the repository mappings of the given repositories in NDJSON. This information can be used by IDEs and Starlark language servers to resolve labels with --enable_bzlmod. (#​21023)
  • Added init_submodules attribute to git_override. Registries now support the git_repository type in source.json. (#​21036)
  • Bazel's Bash completion can now complete external repository labels when using --enable_bzlmod. (#​21149)
  • Fixed bazel fetch by replacing query with cquery as underlying implementation (#​21567, #​13847).
  • The scheme for generating canonical repository names has changed to improve cacheability of actions across dependency version updates. Note that canonical names are not considered to be public API and can change at any time. See https://bazel.build/external/module#repository_names_and_strict_deps for advice on how to avoid hardcoding canonical repository names. (#​21316)
  • Various methods and fields related to labels and repos are deprecated in favor of new options with clearer naming and intent. The deprecated APIs can be disabled by setting --noincompatible_enable_deprecated_label_apis. (#​20977)
    • native.repository_name() is deprecated in favor of the new native.repo_name().
    • Label.workspace_name is deprecated in favor of the new Label.repo_name.
    • Label.relative() is deprecated in favor of the new Label.same_package_label() alongside the existing native.package_relative_label() and Label().

Performance

  • Make Bazel's RAM estimate container aware (#​20644)
    • On Linux, Bazel's RAM estimate for the host machine is now aware of container resource limits.
    • On macOS, Bazel no longer consistently overestimates the total RAM by ~5% (1024^2/1000^2).
    • On Windows, Bazel's RAM estimate is now generally more accurate as it is no longer influenced by JVM heuristics.
  • Added a new --experimental_execution_log_compact_file flag to produce an execution log in a leaner format and with less runtime overhead. The //src/tools/execlog:converter tool may be used to convert it into one of the preexisting --execution_log_{json,binary}_file formats.
  • Reduced the execution phase overhead for actions that create tree artifacts with a very large number of files (tens or hundreds of thousands).
  • Made sandboxing and sandboxed workers faster. This is achieved by deleting files asynchronously, reusing runfiles, reducing copying and not stashing unnecessary tmp directories.

Python

  • Fixed --incompatible_python_disallow_native_rules to work with targets at the top level (e.g. "//:foo") (#​17773)
  • rules_python version increased from 0.4.0 to 0.22.1 in bazel_tools builtin module.

Remote Execution

  • Bazel now respects expires from Credential Helpers. (#​21429)

Acknowledgements:

This release contains contributions from many people at Google, as well as Alessandro Patti, Artem V. Navrotskiy, Brentley Jones, Cameron Martin, Christian Scott, Cristin Donoso, David Ostrovsky, Ed Schouten, Fabian Meumertzheim, Gunnar Wagenknecht, Jordan Mele, Keith Smiley, Nikhil Kalige, Patrick Balestra, Rahul Butani, Ryan Beasley, Son Luong Ngoc, Sushain Cherivirala, thesayyn, Viktor Kustov, Yannic Bonenberger.

Notice: Bazel installers contain binaries licensed under the GPLv2 with Classpath exception. Those installers should always be redistributed along with the source code.

Some versions of Bazel contain a bundled version of OpenJDK. The license of the bundled OpenJDK and other open-source components can be displayed by running the command bazel license. The vendor and version information of the bundled OpenJDK can be displayed by running the command bazel info java-runtime. The binaries and source-code of the bundled OpenJDK can be downloaded from our mirror server.

Security: All our binaries are signed with our public key 3D5919B.

v7.0.2

Compare Source

[!NOTE]
If you are looking for rolling releases, please visit this page.

Release 7.0.2 (2024-01-25)

Baseline: 2634a6e

Bazel 7.0.2 is a patch LTS release. It is fully backward compatible with Bazel 7.0 and contains selected changes by the Bazel community and Google engineers.

External Deps

  • Disregard WORKSPACE while verifying lockfile repo mapping entries in extension eval (#​21003)

Acknowledgements:

This release contains contributions from people at Google.

Notice: Bazel installers contain binaries licensed under the GPLv2 with Classpath exception. Those installers should always be redistributed along with the source code.

Some versions of Bazel contain a bundled version of OpenJDK. The license of the bundled OpenJDK and other open-source components can be displayed by running the command bazel license. The vendor and version information of the bundled OpenJDK can be displayed by running the command bazel info java-runtime. The binaries and source-code of the bundled OpenJDK can be downloaded from our mirror server.

Security: All our binaries are signed with our public key 3D5919B.

v7.0.1

Compare Source

[!NOTE]
If you are looking for rolling releases, please visit this page.

Baseline: d798ebd

Bazel 7.0.1 is a patch LTS release. It is fully backward compatible with Bazel 7.0 and contains selected changes by the Bazel community and Google engineers.

C++ / Objective-C

  • Fix linker feature detection being performed on wrong linker (#​20901)

External Deps

  • Let module extensions track calls to Label() (#​20750)
  • Fix bootstrapped Bazel binary (#​20612)
  • Attempt to make main repo mapping inverse more efficient (#​20625)
  • Let .bzl files record their usages of repo mapping (#​20848)
  • Consider MODULE.bazel for workspace detection in bazel.sh (#​20594)
  • Avoid emitting canonical labels into generated repos (#​20840)

Java

  • Auto-create deploy jars for Bazel java_test targets if requested (#​20602)
  • java_binary wrapper should forward restricted_to (#​20611)
  • Fix singlejar resource mapping for external repositories (#​20904)

Local Execution

  • Mount user-specified bind mounts before Bazel's own magic. (#​20609)
  • Print interactive sandboxed shell command with --sandbox_debug (#​20734)
  • Fix two issues with --incompatible_sandbox_hermetic_tmp that manifested themselves when the output base was under /tmp (#​20718)
  • Add support for bind mounts under /tmp with hermetic tmp (#​20749)

Remote Execution

  • Force output checking for incremental run commands without the bytes. (#​20881)

Acknowledgements:

This release contains contributions from many people at Google, as well as David Ostrovsky, Fabian Meumertzheim, Siddhartha Bagaria, Tianyu Geng.

Notice: Bazel installers contain binaries licensed under the GPLv2 with Classpath exception. Those installers should always be redistributed along with the source code.

Some versions of Bazel contain a bundled version of OpenJDK. The license of the bundled OpenJDK and other open-source components can be displayed by running the command bazel license. The vendor and version information of the bundled OpenJDK can be displayed by running the command bazel info java-runtime. The binaries and source-code of the bundled OpenJDK can be downloaded from our mirror server.

Security: All our binaries are signed with our public key 3D5919B.

v7.0.0

Compare Source

Baseline:  d60ce2c7c86393638c77698c00c2168a7a936a53

Release Notes:

+ **[Incompatible]** 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 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).
+ The `aquery` and `cquery` commands now respect the `--query_file` flag just like the `query` command.
+ **[Incompatible]** the --experimental_async_execution flag is now a no-op.
+ **[Incompatible]** --experimental_replay_action_out_err is not a no-op.
+ **[Incompatible]** `cquery --output=files` also outputs source files.
+ removed outdated ctx.host_fragments
+ **[Incompatible]** When multiple --deleted_packages options are passed on the command line, they will be concatenated instead of the latest one taking effect.
+ removed outdated ctx.host_configuration
+ **[Incompatible]** JSON profile: Use doubles instead of strings for counter series.
+ Now that the host configuration is finished, `genrule` should prefer the use of `tools` and stop using `exec_tools`.
+ **[Incompatible]** --experimental_build_transitive_python_runfiles is flipped to false. See #&#8203;16303 for details
+ **[Incompatible]** --incompatible_python_disable_py2 is flipped to true. See #&#8203;17293 for details.
+ Update Android manifest merger to v30.1.3, and also drop support for legacy (pre-D8) desugaring.
+ Correctly encode double value positive infinity as "inf" instead of "+inf" for textprotos.
+ **[Incompatible]** When remote cache evicts blobs, Bazel will exit with code 39.
+ Add --use_target_platform_for_tests which uses the target platform for executing tests instead of the execution platform.
+ **[Incompatible]** `--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`)
+ 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 @&#8203;bazel_tools//platforms with or without the flag will throw error with message "Constraints from @&#8203;bazel_tools//platforms have been removed. Please use constraints from @&#8203;platforms repository embedded in Bazel, or preferably declare dependency on https://github.com/bazelbuild/platforms"
+ **[Incompatible]** Bazel's local CPU resource on Linux is now container aware. Use `--local_cpu_resources`, `--loading_phase_threads` or `--jobs` to override.
+ 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.
+ @&#8203;bazel_tools//config:common_settings.bzl has been removed. Use @&#8203;bazel_skylib//rules:common_settings.bzl instead.
+ **[Incompatible]** `copy_from_rule` is exec_groups is deprecated (https://github.com/bazelbuild/bazel/issues/17668).
+ cc_shared_library is no longer experimental, see https://github.com/bazelbuild/bazel/issues/16709 for details
+ **[Incompatible]** --legacy_bazel_java_test is now a no-op
+ The flag `--distinct_host_configuration` is removed. It has been a no-op since Bazel 6.0.0.
+ Add `--skip_incompatible_explicit_targets` option
+ **[Incompatible]** `--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
+ **[Incompatible]** Remove 'darwin' as a CPU value, use 'darwin_x86_64' instead
+ cc_test can now be configured by using a native.toolchain().
+ 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`
+ **[Incompatible]** Remove high priority workers functionality from blaze.
+ [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`
+ Added a new `max_compatibility_level` attribute to the `bazel_dep` directive, which allows version selection to upgrade a dependency up to the specified compatibility level.
+ `--experimental_remote_grpc_log` has been renamed to `--remote_grpc_log`
+ `--incompatible_remote_build_event_upload_respect_no_cache` is now a no-op.
+ json.decode now takes an optional `default` positional parameter; if this parameter is specified and decoding fails, json.decode will return the `default` value instead of failing Starlark evaluation.
+ --experimental_repository_disable_download is now promoted to stable and is also available under the name --repository_disable_download .
+ `applicable_licenses` is no longer allowed on the `platform` rule. Additionally, `default_package_metadata` from any `package` rule will not be applied.
+ **[Incompatible]** Duplicates in <rule-inputs> when using `query --output=xml --aspect_deps=precise` are removed. Added flag `--proto:include_attribute_source_aspects` that will include a new field `source_aspect_name` to the `Attribute` message that indicates the source aspect that the attribute comes from.
+ Options specified on the pseudo-command `common` in `.rc` files are now ignored by commands that do not support them as long as they are valid options for *any* Bazel command. Previously, commands that did not support all options given for `common` would fail to run. These previous semantics of `common` are now available via the new `always` pseudo-command.
+ **[Incompatible]** `--incompatible_check_sharding_support` is enabled by default. Sharded tests with test runners that do not properly advertise support for test sharding will fail. Refer to https://github.com/bazelbuild/bazel/issues/18339 for migration advice.
+ the 'default' param of json.decode can now be used as a keyword parameter.
+ As a transitional step in a larger refactoring, rule transitions are applied twice. Once during dependency resolution and once right before analysis of those rules. After the refactoring is complete, rule transitions will be applied only once.
+ Add aquery --output=streamed_proto which writes a stream of length delimited ActionGraphContainer containing a single Artifact, Action, Target, DepSetOfFiles, Configuration, AspectDescriptor, RuleClass, PathFragment proto. This breaks up the ActionGraphContainer into multiple which will prevent large protos from crashing blaze.
+ (BEP) TargetConfigured events will be marked aborted instead of published when there is an analysis error. This is motivated by a low level Blaze change aimed at improving scalability.
+ **[Incompatible]** cc_binary targets with dynamic_deps attributes no longer link indirect dynamic_deps on Unix. This might be an incompatible change if you are using RUNPATHs (instead of RPATHs) in your cc_shared_libraries. Enable the feature "exclude_bazel_rpaths_in_transitive_libs" or "use_rpath_instead_of_runpath" for those cc_shared_libraries.
+ Enable starlark_doc_extract - a native rule for Starlark documentation extraction. This rule is intended mainly for internal use by Stardoc.
+ **[Incompatible]** Remove deprecated and unused `--experimental_show_artifacts` flag.
+ Added the target path of an UnresolvedSymlink action to the aquery results
+ Additional source inputs can now be specified for compilation in cc_library targets using the additional_compiler_inputs attribute, and these inputs can be used in the $(location) function.
+ More descriptive error messages for unexpected cc absolute includes; unexpected absolute includes for cc compiles shouldn't be reported as "undeclared inclusion(s)"
+ Enable C++ branch coverage if gcov version is 8 or newer.
+ Deduplicates the result of split transitions uniformly, regardless of whether they are Starlark or native transitions. This used to apply only if either the attribute or rule transition contained a Starlark transition.
+ Support for optimizers rewriting baseline profiles.
+ This is a breaking change. `cc_host_toolchain_alias` rule is obsolete and can be interchangeably used with `cc_toolchain_alias` rule.
+ Fixes non-ascii arguments written to parameter files as mojibake.
+ NA
+ The `genrule` attribute `exec_tools` will be removed in a future Bazel release. Please follow directions at #&#8203;19132 to migrate away from it.
+ **[Incompatible]** Removed multi_arch_split, use transition_support.apple_platform_split_transition from rules_apple instead.
+ Supports for android_binary.startup_profiles attribute.
+ **[Incompatible]** Removed apple_crosstool_transition, use transition_support.apple_rule_transition from rules_apple instead.
+ **[Incompatible]** Drop deprecated 'transitive_deps', 'transitive_runtime_deps' from JavaInfo
+ **[Incompatible]** The --android_include_proguard_location_references flag is not supported anymore.
+ **[Incompatible]** The --apple_compiler command line option is not available anymore.
+ `rule()` and `attr.*` can no longer be (pointlessly) called during WORKSPACE evaluation and repository rule evaluation.
+ Expands baseline profile wildcards before optimizer tools see them.
+ **[Incompatible]** --no_proguard_location_reference is now added unconditionally to the command line of aapt2.
+ **[Incompatible]** The command line flag --apple_enable_auto_dsym_dbg is not supported anymore.
+ **[Incompatible]** The --apple_compiler command line option is not available anymore.
+ **[Incompatible]** py_transitions top-level was removed.
+ Android resources will no longer propagate through neverlinked libraries by default.
+ Set Android Databinding to v2 and Databinging AndroidX to true and remove support for Databinding V1.
+ Added whether or not a FileWrite action's output is executable to the aquery results
+ --use_single_jar_apk_builder is removed. It's been a no-op for years.
+ **[Incompatible]** --incompatible_merge_fixed_and_default_shell_env is flipped to true. See #&#8203;19317 for details.
+ JVM options in environment variables JAVA_TOOL_OPTIONS and JDK_JAVA_OPTIONS now do not get to the server; use --host_jvm_args instead.
+ --remote_download_minimal no longer implies --nobuild_runfile_links.
+ attr objects in Starlark now use value equality rather than reference equality.
+ **[Incompatible]** `cmd_helper` module was removed
+ **[Incompatible]** `ctx.new_file` was removed, `ctx.actions.declare_file` is to be used instead.
+ **[Incompatible]** Fails on unknown attributes (even when set to None). See https://github.com/bazelbuild/bazel/issues/19403
+ Change output paths to consistently start with [cpu]-[compilation_mode] along with other cleanups to output path generation logic.
+ Compilation actions using the auto-configured MSVC toolchain are forced to emit error messages in English if the English language pack for Visual Studio is installed.
+ **[Incompatible]** Flip incompatible_enable_cc_toolchain_resolution (https://github.com/bazelbuild/bazel/issues/7260)
+ The new `--consistent_labels` option on `query`, `cquery`, and `aquery` can be used to force consistent label formatting across all output modes that is also compatible with `str(Label(...))` in Starlark.
+ **[Incompatible]** proto_compiler attribute removed from proto_lang_toolchain (it was recently introduced, and t

Configuration

📅 Schedule: Branch creation - "before 8am every weekday" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from a team as a code owner April 9, 2024 13:12
@renovate renovate bot force-pushed the renovate/bazel-7.x branch 2 times, most recently from b18c4a9 to 5a7cf06 Compare August 19, 2024 19:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants