Fix IllegalStateException in ActionArtifactCycleReporter for ArtifactNestedSetKey. Fixes https://github.com/bazelbuild/bazel/issues/17573 `ActionArtifactCycleReporter` includes `ARTIFACT_NESTED_SET` in `ACTION_OR_ARTIFACT_OR_TRANSITIVE_RDEP` so that action-artifact cycles involving depset inputs are detected. However, `prettyPrint` and `getLabel` did not support `ArtifactNestedSetKey`, causing Bazel to crash with an unhandled `IllegalStateException` ("Argument is not Action, TargetCompletion, AspectCompletion, or TestCompletion: ArtifactNestedSetKey") instead of presenting an actionable dependency cycle error to the user. With this change, cycles involving `ArtifactNestedSetKey` are reported cleanly without crashing. When an artifact nested set appears at the root of a cycle, the error message lists the constituent file paths: ``` in <rule> rule <target>: cycle in dependency graph: .-> files: foo, bar | file: foo | file: goo `-- files: foo, bar ``` Intermediate nested set nodes continue to be omitted from the cycle path to keep the output concise and focused on actionable targets and artifacts. PiperOrigin-RevId: 972562063 Change-Id: I7215e6b8e7dc9de6d866896f40004880fcea5934
{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