osbase/build: fix unused config transition
The race and pure configs are only changed by command line flags, not by
transitions. This means that they should not be included in the
ignore_unused_configuration to avoid unnecessary rebuilds.
I previously added the race config here, but that was because of a
misunderstanding: The ST-hash in the output path is not a hash of the
configuration, but of the diff of the configuration against the
baseline. The baseline includes all the flags set on the command line.
This is controlled by --experimental_output_directory_naming_scheme
which defaults to diff_against_dynamic_baseline.
What this means is that changing a flag on the command line does not
change the hash of the diff, so it does not rebuild actions which don't
use the flag. But if you then try to reset the config in a transition,
the configs are the same but the diff hashes are not, resulting in
unnecessary rebuilds.
Change-Id: Ibfe8581e0a5c64ccd0d75a0f7c85c7d7b6d46abd
Reviewed-on: https://review.monogon.dev/c/monogon/+/4191
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
Tested-by: Jenkins CI
diff --git a/osbase/build/def.bzl b/osbase/build/def.bzl
index c8ca9dd..685c616 100644
--- a/osbase/build/def.bzl
+++ b/osbase/build/def.bzl
@@ -60,8 +60,6 @@
# Force-setting them to a stable value forces the build configuration
# to a stable hash.
# See the transition's comment block for more information.
- "@io_bazel_rules_go//go/config:race": False,
- "@io_bazel_rules_go//go/config:pure": False,
"@io_bazel_rules_go//go/config:static": False,
"//build/platforms/linkmode:static": False,
}