diff options
author | 2018-03-27 12:43:22 -0700 | |
---|---|---|
committer | 2018-03-27 12:45:58 -0700 | |
commit | 1cbce0fad88d02c76386e8525e03d0f427515ad2 (patch) | |
tree | d014f99feea84a2d13bfc8344a89e06ae91427a9 /src/main/java/com/google/devtools/build/lib/packages | |
parent | 44eb96413bc99291854c51a04b18397a400ccd90 (diff) |
New incompatible flag to disable PACKAGE_NAME and REPOSITORY_NAME.
RELNOTES[INC]:
Variables PACKAGE_NAME and REPOSITORY_NAME are deprecated in favor of
functions `package_name()` and `repository_name()`.
https://docs.bazel.build/versions/master/skylark/lib/native.html#package_name
PiperOrigin-RevId: 190657188
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages')
3 files changed, 30 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java index dce457b195..25fc689d8e 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java +++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java @@ -1331,7 +1331,13 @@ public final class PackageFactory { throws NoSuchPackageException, InterruptedException { Package externalPkg = newExternalPackageBuilder( buildFile.getRelative(Label.WORKSPACE_FILE_NAME), "TESTING").build(); - return createPackageForTesting(packageId, externalPkg, buildFile, locator, eventHandler); + return createPackageForTesting( + packageId, + externalPkg, + buildFile, + locator, + eventHandler, + SkylarkSemantics.DEFAULT_SEMANTICS); } /** @@ -1344,7 +1350,8 @@ public final class PackageFactory { Package externalPkg, Path buildFile, CachingPackageLocator locator, - ExtendedEventHandler eventHandler) + ExtendedEventHandler eventHandler, + SkylarkSemantics semantics) throws NoSuchPackageException, InterruptedException { String error = LabelValidator.validatePackageName(packageId.getPackageFragment().getPathString()); @@ -1372,7 +1379,7 @@ public final class PackageFactory { /*imports=*/ ImmutableMap.<String, Extension>of(), /*skylarkFileDependencies=*/ ImmutableList.<Label>of(), /*defaultVisibility=*/ ConstantRuleVisibility.PUBLIC, - SkylarkSemantics.DEFAULT_SEMANTICS, + semantics, globber) .build(); for (Postable post : result.getPosts()) { @@ -1544,8 +1551,10 @@ public final class PackageFactory { } pkgEnv.setupDynamic(PKG_CONTEXT, context); - pkgEnv.setupDynamic(Runtime.PKG_NAME, packageId.getPackageFragment().getPathString()); - pkgEnv.setupDynamic(Runtime.REPOSITORY_NAME, packageId.getRepository().toString()); + if (!pkgEnv.getSemantics().incompatiblePackageNameIsAFunction()) { + pkgEnv.setupDynamic(Runtime.PKG_NAME, packageId.getPackageFragment().getPathString()); + pkgEnv.setupDynamic(Runtime.REPOSITORY_NAME, packageId.getRepository().toString()); + } } /** 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 9056342bac..21d5c49aad 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 @@ -52,6 +52,7 @@ public final class SkylarkSemanticsCodec implements ObjectCodec<SkylarkSemantics codedOut.writeBoolNoTag(semantics.incompatibleDisallowThreeArgVardef()); codedOut.writeBoolNoTag(semantics.incompatibleDisallowToplevelIfStatement()); codedOut.writeBoolNoTag(semantics.incompatibleNewActionsApi()); + codedOut.writeBoolNoTag(semantics.incompatiblePackageNameIsAFunction()); codedOut.writeBoolNoTag(semantics.incompatibleRemoveNativeGitRepository()); codedOut.writeBoolNoTag(semantics.incompatibleRemoveNativeHttpArchive()); codedOut.writeBoolNoTag(semantics.incompatibleStringIsNotIterable()); @@ -73,6 +74,7 @@ public final class SkylarkSemanticsCodec implements ObjectCodec<SkylarkSemantics builder.incompatibleDisallowThreeArgVardef(codedIn.readBool()); builder.incompatibleDisallowToplevelIfStatement(codedIn.readBool()); builder.incompatibleNewActionsApi(codedIn.readBool()); + builder.incompatiblePackageNameIsAFunction(codedIn.readBool()); builder.incompatibleRemoveNativeGitRepository(codedIn.readBool()); builder.incompatibleRemoveNativeHttpArchive(codedIn.readBool()); builder.incompatibleStringIsNotIterable(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 afb730c75c..003012962e 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 @@ -169,6 +169,19 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable public boolean incompatibleNewActionsApi; @Option( + name = "incompatible_package_name_is_a_function", + defaultValue = "false", + category = "incompatible changes", + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.UNKNOWN}, + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + help = + "If set to true, the values PACKAGE_NAME and REPOSITORY_NAME are not available. " + + "Use the package_name() or repository_name() functions instead." + ) + public boolean incompatiblePackageNameIsAFunction; + + @Option( name = "incompatible_remove_native_git_repository", defaultValue = "false", category = "incompatible changes", @@ -229,6 +242,7 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable .incompatibleDisallowThreeArgVardef(incompatibleDisallowThreeArgVardef) .incompatibleDisallowToplevelIfStatement(incompatibleDisallowToplevelIfStatement) .incompatibleNewActionsApi(incompatibleNewActionsApi) + .incompatiblePackageNameIsAFunction(incompatiblePackageNameIsAFunction) .incompatibleRemoveNativeGitRepository(incompatibleRemoveNativeGitRepository) .incompatibleRemoveNativeHttpArchive(incompatibleRemoveNativeHttpArchive) .incompatibleStringIsNotIterable(incompatibleStringIsNotIterable) |