Switch stamping detection to ctx.configuration.stamp_binaries() #3816
+5
−66
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, rules_rust uses a
config_settingthat matches--stamp=1to detect whether the--stampoption is enabled in the current configuration. This PR removes theconfig_settingin favor of callingctx.configuration.stamp_binaries(), which is restricted, but available to rules rust because it is on the restricted starlark API allowlist: https://cs.opensource.google/bazel/bazel/+/master:src/main/java/com/google/devtools/build/lib/packages/BuiltinRestriction.java;l=73;drc=135a03ba5dbad5a1a26ef3bde9815ea244a093d7.The motivation for making this change is to improve Google-internal detection of stamped actions for cross-user caching eligibility. The
ctx.configuration.stamp_binaries()call is limited to the case ofstamp = -1, whereas theconfig_settingdependency was unconditional. Notably, forrust_libraryrules with the default attribute ofstamp = 0, we are now able to certify that the rule is not affected by the--stampflag value.Google-internal bug number: 419546090