Bazel-diff in query mode doesn't see toolchain changes, but this is a Bazel limitation so we can't do this automatically.
In our codebase, we have a compiler that feeds into a toolchain. In order to detect changes to this, we have this workaround that we apply in a post-processing step (among other things):
# Hack: We need to use `bazel cquery` to detect toolchain changes
# (see https://github.com/Tinder/bazel-diff/issues/101),
# but if we used cquery we would have to run this on _every_ platform.
# The only case this notably affects for us is that if Mojo changes,
# all Mojo targets should change. So special case this.
if grep --quiet //KGEN/tools/mojo "$output_file.raw"; then
echo "- Mojo changed, manually adding Mojo targets"
./bazelw query 'rdeps(//..., kind("mojo_*", //...))' >> "$output_file.mojo_targets"
cat "$output_file.mojo_targets" >> "$output_file.raw"
fi
And then we have to re-do a lot of processing (like excluding manual targets, etc). It would be interesting if we could support this natively. Generally, this would be a way of adding edges that query can't find.
Bazel-diff in
querymode doesn't see toolchain changes, but this is a Bazel limitation so we can't do this automatically.In our codebase, we have a compiler that feeds into a toolchain. In order to detect changes to this, we have this workaround that we apply in a post-processing step (among other things):
And then we have to re-do a lot of processing (like excluding manual targets, etc). It would be interesting if we could support this natively. Generally, this would be a way of adding edges that
querycan't find.