Delete the now unused --experimental_create_py_symlinks flag.
PiperOrigin-RevId: 620061214
Change-Id: Ifc620ae4d054af4c4a400d0fe92d2ebcb7a68bc5
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
index f40dc6e..1011898 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -105,7 +105,6 @@
import com.google.devtools.build.lib.rules.platform.PlatformRules;
import com.google.devtools.build.lib.rules.proto.BazelProtoCommon;
import com.google.devtools.build.lib.rules.proto.ProtoConfiguration;
-import com.google.devtools.build.lib.rules.python.PyRuleClasses.Py3Symlink;
import com.google.devtools.build.lib.rules.python.PyRuntimeRule;
import com.google.devtools.build.lib.rules.python.PythonConfiguration;
import com.google.devtools.build.lib.rules.repository.CoreWorkspaceRules;
@@ -445,7 +444,6 @@
Starlark.NONE, PyBootstrap.allowedRepositories));
builder.addStarlarkBuiltinsInternal(BazelPyBuiltins.NAME, new BazelPyBuiltins());
builder.addStarlarkBootstrap(new PyBootstrap());
- builder.addSymlinkDefinition(Py3Symlink.INSTANCE);
try {
builder.addWorkspaceFileSuffix(
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequestOptions.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequestOptions.java
index 94fe4e9..f4c4993 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequestOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequestOptions.java
@@ -324,21 +324,6 @@
}
@Option(
- name = "experimental_create_py_symlinks",
- defaultValue = "false",
- documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
- help =
- "If enabled, two convenience symlinks, `py2` and `py3`, will be created (with the"
- + " appropriate prefix). These point to the output directories for the Python 2 and"
- + " Python 3 configurations, respectively. This can be used to access outputs in the"
- + " bin directory of a specific Python version. For instance, if --symlink_prefix is"
- + " `foo-`, the path `foo-py2/bin` behaves like `foo-bin` except that it is"
- + " guaranteed to contain artifacts built in the Python 2 configuration. IMPORTANT:"
- + " This flag is not planned to be enabled by default, and should not be relied on.")
- public boolean experimentalCreatePySymlinks;
-
- @Option(
name = "use_action_cache",
defaultValue = "true",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/BUILD b/src/main/java/com/google/devtools/build/lib/rules/python/BUILD
index 9b034314..1e580dd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/BUILD
@@ -18,13 +18,11 @@
),
deps = [
"//src/main/java/com/google/devtools/build/docgen/annot",
- "//src/main/java/com/google/devtools/build/lib:build-request-options",
"//src/main/java/com/google/devtools/build/lib/actions",
"//src/main/java/com/google/devtools/build/lib/actions:artifacts",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/abstract_file_write_action",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/deterministic_writer",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
- "//src/main/java/com/google/devtools/build/lib/analysis:config/build_configuration",
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_options",
"//src/main/java/com/google/devtools/build/lib/analysis:config/core_option_converters",
"//src/main/java/com/google/devtools/build/lib/analysis:config/fragment",
@@ -42,13 +40,11 @@
"//src/main/java/com/google/devtools/build/lib/packages/semantics",
"//src/main/java/com/google/devtools/build/lib/rules/cpp",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi/python",
"//src/main/java/com/google/devtools/build/lib/util",
"//src/main/java/com/google/devtools/build/lib/util:filetype",
"//src/main/java/com/google/devtools/build/lib/util:os",
- "//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
"//src/main/java/com/google/devtools/common/options",
"//src/main/java/net/starlark/java/annot",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyRuleClasses.java
index 376482e..ebf7182 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyRuleClasses.java
@@ -13,20 +13,8 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.python;
-import static com.google.common.collect.ImmutableSet.toImmutableSet;
-
-import com.google.common.base.Ascii;
-import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
-import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.SymlinkDefinition;
-import com.google.devtools.build.lib.buildtool.BuildRequestOptions;
-import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.packages.Attribute.AllowedValueSet;
import com.google.devtools.build.lib.util.FileType;
-import com.google.devtools.build.lib.vfs.Path;
-import java.util.Set;
-import java.util.function.Function;
/** Rule definitions for Python rules. */
public class PyRuleClasses {
@@ -44,45 +32,4 @@
return String.format("has to be one of 'PY2' or 'PY3' instead of '%s'", value);
}
};
-
- /** The py3 symlinks. */
- public static final class Py3Symlink implements SymlinkDefinition {
- public static final Py3Symlink INSTANCE = new Py3Symlink();
-
- @Override
- public String getLinkName(String symlinkPrefix, String workspaceBaseName) {
- return symlinkPrefix + Ascii.toLowerCase(PythonVersion.PY3.toString());
- }
-
- @Override
- public ImmutableSet<Path> getLinkPaths(
- BuildRequestOptions buildRequestOptions,
- Set<BuildConfigurationValue> targetConfigs,
- Function<BuildOptions, BuildConfigurationValue> configGetter,
- RepositoryName repositoryName,
- Path outputPath,
- Path execRoot) {
- if (!buildRequestOptions.experimentalCreatePySymlinks) {
- return ImmutableSet.of();
- }
-
- return targetConfigs.stream()
- .map(
- config -> {
- BuildOptions options = config.getOptions();
- PythonOptions opts =
- options.hasNoConfig() ? null : options.get(PythonOptions.class);
- if (opts == null || !opts.canTransitionPythonVersion(PythonVersion.PY3)) {
- return config;
- } else {
- BuildOptions newOptions = options.clone();
- newOptions.get(PythonOptions.class).setPythonVersion(PythonVersion.PY3);
- return configGetter.apply(newOptions);
- }
- })
- .map(config -> config.getOutputDirectory(repositoryName).getRoot().asPath())
- .distinct()
- .collect(toImmutableSet());
- }
- }
}