Use uploaded R2C2 digests for fresh repository metadata (#32109) After a repository fetch, `RemoteRepoContentsCacheImpl.addToCache` installs the uploaded `Tree` digests in `RemoteExternalOverlayFileSystem`. Fresh fetches and remote cache restores then expose the same digest-backed metadata, so Skyframe can retain unchanged generated `.bzl` files and their consumers. Native files remain readable without another download. Relative repository-root symlinks retain their behavior, and an installation failure removes partial metadata. On the original fork-master fixture with 2,048 generated `.bzl` files, a single changed shard reloaded and configured 1 package instead of 2,048 for both fresh fetches and cached restores (12 samples per variant and transition). Median command time was 4.62 s → 4.47 s and 4.62 s → 4.22 s respectively. All 64 commands produced identical target bytes. Original fork validation: 3,190 executed cases passed across the remote, VFS and R2C2 integration suites (18 skips). The upstream regression covers digest metadata, native reads without CAS, and cleanup on failed installation. On upstream, `//src/test/java/com/google/devtools/build/lib/remote:RemoteTests --test_filter=RemoteExternalOverlayFileSystemTest` passes all 5 selected cases on macOS, including the new regression. The full upstream diff passes `git diff --check`. @fmeum Closes #32109 COPYBARA_INTEGRATE_REVIEW=https://github.com/bazelbuild/bazel/pull/32109 from dzbarsky:dzbarsky/upstream-bazel-161 a35e6f825356b1d211c84162d6105ddefa65b1e9 PiperOrigin-RevId: 1013205193 Change-Id: Ie255d461792c7c5634d74225095ca1b4430f6f47
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
To report a security issue, please email security@bazel.build with a description of the issue, the steps you took to create the issue, affected versions, and, if known, mitigations for the issue. Our vulnerability management team will respond within 3 working days of your email. If the issue is confirmed as a vulnerability, we will open a Security Advisory. This project follows a 90 day disclosure timeline.
See CONTRIBUTING.md