diff options
author | dannark <dannark@google.com> | 2018-08-07 16:31:52 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-08-07 16:33:08 -0700 |
commit | ed598bc180ff347f50ca70a04074f430185aa9c5 (patch) | |
tree | 04c996e8e700714a41d301c4f5b1e9b82b3bbe3a /src/main | |
parent | 075ab1e258902360bbd039d4b9fb4a6041a988d2 (diff) |
Put main repo remapping behind a flag.
RELNOTES: None
PiperOrigin-RevId: 207801155
Diffstat (limited to 'src/main')
3 files changed, 35 insertions, 18 deletions
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 3277c38440..5ef70d319b 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 @@ -59,15 +59,6 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable // <== 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 = "experimental_cc_skylark_api_enabled_packages", converter = CommaSeparatedOptionListConverter.class, defaultValue = "", @@ -80,6 +71,22 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable public List<String> experimentalCcSkylarkApiEnabledPackages; @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 = "experimental_remap_main_repo", + defaultValue = "false", + documentationCategory = OptionDocumentationCategory.UNDOCUMENTED, + effectTags = OptionEffectTag.LOADING_AND_ANALYSIS, + help = "If set to true, will treat references to '@<main repo name>' the same as '@'.") + public boolean experimentalRemapMainRepo; + + @Option( name = "incompatible_bzl_disallow_load_after_statement", defaultValue = "false", documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, @@ -363,6 +370,7 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable // <== Add new options here in alphabetic order ==> .experimentalCcSkylarkApiEnabledPackages(experimentalCcSkylarkApiEnabledPackages) .experimentalEnableRepoMapping(experimentalEnableRepoMapping) + .experimentalRemapMainRepo(experimentalRemapMainRepo) .incompatibleBzlDisallowLoadAfterStatement(incompatibleBzlDisallowLoadAfterStatement) .incompatibleDepsetIsNotIterable(incompatibleDepsetIsNotIterable) .incompatibleDepsetUnion(incompatibleDepsetUnion) diff --git a/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java b/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java index 6cc7ddfffe..c412181506 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java +++ b/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java @@ -346,10 +346,12 @@ public class WorkspaceFactory { } // Add entry in repository map from "@name" --> "@" to avoid issue where bazel // treats references to @name as a separate external repo - builder.addRepositoryMappingEntry( - RepositoryName.MAIN, - RepositoryName.createFromValidStrippedName(name), - RepositoryName.MAIN); + if (env.getSemantics().experimentalRemapMainRepo()) { + builder.addRepositoryMappingEntry( + RepositoryName.MAIN, + RepositoryName.createFromValidStrippedName(name), + RepositoryName.MAIN); + } return NONE; } }; @@ -498,11 +500,13 @@ public class WorkspaceFactory { // Add an entry in every repository from @<mainRepoName> to "@" to avoid treating // @<mainRepoName> as a separate repository. This will be overridden if the main // repository has a repo_mapping entry from <mainRepoName> to something. - if (!Strings.isNullOrEmpty(builder.pkg.getWorkspaceName())) { - builder.addRepositoryMappingEntry( - RepositoryName.createFromValidStrippedName(externalRepoName), - RepositoryName.createFromValidStrippedName(builder.pkg.getWorkspaceName()), - RepositoryName.MAIN); + if (env.getSemantics().experimentalRemapMainRepo()) { + if (!Strings.isNullOrEmpty(builder.pkg.getWorkspaceName())) { + builder.addRepositoryMappingEntry( + RepositoryName.createFromValidStrippedName(externalRepoName), + RepositoryName.createFromValidStrippedName(builder.pkg.getWorkspaceName()), + RepositoryName.MAIN); + } } if (env.getSemantics().experimentalEnableRepoMapping()) { if (kwargs.containsKey("repo_mapping")) { 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 5893ac49ab..85f6d4d212 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 @@ -45,6 +45,8 @@ public abstract class SkylarkSemantics { public abstract boolean experimentalEnableRepoMapping(); + public abstract boolean experimentalRemapMainRepo(); + public abstract boolean incompatibleBzlDisallowLoadAfterStatement(); public abstract boolean incompatibleDepsetIsNotIterable(); @@ -102,6 +104,7 @@ public abstract class SkylarkSemantics { // <== Add new options here in alphabetic order ==> .experimentalCcSkylarkApiEnabledPackages(ImmutableList.of()) .experimentalEnableRepoMapping(false) + .experimentalRemapMainRepo(false) .incompatibleBzlDisallowLoadAfterStatement(false) .incompatibleDepsetIsNotIterable(false) .incompatibleDepsetUnion(false) @@ -133,6 +136,8 @@ public abstract class SkylarkSemantics { public abstract Builder experimentalEnableRepoMapping(boolean value); + public abstract Builder experimentalRemapMainRepo(boolean value); + public abstract Builder incompatibleBzlDisallowLoadAfterStatement(boolean value); public abstract Builder incompatibleDepsetIsNotIterable(boolean value); |