github bazelbuild/bazel 7.1.0rc1

latest releases: 8.0.0-pre.20240925.4, 7.3.2, 7.3.2rc1...
pre-release7 months ago

Note

If you are looking for rolling releases, please visit this page.


The following release notes are still in the process of being updated and cleaned up.

Release 7.1.0rc1 (2024-02-22)

Baseline: 8f4b115

Release Notes:

  • 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- as gcc instead of compiler in Unix CC toolchain (#21224)
  • Avoid exception-based control flow in RAFS#getDigest and RAFS#getFastDigest. (#21264)
  • Add add_exports/add_opens to bazel java_binary deploy jars (#21270)
  • Manipulate the local filesystem directly in the writeLocalFile test helper. (#21272)
  • Improve the documentation for PathFragment methods dealing with segments. (#21275)
  • Canonicalize the parent path in RemoteActionFileSystem#delete. (#21282)
  • Revert "Also path map transitive header jar paths with direct classpath optimization" (#21281)
  • Make it possible to toggle cache key scrubbing by rule kind (#21276)
  • Fix a hanging issue with skymeld & --combined_report=lcov. (#21271)
  • Canonicalize the parent path in RemoteActionFileSystem#renameTo. (#21285)
  • Exclude //src/test/py/bazel:mod_command_test from RBE tests due to frequent flaky timeouts.
  • Add bazel mod tidy (#21265)
  • Don't use worker threads for repo fetching during Skyframe er… (#21305)
  • Fix flakiness in //src/test/shell/bazel:starlark_repository_test (#21309)
  • Document best practice of avoiding extensions directly specifying repository names (#21300)
  • Allow @repo_name labels in override attributes (#21313)
  • Reproducible extension (#21306)
  • Omit unique module versions from canonical repo names (#21316)
  • Add Label.to_display_form() (#21312)
  • Clarify the purpose and overall behavior of RemoteActionFileSystem. (#21294)
  • Make SpawnLogConvert an abstract class instead of an interface. (#21325)
  • Add support for additional command profiler event types. (#21327)
  • Remove the fileSize parameter from DigestUtils. (#21328)
  • Optimize RemoteActionFileSystem#resolveSymbolicLinks by caching intermediate results in a trie. (#21333)
  • Mark use_repo_rule extension as reproducible (#21335)
  • Make SpawnLogContext interruptible. (#21337)
  • Document --cache_computed_file_digests. (#21326)
  • Generate a lockfile for the distribution archive on the fly (#21338)
  • Introduce --local_resources flag (#21331)
  • Cherry-pick recent changes to fix CI flakiness and breakages (#21349)
  • Clear the file digests cache on clean. (#21346)
  • Parallelize TreeArtifactValue.visitTree across files instead of subdirectories. (#21347)
  • Temporarily hardcode rules_java repository name (#21356)
  • Remove unnecessary test assertions to fix flakiness. (#21354)
  • Make it possible to avoid an extra stat() when obtaining a digest from the cache. (#21353)
  • Collect directory contents in parallel in CompactSpawnLogContext. (#21361)
  • Introduce --default_test_resources flag (#21311)
  • python: rules_python 0.22.0 -> 0.22.1 soas to register Python toolchain by default (#21369)
  • Add vendor mode (#21366)
  • Clarify the behavior of --incompatible_remote_symlinks in the presence of a dangling symlink. (#21363)
  • Handle symlinks in a more consistent manner in UploadManifest. (#21371)
  • Set the executable bit on files in output directories uploaded to a disk or remote cache. (#21376)
  • Call out that TreeArtifactVisitor.visit is called in a nondeterministic order. (#21377)
  • Optimize out a stat call. (#21388)
  • Compute output directories in parallel when building the upload manifest. (#21386)
  • Fix rule definition environment for repo rules (#21397)
  • Share classpath NestedSet between full and header compile actions (#21389)
  • Emit labels in display form in Java rules (#21395)
  • Fetch refactor and mod command fix (#21385)
  • Implement describeKey for more actions (#21421)
  • Let scrubbed actions fall back to local execution when remote execution is enabled. (#21384)
  • Publish the new execution log format to the build event protocol. (#21417)
  • Ensure that the mtime of an AC entry is smaller, not larger, than the CAS blobs it references. (#21416)
  • Pass the name of the classpath manifest jar to JacocoCoverageRunner (#21413)
  • Traverse symlinks to directories while collecting a TreeArtifactValue. (#21418)
  • Correctly handle file inputs/outputs with directory contents in the execution log. (#21427)
  • Upgrade to async-profiler v3.0. (#21428)
  • Avoid a superfluous stat() in DigestUtil. (#21400)
  • [credentialhelper] Respect expires field from helper (#21429)
  • Improve performance of --reuse_sandbox_directories (#21433)
  • [credentialhelper] Update flag doc to point to more convenient usage instructions (#21441)
  • Repo file/dir watching API (#21435)
  • Clarify the meaning of Dirent.Type.UNKNOWN. (#21434)
  • Add a native image of turbine to the prebuilt Java tools (#21426)
  • Update java_tools v13.4 / rules_java 7.4.0 (#21359)
  • Automated rollback of commit b11fa7a. (#21448)
  • Remove the restriction that relative symlinks in a tree artifact may not point outside the tree. (#21449)
  • Revert "Add Label.to_display_form()" (#21454)
  • Do not record any repo mapping entries in the RepoMappingRecorder for WORKSPACE repo rules (#21457)
  • Reland "Also path map transitive header jar paths with direct classpath optimization" (#21458)
  • Backport CI test configs (#21456)
  • Use execution info instead of hard-coded mnemonics for Java path mapping (#21461)

Acknowledgements:

This release contains contributions from many people at Google, as well as Alessandro Patti, Artem V. Navrotskiy, Brentley Jones, Christian Scott, 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, 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 3D5919B448457EE0.

Don't miss a new bazel release

NewReleases is sending notifications on new releases.