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);