Clear Skyframe direct-dep edges before frontier upload when discarding memory. Once the FileOpNode graph is materialized and the upload order is computed, uploading reads only node values, never Skyframe edges. Under --nokeep_state_after_build the graph is already being destructively mutated (e.g. rdep deletion), so drop the direct-dep arrays too. Clearing a node's deps is a single field write (unlike rdep deletion, which does per-edge removal), so the pass is roughly the cost of a graph walk. Its node count and duration are reported as an info event and a "clearDirectDeps" profiler span. Renames IncrementalInMemoryNodeEntry.clearDirectDepsForSkyfocus to clearDirectDeps now that it has a second caller. The ActionLookupKey upload path no longer reads entry.getDirectDeps(); the dependency node was already computed by materializeNodeGraph. SelectedEntrySerializer.upload() becomes private, so it is only reachable from uploadSelection after materialization. As a guard, FileOpNodeMemoizingLookup is told when deps are cleared, after which computing any unmaterialized node fails instead of silently reading empty deps from the graph. PiperOrigin-RevId: 996744612 Change-Id: Iacfc4e85ab2d2c4c17ecbde43afac818dee11b38
{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