renamed 'incompatible_allow_tags_propagation' to 'experimental_..'
renamed `--incompatible_allow_tags_propagation` to `--experimental_allow_tags_propagation`
RELNOTES[NEW]: tags: use `--experimental_allow_tags_propagation` flag to propagate tags to the action's execution requirements from targets. Such tags should start with: `no-`, `requires-`, `supports-`, `block-`, `disable-`, `cpu:`. See #8830 for details.
Note: this is only 'starlark' rules part. Native rules change will come as a seperate change under the same flag.
Closes #9197.
PiperOrigin-RevId: 264573625
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java
index b00d76e..eb13620 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java
@@ -628,7 +628,7 @@
TargetUtils.getFilteredExecutionInfo(
executionRequirementsUnchecked,
ruleContext.getRule(),
- starlarkSemantics.incompatibleAllowTagsPropagation());
+ starlarkSemantics.experimentalAllowTagsPropagation());
builder.setExecutionInfo(executionInfo);
if (inputManifestsUnchecked != Runtime.NONE) {
diff --git a/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java b/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
index c83f67f..c4d165f 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
@@ -161,19 +161,19 @@
public boolean incompatibleBzlDisallowLoadAfterStatement;
@Option(
- name = "incompatible_allow_tags_propagation",
+ name = "experimental_allow_tags_propagation",
+ oldName = "incompatible_allow_tags_propagation",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS,
effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS},
metadataTags = {
- OptionMetadataTag.INCOMPATIBLE_CHANGE,
- OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES
+ OptionMetadataTag.EXPERIMENTAL,
},
help =
"If set to true, tags will be propagated from a target to the actions' execution"
+ " requirements; otherwise tags are not propagated. See"
+ " https://github.com/bazelbuild/bazel/issues/8830 for details.")
- public boolean incompatibleAllowTagsPropagation;
+ public boolean experimentalAllowTagsPropagation;
@Option(
name = "incompatible_depset_union",
@@ -656,6 +656,7 @@
// <== Add new options here in alphabetic order ==>
.experimentalAllowIncrementalRepositoryUpdates(
experimentalAllowIncrementalRepositoryUpdates)
+ .experimentalAllowTagsPropagation(experimentalAllowTagsPropagation)
.experimentalBuildSettingApi(experimentalBuildSettingApi)
.experimentalCcSkylarkApiEnabledPackages(experimentalCcSkylarkApiEnabledPackages)
.experimentalEnableAndroidMigrationApis(experimentalEnableAndroidMigrationApis)
@@ -700,7 +701,6 @@
.incompatibleRestrictStringEscapes(incompatibleRestrictStringEscapes)
.incompatibleDisallowDictLookupUnhashableKeys(
incompatibleDisallowDictLookupUnhashableKeys)
- .incompatibleAllowTagsPropagation(incompatibleAllowTagsPropagation)
.incompatibleDisallowHashingFrozenMutables(incompatibleDisallowHashingFrozenMutables)
.build();
return INTERNER.intern(semantics);
diff --git a/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java b/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
index 3ab123a..b60aaca 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
@@ -243,12 +243,12 @@
* {@code SkylarkDict<String, String>} type, null or {@link
* com.google.devtools.build.lib.syntax.Runtime#NONE}
* @param rule a rule instance to get tags from
- * @param incompatibleAllowTagsPropagation if set to true, tags will be propagated from a target
- * to the actions' execution requirements, for more details {@see
- * SkylarkSematicOptions#incompatibleAllowTagsPropagation}
+ * @param allowTagsPropagation if set to true, tags will be propagated from a target to the
+ * actions' execution requirements, for more details {@see
+ * SkylarkSematicOptions#experimentalAllowTagsPropagation}
*/
public static ImmutableMap<String, String> getFilteredExecutionInfo(
- Object executionRequirementsUnchecked, Rule rule, boolean incompatibleAllowTagsPropagation)
+ Object executionRequirementsUnchecked, Rule rule, boolean allowTagsPropagation)
throws EvalException {
Map<String, String> checkedExecutionRequirements =
TargetUtils.filter(
@@ -262,7 +262,7 @@
// adding filtered execution requirements to the execution info map
executionInfoBuilder.putAll(checkedExecutionRequirements);
- if (incompatibleAllowTagsPropagation) {
+ if (allowTagsPropagation) {
Map<String, String> checkedTags = getExecutionInfo(rule);
// merging filtered tags to the execution info map avoiding duplicates
checkedTags.forEach(executionInfoBuilder::putIfAbsent);
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
index fe26fe1..f2bb26f 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
@@ -60,7 +60,7 @@
INCOMPATIBLE_OBJC_FRAMEWORK_CLEANUP(StarlarkSemantics::incompatibleObjcFrameworkCleanup),
INCOMPATIBLE_DISALLOW_RULE_EXECUTION_PLATFORM_CONSTRAINTS_ALLOWED(
StarlarkSemantics::incompatibleDisallowRuleExecutionPlatformConstraintsAllowed),
- INCOMPATIBLE_ALLOW_TAGS_PROPAGATION(StarlarkSemantics::incompatibleAllowTagsPropagation),
+ INCOMPATIBLE_ALLOW_TAGS_PROPAGATION(StarlarkSemantics::experimentalAllowTagsPropagation),
NONE(null);
// Using a Function here makes the enum definitions far cleaner, and, since this is
@@ -205,7 +205,7 @@
public abstract boolean incompatibleDisallowDictLookupUnhashableKeys();
- public abstract boolean incompatibleAllowTagsPropagation();
+ public abstract boolean experimentalAllowTagsPropagation();
public abstract boolean incompatibleDisallowHashingFrozenMutables();
@@ -242,6 +242,7 @@
public static final StarlarkSemantics DEFAULT_SEMANTICS =
builder()
// <== Add new options here in alphabetic order ==>
+ .experimentalAllowTagsPropagation(false)
.experimentalBuildSettingApi(true)
.experimentalCcSkylarkApiEnabledPackages(ImmutableList.of())
.experimentalAllowIncrementalRepositoryUpdates(true)
@@ -283,7 +284,6 @@
.incompatibleDepsetForLibrariesToLinkGetter(true)
.incompatibleRestrictStringEscapes(false)
.incompatibleDisallowDictLookupUnhashableKeys(false)
- .incompatibleAllowTagsPropagation(false)
.incompatibleDisallowHashingFrozenMutables(false)
.build();
@@ -308,7 +308,7 @@
public abstract Builder experimentalStarlarkUnusedInputsList(boolean value);
- public abstract Builder incompatibleAllowTagsPropagation(boolean value);
+ public abstract Builder experimentalAllowTagsPropagation(boolean value);
public abstract Builder incompatibleBzlDisallowLoadAfterStatement(boolean value);
diff --git a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
index fa991d0..a9be5d5 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
@@ -182,7 +182,7 @@
.experimentalPlatformsApi(rand.nextBoolean())
.experimentalStarlarkConfigTransitions(rand.nextBoolean())
.experimentalStarlarkUnusedInputsList(rand.nextBoolean())
- .incompatibleAllowTagsPropagation(rand.nextBoolean())
+ .experimentalAllowTagsPropagation(rand.nextBoolean())
.incompatibleBzlDisallowLoadAfterStatement(rand.nextBoolean())
.incompatibleDepsetForLibrariesToLinkGetter(rand.nextBoolean())
.incompatibleDepsetIsNotIterable(rand.nextBoolean())
diff --git a/src/test/shell/bazel/tags_propagation_skylark_test.sh b/src/test/shell/bazel/tags_propagation_skylark_test.sh
index 8ae1568..c135346e 100755
--- a/src/test/shell/bazel/tags_propagation_skylark_test.sh
+++ b/src/test/shell/bazel/tags_propagation_skylark_test.sh
@@ -52,7 +52,7 @@
)
EOF
- bazel aquery --incompatible_allow_tags_propagation '//test:test' > output1 2> $TEST_log \
+ bazel aquery --experimental_allow_tags_propagation '//test:test' > output1 2> $TEST_log \
|| fail "should have generated output successfully"
assert_contains "ExecutionInfo: {local: '', no-cache: '', no-remote: ''}" output1
@@ -89,7 +89,7 @@
)
EOF
- bazel aquery --incompatible_allow_tags_propagation '//test:test' > output1 2> $TEST_log \
+ bazel aquery --experimental_allow_tags_propagation '//test:test' > output1 2> $TEST_log \
|| fail "should have generated output successfully"
assert_contains "ExecutionInfo: {local: '', no-cache: '', no-remote: '', no-sandbox: '', requires-network: ''}" output1
@@ -128,14 +128,14 @@
)
EOF
- bazel aquery --incompatible_allow_tags_propagation '//test:test' > output1 2> $TEST_log \
+ bazel aquery --experimental_allow_tags_propagation '//test:test' > output1 2> $TEST_log \
|| fail "should have generated output successfully"
assert_contains "ExecutionInfo: {local: '', no-cache: 1, no-remote: '', requires-network: '', requires-x: ''}" output1
}
# Test a basic skylark ctx.actions.run rule which has tags, that should not be propagated
-# as --incompatible_allow_tags_propagation flag set to false
+# as --experimental_allow_tags_propagation flag set to false
function test_tags_not_propagated_to_run_when_incompatible_flag_off() {
mkdir -p test
cat << EOF >> test/BUILD
@@ -166,7 +166,7 @@
)
EOF
- bazel aquery --incompatible_allow_tags_propagation=false '//test:test' > output1 2> $TEST_log \
+ bazel aquery --experimental_allow_tags_propagation=false '//test:test' > output1 2> $TEST_log \
|| fail "should have generated output successfully"
assert_not_contains "ExecutionInfo: {}" output1