Skip to content

Release 7.5.0 #1

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

Merged
merged 4,802 commits into from
May 15, 2025
Merged

Release 7.5.0 #1

merged 4,802 commits into from
May 15, 2025

Conversation

rchshld
Copy link
Collaborator

@rchshld rchshld commented May 15, 2025

No description provided.

bazel-io and others added 30 commits May 21, 2024 21:26
JSON-based merge conflict resolution for `MODULE.bazel.lock` can end up
producing entries with, e.g., both a `general` and an `os:Linux` factor
result when the OS/arch dependence of the extension changes.
`BazelLockFileModule` now invalidates each factor result individually.

Also sort the extension factors.

Closes #22378.

PiperOrigin-RevId: 635913837
Change-Id: I0064098806c856f16e8f4c0270f609f06cebc945

Commit
c4092e9

Co-authored-by: Fabian Meumertzheim <[email protected]>
Fixes #14418

Closes #22420.

PiperOrigin-RevId: 635740423
Change-Id: Iffd4d172c4175be2e1b6cfad04ddad2759adb987

Commit
01a90d6

Co-authored-by: Keith Smiley <[email protected]>
…gs (#22467)

Targets tagged with `local` or `no-sandbox` and `no-remote` can't
successfully use path mapping and thus have it disabled implicitly.

Closes #21921.

PiperOrigin-RevId: 635832339
Change-Id: Ib5cac0b202cbcd1704410f06fa3cda645581b849

Commit
46dce83

Co-authored-by: Fabian Meumertzheim <[email protected]>
Co-authored-by: hvd <[email protected]>
Co-authored-by: Googler <[email protected]>
The following validation checks were not enforced due to backwards
compatibility concerns, but ended up crashing Bazel when invalid labels
made it into the lockfile, which is enabled by default. We might as well
enable them now:

* Fail if a label passed to `use_extension` is not valid
* Fail if a label passed to the `patches` attribute of an override is
not valid or points to a repo other than the main repo

Work towards #21845

Closes #22487.

PiperOrigin-RevId: 636255834
Change-Id: I55dda374cd1716e514c4d78642479b136fd3ad43

Commit
cdace8f

Co-authored-by: Fabian Meumertzheim <[email protected]>
…ine options (#22507)

Examples:

```
$ bazel build //src:bazel-dev --experimental_remote_cache_evection_retries=5
ERROR: --experimental_remote_cache_evection_retries=5 :: Unrecognized option: --experimental_remote_cache_evection_retries=5 (did you mean '--experimental_remote_cache_eviction_retries'?)
$ bazel build //src:bazel-dev --notest_kep_going
ERROR: --notest_kep_going :: Unrecognized option: --notest_kep_going (did you mean '--notest_keep_going'?)

Closes #22193.

PiperOrigin-RevId: 636258381
Change-Id: Ie81344caa14054e1d328d5a6e9b94da506d6a577

Commit 0e9287f

Co-authored-by: Fabian Meumertzheim <[email protected]>
Fixes #22489

Closes #22493.

PiperOrigin-RevId: 636310898
Change-Id: If2fb41fd8d51f15aa1047cb62d55035e81187e41

Commit
792d17c

Co-authored-by: Fabian Meumertzheim <[email protected]>
…he. (#22500)

So that the last task won't try to shutdown the remoteCache, otherwise,
might cause deadlocks.

Fixes #21568.

PiperOrigin-RevId: 635746896
Change-Id: Ic321216dd0bda05ef1ad18367c8ebbcd1a1d272c

Commit
a804fb1

Co-authored-by: Googler <[email protected]>
…22518)

The retry doesn't work if the ContentLengthMismatchException is wrapped
in an IOException.

PiperOrigin-RevId: 636107102
Change-Id: I721e0be325dfd7c4e8a3dd697f5d513f42bcb7aa

Commit
758f399

Co-authored-by: Googler <[email protected]>
Closes #22513.

PiperOrigin-RevId: 636650432
Change-Id: Ic9af576b7f24af92ff8c3f0fbb1167d6db1687ea

Commit
9dcec10

Co-authored-by: Fabian Meumertzheim <[email protected]>
This is a continuation of #22155 that adds the newly added
'remote_files' attribute for http_archive to the bzlmod functionality.

The end goal is to then update BCR to this new functionality to overlay
files rather than use patch files when providing MODULE/WORKSPACE/BUILD
files.

bazelbuild/bazel-central-registry#1566 has a
good discussion of the rationale.

Co-authored-by: Fabian Meumertzheim <[email protected]>

Closes #22349.

PiperOrigin-RevId: 636682112
Change-Id: Ief070985598a7c0f427a98cd3daeb69a0984f7be

Commit
c4167e3

Co-authored-by: Farid Zakaria <[email protected]>
…xtensions (#22537)

Catches a common gotcha of referencing a repo created by an extension
elsewhere in an extension without a `use_repo` and provides actionable
advice to user. This prevents lockfile corruption caused by non-visible
labels.

The same validation is applied to labels in tag attributes.

Fixes #21845

Closes #22495.

PiperOrigin-RevId: 636939357
Change-Id: Ib779207502f7767e4e8d3abc55ba7470f75821b9

Commit
aa436c3

Co-authored-by: Fabian Meumertzheim <[email protected]>
…is closed (#22539)

Otherwise, a subprocess that consumes the stdin in its entirety can
never terminate.

PiperOrigin-RevId: 635774207
Change-Id: I134ddd1fee50faccb8ddb8400dbb11ce6a354c05

Commit
b3f5c62

Co-authored-by: Googler <[email protected]>
We now generate fixup commands targeting `include()`d segments in
addition to the root MODULE.bazel file itself. Fixup commands are
grouped by file, and then passed to Buildozer using `-f -` (i.e.
multiple commands for multiple files, passed in using stdin).

- For repos to add, we find the first usage with the correct prod/dev
type and add them there.
- For repos to remove, we remove them from whichever usage had them.
- At the end, all module files and included segments are formatted.

Fixes #22063

Closes #22455.

PiperOrigin-RevId: 636680730
Change-Id: Id894a449d8d1cdf39271ea3a724a91aebc51befb
When loaded as a `data` dependency (e.g. for `dlopen`), the runfiles of
a `cc_shared_library` now contain the `_solib` symlinks of precompiled
dynamic library dependencies instead of the symlink targets.

Work towards #21833

Closes #21882.

PiperOrigin-RevId: 637807250
Change-Id: I7ea2858c8cc9b5072beecf01d9dd49f8385aaebd

Commit
75e5d2f

Co-authored-by: Fabian Meumertzheim <[email protected]>
Fixes #22404

RELNOTES: Changes to environment variables read via `getenv` now
correctly invalidate module extensions.

Closes #22498.

PiperOrigin-RevId: 637058337
Change-Id: Id4aaa4155a728452472eedae4a59c8d29456e512

Co-authored-by: Fabian Meumertzheim <[email protected]>
Instead of

```
ERROR: An error occurred during the fetch of repository 'mydep~':
   Traceback (most recent call last):
	File "/private/var/tmp/_bazel_fmeum/7d8a4807d1079f03870ba5776e9ca66b/external/bazel_tools/tools/build_defs/repo/http.bzl", line 142, column 45, in _http_archive_impl
		download_info = ctx.download_and_extract(
Error in download_and_extract: java.io.IOException: Bad URL: invalid
ERROR: <builtin>: fetching http_archive rule //:mydep~: Traceback (most recent call last):
	File "/private/var/tmp/_bazel_fmeum/7d8a4807d1079f03870ba5776e9ca66b/external/bazel_tools/tools/build_defs/repo/http.bzl", line 142, column 45, in _http_archive_impl
		download_info = ctx.download_and_extract(
Error in download_and_extract: java.io.IOException: Bad URL: invalid
ERROR: Error computing the main repository mapping: error during computation of main repo mapping: java.io.IOException: Bad URL: invalid
```

print

```
ERROR: An error occurred during the fetch of repository 'mydep~':
   Traceback (most recent call last):
	File "/private/var/tmp/_bazel_fmeum/7d8a4807d1079f03870ba5776e9ca66b/external/bazel_tools/tools/build_defs/repo/http.bzl", line 142, column 45, in _http_archive_impl
		download_info = ctx.download_and_extract(
Error in download_and_extract: java.io.IOException: Bad URL: invalid
ERROR: Error computing the main repository mapping: error during computation of main repo mapping: java.io.IOException: Bad URL: invalid
```

Fixes #22520

Closes #22522.

PiperOrigin-RevId: 637954405
Change-Id: Iec55a5cf7cb287f692bd26fc1937379aa8b1853f

Commit
aa67e4c

Co-authored-by: Fabian Meumertzheim <[email protected]>
There were 2 things with the previous implementation that needed to be
improved here:

1. Apple Clang has a bug where it doesn't pass module compiler flags to
the underlying -cc1 invocation, so we have to manually pass them
directly to that invocation with -Xclang
2. The previous search script was too aggressive and slow for macOS. The
macOS SDK has tons of files that aren't headers, and tons of symlinks
pointing to other files within the SDK. This adds a fork in the script
to run a version that works with Apple SDKs. The time difference on my
machine is 41s->6s. 6s is still pretty long so if desired we can put
this behavior behind an env var for users to opt in with.

I've added a hermetic version of this to the apple_support toolchain,
but similar to the Linux setup here the modulemap file includes absolute
paths.

Closes #22259.

This reverts commit 1f1b4fd.

Partial commit for third_party/*, see #22475.

Change-Id: I801121e36de1504c17adfa4736c49c88d470fec0
Signed-off-by: Hee Cha <[email protected]>

Commit
de0a37c

Signed-off-by: Hee Cha <[email protected]>
Co-authored-by: Keith Smiley <[email protected]>
This greatly simplifies the code flow. Instead of using `volatile` and
resorting to some very unsavory workarounds, we can simply make sure
only one thread is changing `state.workerFuture` using plain old
synchronization, and on memory pressure, make absolutely sure that the
state object is cleaned up after we remove it from the central state
cache.

This goes against the advice introduced in
8ef0a51;
the wording for `SkyKeyComputeState#close()` has been updated.

Also changed the "retry on cancellation" logic from using recursion to
using a `while`-loop for better clarity around nested `finally` blocks.

Fixes #22393.

PiperOrigin-RevId: 637975501
Change-Id: Ied43f0310ec8953f4ff1c2712fe07b8ccbd6c184

Commit
de4d519

Co-authored-by: Googler <[email protected]>
…uild var… (#22557)

…iables

This change prepares for C++ path mapping, which also needs to map
include directories of generated headers. It may, as a side effect,
reduce memory usage slightly by possibly reusing nested set instances
retained elsewhere.

Work towards #6526

Closes #22463.

PiperOrigin-RevId: 636886343
Change-Id: Ic93d6439a51f37f44bb2ac67d0813c48c0c4a8bd

Fixes #22533

Co-authored-by: Googler <[email protected]>
There were 2 things with the previous implementation that needed to be
improved here:

1. Apple Clang has a bug where it doesn't pass module compiler flags to
the underlying -cc1 invocation, so we have to manually pass them
directly to that invocation with -Xclang
2. The previous search script was too aggressive and slow for macOS. The
macOS SDK has tons of files that aren't headers, and tons of symlinks
pointing to other files within the SDK. This adds a fork in the script
to run a version that works with Apple SDKs. The time difference on my
machine is 41s->6s. 6s is still pretty long so if desired we can put
this behavior behind an env var for users to opt in with.

I've added a hermetic version of this to the apple_support toolchain,
but similar to the Linux setup here the modulemap file includes absolute
paths.

Closes #22259.

This reverts commit 1f1b4fd.

Closes #22475.

PiperOrigin-RevId: 637969838
Change-Id: I7d4940a820e3741836239493222ba8d06c4d70e4

Commit
6abdd2a

Co-authored-by: Keith Smiley <[email protected]>
- Fixed the leak of `remote_patches` URLs for downloaded the source
archive.
- Compute auth for required URLs only

Fixes #22201

Closes #22517.

PiperOrigin-RevId: 638300996
Change-Id: Ib76e3284f209d2314844cfd662ac8eadba785fae

Commit
5986420

Co-authored-by: Yun Peng <[email protected]>
MSVC fails if `/external:I <some_path>` is broken into two lines in
`.param` files. This is avoided by using the alternative
`/external:I<some_path>` form.

Fixes #22614

Closes #22616.

PiperOrigin-RevId: 640055579
Change-Id: I5fda2714dc479fd76f22e2f8562dddbdfcdb9a18

Commit
759fe7d

Co-authored-by: Fabian Meumertzheim <[email protected]>
On an incremental build with `--watchfs`, the `handleDiffs` span in the
timing profile is now almost fully explained by subspans.

Closes #22622.

PiperOrigin-RevId: 640084976
Change-Id: Iab7c9f22bab5e53cfab1d39dc0b3f2a697453540

Commit
f4b4537

Co-authored-by: Fabian Meumertzheim <[email protected]>
This change introduces the flag
`--experimental_inmemory_sandbox_stashes` to track in memory the
contents of the stashes stored with `--reuse_sandbox_directories=true`

With the old behavior Bazel has to perform a lot of I/O to read the
contents of each stash before reusing it in a new action. Essentially,
it checks every directory and subdirectory in the stashed sandbox to
find out which files are different to the inputs of the new action about
to be executed.

With in-memory stashes we associate each stash to the symlinks that
needed to be created for that action. We also store the time at which
these symlinks were created. In a background thread after the action has
finished executing we stat every directory and for the ones that have
changed (this should be rare) we update the contents. Because we only
read the contents of the directories that have changed we do much less
I/O than before.

If an action purposefully changes a sandbox symlink in-place, this won't
be detected by statting the directory. I don't know any use case for
this since the symlink itself is an implementation detail to achieve
sandboxing. For this reason, manipulation of sandbox symlinks in-place
is not supported.

Depending on the build this change might have a significant effect on
memory. It should generally improve wall time further in builds where
`--reuse_sandbox_directories` already improved wall time.

This change also introduces a minor optimization which is to associate
each stash with the target that it was originally created for. When a
new action wants to reuse a stash and there is more than one available,
it will take the stash whose target is closest to its own. This is done
with the assumption that targets that are closer together in the graph
will have more inputs in common.

Fixes #22309 .

Closes #22559.

PiperOrigin-RevId: 640142481
Change-Id: Iece2d718df47f403e2fe91c1bd887604eceee8ee

Commit
1c0135c

Co-authored-by: Pedro Liberal Fernndez <[email protected]>
…#22647)

**The Issue**

Some external users reported the following sequence:

1. Build starts
2. Build interrupted very early on
3. Another build is started. The command line says "A previous command
is running", while the server is stuck.

What happened under the hood:

The issue could be reproduced very reliably by placing a breakpoint
here[1] and interrupt the build.

Bazel is in the middle of the recursive
`IncrementalPackageRoots.registerAndPlantMissingSymlinks` method when it
received the interruption.

One important detail: we only add a NestedSet to the `donePackagesRef`
set when the _method_ is done successfully. When there's an
interruption, we always bail early and never actually reach this line
where the NestedSet is added to the set[2].

Without deduplication, this could lead to what feels like an finite loop
if the packages are structured like so:
```
[[A], [B, [A]]]
```
In this case, NestedSet `[A]` represents a common child of many
NestedSets and would be repeated again and again. We've indeed observed
this in a real build, making it unable to finish within any reasonable
timeframe.

**The Solution**

It was overly restrictive to only commit a NestedSet into the de-dup set
_after_ all of its symlinks have been planted. It only makes sense if
we're planting the symlinks for multiple top-level targets at the same
time and want to avoid the situation where a top-level target is allowed
to enter execution without all of its symlinks planted. We're already
avoiding this situation by design by planting the symlinks for 1 single
top-level target at a time.

To avoid the near-infinite loop caused by a repeated NestedSet, we add
each NestedSet to the de-duplication set the very first time it's seen.

**Changes in this CL**

- [Bug-fixing] Add a NestedSet to the de-duplication set the very first
time it's seen.
- [Code simplicity] 1 single blocking `Future.get()` instead of 1 for
each recursive layer.

Fixes #22586.

---
[1]
https://github.com/bazelbuild/bazel/blob/193b114287b3e20850a4b106b889771dfa63a601/src/main/java/com/google/devtools/build/lib/skyframe/IncrementalPackageRoots.java#L253

[2]
https://github.com/bazelbuild/bazel/blob/193b114287b3e20850a4b106b889771dfa63a601/src/main/java/com/google/devtools/build/lib/skyframe/IncrementalPackageRoots.java#L256

PiperOrigin-RevId: 640524271
Change-Id: I63c39d7c8f27abaf9229396af1424e775cf5f85f

Commit
d705928

Co-authored-by: Googler <[email protected]>
This is a partial cherry-pick of
417c6b8 which excludes the changes to
`oneversion` itself, which is built and released for Bazel 7 as part of
java_tools:

* Avoid passing --whitelist to one_version if no allowlist is configured
in the toolchain as it isn't supported by the Bazel version of
oneversion yet.
* Document the one_version flags.
* Clean up tests not updated after recent rules_java releases.

Fixes #22576
Should fix the following crash observed in the wild:

```
FATAL: bazel crashed due to an internal error. Printing stack trace:
java.lang.RuntimeException: Unrecoverable error while evaluating node 'RepoSpecKey{[email protected], registryUrl=https://bcr.bazel.build/}' (requested by nodes 'com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionValue$$Lambda/0x00000008005fd220@38aba3ca')
        at com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run(AbstractParallelEvaluator.java:550)
        at com.google.devtools.build.lib.concurrent.AbstractQueueVisitor$WrappedRunnable.run(AbstractQueueVisitor.java:414)
        at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(Unknown Source)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
        at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Caused by: java.lang.NullPointerException: Cannot invoke "com.google.devtools.build.lib.events.StoredEventHandler.replayOn(com.google.devtools.build.lib.events.ExtendedEventHandler)" because "this.bazelRegistryJsonEvents" is null
        at com.google.devtools.build.lib.bazel.bzlmod.IndexRegistry.getBazelRegistryJson(IndexRegistry.java:336)
        at com.google.devtools.build.lib.bazel.bzlmod.IndexRegistry.getRepoSpec(IndexRegistry.java:295)
        at com.google.devtools.build.lib.bazel.bzlmod.RepoSpecFunction.compute(RepoSpecFunction.java:52)
        at com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run(AbstractParallelEvaluator.java:461)
        ... 7 more
```

Closes #22639.

PiperOrigin-RevId: 640572972
Change-Id: Id24ce3476df55fa75d6f3291e100b1037f0793f4

Commit
6936150

Co-authored-by: Fabian Meumertzheim <[email protected]>
meteorcloudy and others added 29 commits November 6, 2024 18:21
…4228)

This PR removes the DownloadManager from the registry factory
implementation. As the registry created by the factory is cached by the
SkyFunction mechanism, the DownloadManager instance was living too long
- it is supposed to be re-created for every command instantiation to
respect changes in command line options, but for the registry, it
ignored those changes.

Instead, the DownloadManager is set directly into the affected
SkyFunctions that require access to it. This way, the per-command
DownloadManager instance is correctly used.

This fixes #24166.

Note for reviewers: This is my first time touching code with
SkyFunctions, so I don't really know what I'm doing.

Closes #24212.

PiperOrigin-RevId: 693644409
Change-Id: I7b16684e52673043615290d114f078ab7ab99fcf

Co-authored-by: Cornelius Riemenschneider <[email protected]>
python: fix bazel py_test testSmoke for Python 3.11+
The test was failing because the `b.py` file couldn't be imported
because, starting with Python 3.11, the `PYTHONSAFEPATH` environment
variable (set by the bootstrap startup) is respected. This setting
inhibits the default Python behavior of adding the main script's
directory to sys.path.

To fix, use `py_library.imports` to explicitly add the necessary
directory to `sys.path`.

Fixes #20660

Closes #20738.

PiperOrigin-RevId: 595498775
Change-Id: I0c9521b210fe9e2c40692727fc87d41995e0968a

Commit
9b027c8

No public description
PiperOrigin-RevId: 694487395
Change-Id: I3f3e154ebfa932721d917661d61a878477a8e574

Commit
be2186f

---------

Co-authored-by: Richard Levasseur <[email protected]>
Co-authored-by: Googler <[email protected]>
This helps the HTTP downloader better cope with filesystems where unlink
is non-atomic.

Closes #24295.

PiperOrigin-RevId: 697920434
Change-Id: I91b4dbf07a2efdca07c0310e15aac5f4d89c4091

Commit
99a27f6

Co-authored-by: Simon Thornington <[email protected]>
No longer works with python 3.12 or later.

PiperOrigin-RevId: 694480477
Change-Id: Ia662c8fb5511e9c551448730800240ab627463be

Commit
5b54c74

Co-authored-by: Googler <[email protected]>
…SocketException (#24722)

Fix for #24530

--experimental_repository_downloader_retries will now retry on
`SocketException` in addition to `ContentLengthMismatchException`

Closes #24608.

PiperOrigin-RevId: 704633572
Change-Id: Idd1fcbb768c9dabed596fe15d8ae9260ef3e895d

Commit
459bb57

Co-authored-by: Pareesh Madan <[email protected]>
wofstream cannot be constructed from wstring according to the standard
https://en.cppreference.com/w/cpp/io/basic_ofstream/basic_ofstream.

Closes #24703.

PiperOrigin-RevId: 707172911
Change-Id: I973f9560c5b20748e4635cd757f53fff9c8ef0c5

Commit
5b35276

Co-authored-by: Boleyn Su <[email protected]>
Co-authored-by: Yun Peng <[email protected]>
Work towards #23497
Work towards #24389

Closes #24431.

PiperOrigin-RevId: 698846634
Change-Id: I3fb2d46597b225833a918af9731665bb276322dd

Commit
27a5e45

Co-authored-by: Fabian Meumertzheim <[email protected]>
Co-authored-by: Ian (Hee) Cha <[email protected]>
Co-authored-by: Yun Peng <[email protected]>
…sults di… (#24667)

…rectly to a file

This is a proposed fix for
#24293

This speeds up a fully warm `bazel query ...` by 23.7%, reducing wall
time from 1m49s to 1m23s

```
$ time bazel query '...' --output=streamed_proto > queryoutput4.streamedproto

real    1m48.768s
user    0m27.410s
sys     0m19.646s

$ time bazel query '...' --output=streamed_proto --output_file=queryoutput5.streamedproto

real    1m22.920s
user    0m0.045s
sys     0m0.016s
```

_💁‍♂️ Note: when combined with
#24305, total wall time is 37s,
an overall reduction of 66%._

Closes #24298.

PiperOrigin-RevId: 700583890
Change-Id: Ic13f0611aca60c2ce8641e72a0fcfc330f13c803

Commit
791e1f7

Co-authored-by: Keith Lea <[email protected]>
Co-authored-by: Yun Peng <[email protected]>
TEST: bazel build --platforms=//:windows_x86_64
--extra_toolchains=@llvm_mingw_linux_x86_64//:cc-toolchain-linux_x86_64-windows_x86_64
//src/tools/launcher:launcher

Closes #24752.

PiperOrigin-RevId: 711358608
Change-Id: Iedacad9b959427ed5d4598e0ea594cb25b8845c8

Commit
a4bb254

Co-authored-by: Boleyn Su <[email protected]>
auto does not exist in Bazel 4, 5, 6 or 7. I'm not sure if was there
before but in any of these versions when trying it the following error
appears

ERROR: While parsing option --dynamic_mode=auto: Not a valid dynamic
mode: 'auto' (should be off, default or fully)

Fixes: #20707

Closes #20705.

PiperOrigin-RevId: 630063050
Change-Id: Ib0b0427268a885d6ffc62c81183b6dd24a6dc517 (cherry picked from
commit a70a28f)
#24844)

…thout the checksum

This PR address the #23932 issue with remote downloader.

Closes #23970.

PiperOrigin-RevId: 686180819
Change-Id: Ia36c5793622bd1ac1fdaa9ef1326ddc385a5a01f

(cherry picked from commit 60638af)

Fixes #24837

Co-authored-by: Mislav Mandaric <[email protected]>
Fixes #23247

Closes #24768

PiperOrigin-RevId: 707176116
Change-Id: I71ef3c630f8130467cc6a0c730c1278ae6b0817f
(cherry picked from commit 03eae37)
The warnings tell the user to run `bazel mod tidy`, which is very
confusing.

Fixes #24495

Closes #24729.

PiperOrigin-RevId: 708007222
Change-Id: I60dc889281a776bbf08a7f9537272d7692cce1d8 
(cherry picked from commit 455ddb7)

Fixes #24740
…4847)

This allows IDEs to query for the direct dependencies of the root module
as well as how they can refer to them from the point of view of the root
module.

Also always emit `name` and `version` so that consumers don't have to
know how to parse module keys.

Work towards #22691

Closes #23787.

PiperOrigin-RevId: 693453084
Change-Id: Ie3fd5e89301d8e83d0eaa686188634923853f01a (cherry picked from
commit 1003d2c)

Fixes #24678
This protects against an integer overflow which could occur for large
key list size and large thread counts.

Regrettably, it's difficult to write a regression test for this
scenario, as exercising this overflow requires lots of time and heap, so
it would be a performance regression to our test suites.

Fixes #19445

PiperOrigin-RevId: 595420516
Change-Id: Ic0a475a6a273c50fe9895dd0852fa5b062859cb2

Commit
3e373d0

Co-authored-by: Googler <[email protected]>
Fixes #24730

Closes #24735.

PiperOrigin-RevId: 713606521
Change-Id: If8578fcdfc30dcbfb6af283089614f3364eb30d8

Commit
e78bab5

Co-authored-by: Fabian Meumertzheim <[email protected]>
This makes it easier for users to discover that a module hasn't been
found because its absence was recorded in the lockfile during a previous
build.

Fixes #24803

Closes #24804.

PiperOrigin-RevId: 713142592
Change-Id: Id541f5710481bd947c09d8dba315d683a1666b1c 
(cherry picked from commit 6061e5e)

Fixes #24805
…#24912)

The jar can be supplied separately as it needs to be passed to the
`-javaagent` JVM arg anyway.

Also update the recommended version for compatibility with Java 21.

Fixes #24782

Closes #24783.

PiperOrigin-RevId: 714057306
Change-Id: Ic8d47562f15344ed16d0af5d3242937d2ee53b22

(cherry picked from commit b59fbee)

Fixes #24788
…...` (#24908)

Fixes #24882

Closes #24883.

PiperOrigin-RevId: 714854122
Change-Id: I5e48e84f88606320223a9969e8367924aeeb13dd

Commit
6423b04

Co-authored-by: Fabian Meumertzheim <[email protected]>
…repository (#24900)

Fixes #24770

Closes #24887.

PiperOrigin-RevId: 714107497
Change-Id: Ib914aa54b2afa2a90fcce2f2263b9c1b2d2c193c

Commit
6a141ea

Co-authored-by: Dave Roth <[email protected]>
This makes it possible to retroactively link an execution log file to a
particular build.

Closes #24790.

PiperOrigin-RevId: 715017597
Change-Id: Ia8f6a3677a165a9f428b59ab8a19587a357b8803

Commit
fd6a983

Co-authored-by: Fabian Meumertzheim <[email protected]>
PiperOrigin-RevId: 715819891
Change-Id: I1c2e582a3d4c6e87e5c76837abb7a175eed3e850 
(cherry picked from commit c570f97)

Fixes #24933

Co-authored-by: Googler <[email protected]>
…ck (#24941)

... if the corresponding output is materialized afterwards and hasn't
been changed.

Failing to do so will cause an incremental build to re-check the action
cache for actions whose outputs were materialized during last build.
This can be very slow if the size of the outputs are large.

We achieved this by storing `FileContentsProxy` in the remote metadata
after materialization. During dirtiness check, we compare remote
metadata and the corresponding local metadata with their `digest`, or
`proxy` if `digest` is not available for local metadata,

A user reported back the wall time of their very first increment build
is improved by this change from `14s` to less than `1s` in common case,
and from `115s` to less than `1s` in worst case.
#24763

PiperOrigin-RevId: 715734718
Change-Id: Id1a1a59d8b5f3e91a7ae05a73663ff37eee6d163

Fixes #24920.
This option, which is different from the startup option of the same
name, has no effect and doesn't even show a warning, which can be
confusing.

Closes #24953.

PiperOrigin-RevId: 717853503
Change-Id: I8d7d1229f692007c4350b6c15526b7a95bbed5ef

Commit
79508be

Co-authored-by: Fabian Meumertzheim <[email protected]>
… minor releases with no RELNOTES tags (#25025)

PiperOrigin-RevId: 718504556
Change-Id: I54f42e07721935c44a6f2a314b59864d6433d865

Commit
c38bed0

Co-authored-by: Googler <[email protected]>
…etadata (#25057)

ea4ad30 added an action as context for
prefetches with BwoB, but assumed that all callers would use the
prefetcher for inputs to locally executed actions. However, since then,
it has also been used to download outputs of completed actions that have
been explicitly requested (e.g. as outputs of top-level targets or those
matching the regex path patterns). This resulted in downloads with a
`prefetcher` action ID and action details for the action that produced
the file, rather than consumed it, resulting in confusing situations for
observability tools.

This is fixed by separately tracking the reason for the fetch. Using an
action ID of `output` when the action has the requested file as an
output, and "input" when the action has the requested file as an input.

Closes #25040.

PiperOrigin-RevId: 719246746
Change-Id: Ib95ff65ba68112b1a38ab3022e5b1a19ef74cc9f 
(cherry picked from commit 998e762)

RELNOTES: CAS requests made when Bazel downloads a blob with Build
without the Bytes enabled now provide metadata with an action ID of
`input` if the blob is downloaded as the input to a local action and
`output` if it is a requested action output.
…ation extraction (#25093)

Previously, we only supported attribute types which could be defined for
Starlark rules, with the result that a cherry-pick in the 7.x branch
exposing a formerly native-only attribute type to Starlark broke
Stardoc: bazelbuild/stardoc#277

Instead of picking and choosing, let's support all attribute types, same
as we already do in Bazel 8 and newer.

Cherry-pick of a subset of changes in commit

1ce4ab1

PiperOrigin-RevId: 675169119
Change-Id: I6541a5eb99d6257339032850d360d2da4bd5aeb4
…gs (#25115)

The mapping of an apparent name in a module extension tag's `attr.label`
attribute to the corresponding canonical name has to be recorded in the
lockfile so that instantiated repo rules don't reference the stale
repos.

Fixes #25063

Closes #25067.

PiperOrigin-RevId: 720592796
Change-Id: Ia202ca4a8482a81da8085ee18ecaca5fe233bddb

---------

Co-authored-by: Fabian Meumertzheim <[email protected]>
@rchshld rchshld merged commit 47bc5b5 into joomcode:master May 15, 2025
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.