[6.4.0] Add `--consistent_labels` flag to all query commands (#19567)
If enabled, labels are emitted as if by the Starlark `str` function
applied to a `Label` instance. This is useful for tools that need to
match the output of different query commands and/or labels emitted by
rules. If not enabled, output formatters are free to emit apparent
repository names (relative to the main repository) instead to make the
output more readable.
This is implemented by replacing all `Label#toString()` calls in query
code with an indirection through a `LabelPrinter` object constructed in
a central place. There are currently three types of instances:
* `canonical` behaves just like `str(Label(...))`;
* `apparent` matches the current behavior, which renders main repo
labels in repo-relative form and attempts to use the apparent names for
external repos if possible;
* `legacy` is used in all non-query callsites and uses
`Label#toString()`.
Fixes #17864
RELNOTES: The new `--consistent_labels` option on `query`, `cquery`, and
`aquery` can be used to force consistent label formatting across all
output modes that is also compatible with `str(Label(...))` in Starlark.
Closes #19508.
PiperOrigin-RevId: 566723654
Change-Id: Ifa08a82e281f423faa971c46bf7277cb307698b5
---------
Co-authored-by:
Fabian Meumertzheim <fabian@meumertzhe.im>
Showing
- src/main/java/com/google/devtools/build/lib/bazel/bzlmod/modcommand/BUILD 1 addition, 0 deletions...m/google/devtools/build/lib/bazel/bzlmod/modcommand/BUILD
- src/main/java/com/google/devtools/build/lib/bazel/bzlmod/modcommand/ModExecutor.java 3 additions, 1 deletion...vtools/build/lib/bazel/bzlmod/modcommand/ModExecutor.java
- src/main/java/com/google/devtools/build/lib/bazel/commands/BUILD 1 addition, 0 deletions...n/java/com/google/devtools/build/lib/bazel/commands/BUILD
- src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java 3 additions, 1 deletion...oogle/devtools/build/lib/bazel/commands/FetchCommand.java
- src/main/java/com/google/devtools/build/lib/buildtool/AqueryProcessor.java 9 additions, 1 deletion.../google/devtools/build/lib/buildtool/AqueryProcessor.java
- src/main/java/com/google/devtools/build/lib/buildtool/CqueryProcessor.java 9 additions, 1 deletion.../google/devtools/build/lib/buildtool/CqueryProcessor.java
- src/main/java/com/google/devtools/build/lib/buildtool/PostAnalysisQueryProcessor.java 5 additions, 1 deletion...tools/build/lib/buildtool/PostAnalysisQueryProcessor.java
- src/main/java/com/google/devtools/build/lib/packages/AttributeFormatter.java 45 additions, 22 deletions...oogle/devtools/build/lib/packages/AttributeFormatter.java
- src/main/java/com/google/devtools/build/lib/packages/BUILD 11 additions, 0 deletionssrc/main/java/com/google/devtools/build/lib/packages/BUILD
- src/main/java/com/google/devtools/build/lib/packages/LabelPrinter.java 102 additions, 0 deletions.../com/google/devtools/build/lib/packages/LabelPrinter.java
- src/main/java/com/google/devtools/build/lib/query2/BUILD 1 addition, 0 deletionssrc/main/java/com/google/devtools/build/lib/query2/BUILD
- src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java 9 additions, 6 deletions...vtools/build/lib/query2/PostAnalysisQueryEnvironment.java
- src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java 9 additions, 4 deletions...le/devtools/build/lib/query2/QueryEnvironmentFactory.java
- src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java 12 additions, 14 deletions...google/devtools/build/lib/query2/SkyQueryEnvironment.java
- src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphQueryEnvironment.java 13 additions, 6 deletions.../build/lib/query2/aquery/ActionGraphQueryEnvironment.java
- src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphTextOutputFormatterCallback.java 6 additions, 6 deletions...query2/aquery/ActionGraphTextOutputFormatterCallback.java
- src/main/java/com/google/devtools/build/lib/query2/common/AbstractBlazeQueryEnvironment.java 10 additions, 1 deletion...uild/lib/query2/common/AbstractBlazeQueryEnvironment.java
- src/main/java/com/google/devtools/build/lib/query2/common/BUILD 4 additions, 0 deletions...in/java/com/google/devtools/build/lib/query2/common/BUILD
- src/main/java/com/google/devtools/build/lib/query2/common/CommonQueryOptions.java 24 additions, 0 deletions.../devtools/build/lib/query2/common/CommonQueryOptions.java
- src/main/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallback.java 10 additions, 3 deletions...build/lib/query2/cquery/BuildOutputFormatterCallback.java
Please register or sign in to comment