Introduce no-op --experimental_google_legacy_api flag
This flag will be used to guard a substantial amount of experimental-only Starlark Build API pertaining to Google legacy code.
RELNOTES: None.
PiperOrigin-RevId: 244378067
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 58208a4..5ee13c1 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
@@ -90,6 +90,17 @@
help = "If set to true, enables the APIs required to support the Android Starlark migration.")
public boolean experimentalEnableAndroidMigrationApis;
+ @Option(
+ name = "experimental_google_legacy_api",
+ defaultValue = "false",
+ documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS,
+ effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
+ metadataTags = {OptionMetadataTag.EXPERIMENTAL},
+ help =
+ "If set to true, exposes a number of experimental pieces of Starlark build API "
+ + "pertaining to Google legacy code.")
+ public boolean experimentalGoogleLegacyApi;
+
// This flag is declared in StarlarkSemanticsOptions instead of JavaOptions because there is no
// way to retrieve the java configuration from the Java implementation of
// java_common.create_provider.
@@ -573,6 +584,7 @@
.experimentalBuildSettingApi(experimentalBuildSettingApi)
.experimentalCcSkylarkApiEnabledPackages(experimentalCcSkylarkApiEnabledPackages)
.experimentalEnableAndroidMigrationApis(experimentalEnableAndroidMigrationApis)
+ .experimentalGoogleLegacyApi(experimentalGoogleLegacyApi)
.experimentalJavaCommonCreateProviderEnabledPackages(
experimentalJavaCommonCreateProviderEnabledPackages)
.experimentalPlatformsApi(experimentalPlatformsApi)
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 5d78a88..fc5ab5d 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
@@ -120,6 +120,8 @@
public abstract boolean experimentalEnableAndroidMigrationApis();
+ public abstract boolean experimentalGoogleLegacyApi();
+
public abstract ImmutableList<String> experimentalJavaCommonCreateProviderEnabledPackages();
public abstract boolean experimentalPlatformsApi();
@@ -208,6 +210,7 @@
.experimentalBuildSettingApi(false)
.experimentalCcSkylarkApiEnabledPackages(ImmutableList.of())
.experimentalEnableAndroidMigrationApis(false)
+ .experimentalGoogleLegacyApi(false)
.experimentalJavaCommonCreateProviderEnabledPackages(ImmutableList.of())
.experimentalPlatformsApi(false)
.experimentalRestrictNamedParams(false)
@@ -256,6 +259,8 @@
public abstract Builder experimentalEnableAndroidMigrationApis(boolean value);
+ public abstract Builder experimentalGoogleLegacyApi(boolean value);
+
public abstract Builder experimentalJavaCommonCreateProviderEnabledPackages(List<String> value);
public abstract Builder experimentalPlatformsApi(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 6b6e84b..08eeec2 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
@@ -124,6 +124,7 @@
+ ","
+ rand.nextDouble(),
"--experimental_enable_android_migration_apis=" + rand.nextBoolean(),
+ "--experimental_google_legacy_api=" + rand.nextBoolean(),
"--experimental_java_common_create_provider_enabled_packages="
+ rand.nextDouble()
+ ","
@@ -175,6 +176,7 @@
.experimentalCcSkylarkApiEnabledPackages(
ImmutableList.of(String.valueOf(rand.nextDouble()), String.valueOf(rand.nextDouble())))
.experimentalEnableAndroidMigrationApis(rand.nextBoolean())
+ .experimentalGoogleLegacyApi(rand.nextBoolean())
.experimentalJavaCommonCreateProviderEnabledPackages(
ImmutableList.of(String.valueOf(rand.nextDouble()), String.valueOf(rand.nextDouble())))
.experimentalPlatformsApi(rand.nextBoolean())