Add flag --experimental_enable_repo_mapping to gate usage of repo_mapping functionality in WORKSPACE rules. RELNOTES: None PiperOrigin-RevId: 199332092
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java index 758eb39..c1d6dac 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java +++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java
@@ -43,6 +43,7 @@ SerializationContext context, SkylarkSemantics semantics, CodedOutputStream codedOut) throws SerializationException, IOException { // <== Add new options here in alphabetic order ==> + codedOut.writeBoolNoTag(semantics.experimentalEnableRepoMapping()); codedOut.writeBoolNoTag(semantics.incompatibleBzlDisallowLoadAfterStatement()); codedOut.writeBoolNoTag(semantics.incompatibleDepsetIsNotIterable()); codedOut.writeBoolNoTag(semantics.incompatibleDepsetUnion()); @@ -67,6 +68,7 @@ SkylarkSemantics.Builder builder = SkylarkSemantics.builder(); // <== Add new options here in alphabetic order ==> + builder.experimentalEnableRepoMapping(codedIn.readBool()); builder.incompatibleBzlDisallowLoadAfterStatement(codedIn.readBool()); builder.incompatibleDepsetIsNotIterable(codedIn.readBool()); builder.incompatibleDepsetUnion(codedIn.readBool());
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java index 0a9a9eb..d77f5c9 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java +++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
@@ -60,6 +60,15 @@ // <== Add new options here in alphabetic order ==> @Option( + name = "experimental_enable_repo_mapping", + defaultValue = "false", + documentationCategory = OptionDocumentationCategory.UNDOCUMENTED, + effectTags = OptionEffectTag.BUILD_FILE_SEMANTICS, + help = "If set to true, enables the use of the `repo_mapping` attribute in WORKSPACE files." + ) + public boolean experimentalEnableRepoMapping; + + @Option( name = "incompatible_bzl_disallow_load_after_statement", defaultValue = "false", documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, @@ -288,6 +297,7 @@ public SkylarkSemantics toSkylarkSemantics() { return SkylarkSemantics.builder() // <== Add new options here in alphabetic order ==> + .experimentalEnableRepoMapping(experimentalEnableRepoMapping) .incompatibleBzlDisallowLoadAfterStatement(incompatibleBzlDisallowLoadAfterStatement) .incompatibleDepsetIsNotIterable(incompatibleDepsetIsNotIterable) .incompatibleDepsetUnion(incompatibleDepsetUnion)
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java index 1a5cc17..ac556e2 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
@@ -39,6 +39,8 @@ AutoValue_SkylarkSemantics.class; // <== Add new options here in alphabetic order ==> + public abstract boolean experimentalEnableRepoMapping(); + public abstract boolean incompatibleBzlDisallowLoadAfterStatement(); public abstract boolean incompatibleDepsetIsNotIterable(); @@ -86,6 +88,7 @@ public static final SkylarkSemantics DEFAULT_SEMANTICS = builder() // <== Add new options here in alphabetic order ==> + .experimentalEnableRepoMapping(false) .incompatibleBzlDisallowLoadAfterStatement(false) .incompatibleDepsetIsNotIterable(false) .incompatibleDepsetUnion(false) @@ -109,6 +112,8 @@ public abstract static class Builder { // <== Add new options here in alphabetic order ==> + public abstract Builder experimentalEnableRepoMapping(boolean value); + public abstract Builder incompatibleBzlDisallowLoadAfterStatement(boolean value); public abstract Builder incompatibleDepsetIsNotIterable(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 0edd71e..8d6e217 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
@@ -119,6 +119,7 @@ private static SkylarkSemanticsOptions buildRandomOptions(Random rand) throws Exception { return parseOptions( // <== Add new options here in alphabetic order ==> + "--experimental_enable_repo_mapping=" + rand.nextBoolean(), "--incompatible_bzl_disallow_load_after_statement=" + rand.nextBoolean(), "--incompatible_depset_is_not_iterable=" + rand.nextBoolean(), "--incompatible_depset_union=" + rand.nextBoolean(), @@ -144,6 +145,7 @@ private static SkylarkSemantics buildRandomSemantics(Random rand) { return SkylarkSemantics.builder() // <== Add new options here in alphabetic order ==> + .experimentalEnableRepoMapping(rand.nextBoolean()) .incompatibleBzlDisallowLoadAfterStatement(rand.nextBoolean()) .incompatibleDepsetIsNotIterable(rand.nextBoolean()) .incompatibleDepsetUnion(rand.nextBoolean())