Open timothyg-stripe opened 6 months ago
Instead of just a boolean, could we maybe make this a string field that is either exec
, target
or //some/pkg:defs.bzl%my_starlark_transition
(assuming the transition is exported)? @katre is working on chaining transitions, which could mean that an exec
transition is hiding within a Starlark one.
My instinct is to suggest cquery
. I acknowledge you said you don't want to do that.
@fmeum good point. But that still wouldn't work perfectly, would it? If the output records //some/pkg:defs.bzl%my_starlark_transition
the user would still have to do work to figure out if that hides an exec transition?
query
also won't catch toolchain deps very well.
Description of the feature request:
We would like the
Attribute
protobuf message in build.proto to contain a field, tentatively calledcfg_is_exec
, that is set to true if the attribute has the exec transition (cfg = "exec"
).Which category does this issue belong to?
Configurability
What underlying problem are you trying to solve with this feature?
Context: To run static analysis checks on our code repository, we would like to run one large
bazel query --output=proto
, and then process its output through other tools. Most of the query language can be simulated in this way given a repo-wide query dump, along with some Bazel options like--noimplicit_deps
. However, we found that the Bazel option--notool_deps
cannot be simulated, since the query dump contains no information about whether an attribute hascfg = "exec"
or not.Numerous precedents exist:
AttributeDefinition
message (used forbazel info build-language
) contains both anodep
field and acfg_is_host
field.cfg_is_host
is exactly what I'm after, except the fact thatbazel info build-language
only supports built-in rules.Attribute
message already contains anodep
field, which, like the proposed field conveys some message about a property of the attribute.Also: I understand that
bazel cquery
(+bazel config
) would give us the necessary information. However, we currently have several reasons to avoid runningcquery
on the entire repo.Which operating system are you running Bazel on?
macOS
What is the output of
bazel info release
?release 7.1.2
If
bazel info release
returnsdevelopment version
or(@non-git)
, tell us how you built Bazel.No response
What's the output of
git remote get-url origin; git rev-parse HEAD
?No response
Have you found anything relevant by searching the web?
No.
Any other information, logs, or outputs that you want to share?
No response