Automated rollback of commit 87506825333846359462f37d92b6f7bd2119f109.

*** Reason for rollback ***

Now that we've redesigned how xcode versions are going to be selected, it no longer makes sense for locality to be tagged in this way.

*** Original change description ***

Extend XcodeVersionRule to tag Xcode versions with their origin (local or remote).

RELNOTES: None.
PiperOrigin-RevId: 282052225
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersionProperties.java b/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersionProperties.java
index 589d23d..0d9bd86 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersionProperties.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersionProperties.java
@@ -39,7 +39,6 @@
   @VisibleForTesting public static final String DEFAULT_MACOS_SDK_VERSION = "10.10";
   @VisibleForTesting public static final String DEFAULT_TVOS_SDK_VERSION = "9.0";
 
-  private final boolean isLocal;
   private final Optional<DottedVersion> xcodeVersion;
   private final DottedVersion defaultIosSdkVersion;
   private final DottedVersion defaultWatchosSdkVersion;
@@ -63,7 +62,7 @@
    * specified.
    */
   XcodeVersionProperties(DottedVersion xcodeVersion) {
-    this(xcodeVersion, true, null, null, null, null);
+    this(xcodeVersion, null, null, null, null);
   }
 
   /**
@@ -72,14 +71,12 @@
    */
   XcodeVersionProperties(
       DottedVersion xcodeVersion,
-      boolean isLocal,
       @Nullable String defaultIosSdkVersion,
       @Nullable String defaultWatchosSdkVersion,
       @Nullable String defaultTvosSdkVersion,
       @Nullable String defaultMacosSdkVersion) {
     super(SKYLARK_CONSTRUCTOR);
     this.xcodeVersion = Optional.fromNullable(xcodeVersion);
-    this.isLocal = isLocal;
     this.defaultIosSdkVersion =
         Strings.isNullOrEmpty(defaultIosSdkVersion)
             ? DottedVersion.fromStringUnchecked(DEFAULT_IOS_SDK_VERSION)
@@ -107,7 +104,6 @@
     return null;
   }
 
-
   /** Returns the default ios sdk version to use if this xcode version is in use. */
   @Override
   public String getDefaultIosSdkVersionString() {
@@ -137,11 +133,6 @@
     return xcodeVersion;
   }
 
-  @Override
-  public boolean isLocal() {
-    return isLocal;
-  }
-
   @Nullable
   public DottedVersion getDefaultIosSdkVersion() {
     return defaultIosSdkVersion;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersionRule.java b/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersionRule.java
index e6467f4..2f6d0af 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersionRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersionRule.java
@@ -15,7 +15,6 @@
 package com.google.devtools.build.lib.rules.apple;
 
 import static com.google.devtools.build.lib.packages.Attribute.attr;
-import static com.google.devtools.build.lib.packages.Type.BOOLEAN;
 import static com.google.devtools.build.lib.packages.Type.STRING;
 import static com.google.devtools.build.lib.packages.Type.STRING_LIST;
 
@@ -31,7 +30,6 @@
 
   static final String VERSION_ATTR_NAME = "version";
   static final String ALIASES_ATTR_NAME = "aliases";
-  static final String IS_LOCAL_ATTR_NAME = "is_local";
   static final String DEFAULT_IOS_SDK_VERSION_ATTR_NAME = "default_ios_sdk_version";
   static final String DEFAULT_WATCHOS_SDK_VERSION_ATTR_NAME = "default_watchos_sdk_version";
   static final String DEFAULT_TVOS_SDK_VERSION_ATTR_NAME = "default_tvos_sdk_version";
@@ -58,13 +56,7 @@
         .add(
             attr(ALIASES_ATTR_NAME, STRING_LIST)
                 .nonconfigurable("this rule determines configuration"))
-        /* <!-- #BLAZE_RULE(xcode_version).ATTRIBUTE(is_local) -->
-        Whether this xcode version originated locally.
-        <!-- #END_BLAZE_RULE.ATTRIBUTE --> */
-        .add(
-            attr(IS_LOCAL_ATTR_NAME, BOOLEAN)
-                .nonconfigurable("this rule determines configuration")
-                .value(true))
+
         /* <!-- #BLAZE_RULE(xcode_version).ATTRIBUTE(default_ios_sdk_version) -->
         The ios sdk version that is used by default when this version of xcode is being used.
         The <code>ios_sdk_version</code> build flag will override the value specified here.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersionRuleData.java b/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersionRuleData.java
index 4bffc23..4d645de 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersionRuleData.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersionRuleData.java
@@ -48,7 +48,6 @@
     DottedVersion xcodeVersion =
         DottedVersion.fromStringUnchecked(
             attrMapper.get(XcodeVersionRule.VERSION_ATTR_NAME, Type.STRING));
-    boolean isLocal = attrMapper.get(XcodeVersionRule.IS_LOCAL_ATTR_NAME, Type.BOOLEAN);
     String iosSdkVersionString =
         attrMapper.get(XcodeVersionRule.DEFAULT_IOS_SDK_VERSION_ATTR_NAME, Type.STRING);
     String watchosSdkVersionString =
@@ -61,7 +60,6 @@
     this.xcodeVersionProperties =
         new XcodeVersionProperties(
             xcodeVersion,
-            isLocal,
             iosSdkVersionString,
             watchosSdkVersionString,
             tvosSdkVersionString,
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/XcodePropertiesApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/XcodePropertiesApi.java
index ce99f14..3626d3d 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/XcodePropertiesApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/XcodePropertiesApi.java
@@ -40,13 +40,6 @@
   public String getXcodeVersionString();
 
   @SkylarkCallable(
-      name = "is_local",
-      doc = "Whether this xcode came from the user's machine. Defaults to true (local) if unknown.",
-      structField = true,
-      allowReturnNones = true)
-  public boolean isLocal();
-
-  @SkylarkCallable(
       name = "default_ios_sdk_version",
       doc = "The default iOS sdk version for this version of xcode, or <code>None</code> if "
           + "unknown.",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/XcodeVersionTest.java b/src/test/java/com/google/devtools/build/lib/rules/apple/XcodeVersionTest.java
index 247ae04..663674d 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/apple/XcodeVersionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/apple/XcodeVersionTest.java
@@ -15,7 +15,6 @@
 package com.google.devtools.build.lib.rules.apple;
 
 import static com.google.common.truth.Truth.assertThat;
-import static com.google.devtools.build.lib.testutil.MoreAsserts.assertThrows;
 
 import com.google.common.collect.ImmutableMap;
 import com.google.devtools.build.lib.analysis.ConfiguredTarget;
@@ -44,14 +43,12 @@
         "def my_rule_impl(ctx):",
         "   xcode_properties = ctx.attr.xcode[apple_common.XcodeProperties]",
         "   xcode_version = xcode_properties.xcode_version",
-        "   is_local = xcode_properties.is_local",
         "   ios_version = xcode_properties.default_ios_sdk_version",
         "   watchos_version = xcode_properties.default_watchos_sdk_version",
         "   tvos_version = xcode_properties.default_tvos_sdk_version",
         "   macos_version = xcode_properties.default_macos_sdk_version",
         "   return MyInfo(",
         "       xcode_version=xcode_version,",
-        "       is_local=is_local,",
         "       ios_version=ios_version,",
         "       watchos_version=watchos_version,",
         "       tvos_version=tvos_version,",
@@ -73,7 +70,6 @@
         "xcode_version(",
         "    name = 'my_xcode',",
         "    version = '8',",
-        "    is_local = True,",
         "    default_ios_sdk_version = '9.0',",
         "    default_watchos_sdk_version = '9.1',",
         "    default_tvos_sdk_version = '9.2',",
@@ -87,7 +83,6 @@
             Label.parseAbsolute("//examples/rule:apple_rules.bzl", ImmutableMap.of()), "MyInfo");
     StructImpl myInfo = (StructImpl) skylarkTarget.get(key);
     assertThat((String) myInfo.getValue("xcode_version")).isEqualTo("8");
-    assertThat(String.valueOf(myInfo.getValue("is_local"))).isEqualTo("true");
     assertThat((String) myInfo.getValue("ios_version")).isEqualTo("9.0");
     assertThat((String) myInfo.getValue("watchos_version")).isEqualTo("9.1");
     assertThat((String) myInfo.getValue("tvos_version")).isEqualTo("9.2");
@@ -95,57 +90,6 @@
   }
 
   @Test
-  public void testBadXcodeLocalityThrows() throws Exception {
-    scratch.file("examples/rule/BUILD");
-    scratch.file(
-        "examples/rule/apple_rules.bzl",
-        "MyInfo = provider()",
-        "def my_rule_impl(ctx):",
-        "   xcode_properties = ctx.attr.xcode[apple_common.XcodeProperties]",
-        "   xcode_version = xcode_properties.xcode_version",
-        "   is_local = xcode_properties.is_local",
-        "   ios_version = xcode_properties.default_ios_sdk_version",
-        "   watchos_version = xcode_properties.default_watchos_sdk_version",
-        "   tvos_version = xcode_properties.default_tvos_sdk_version",
-        "   macos_version = xcode_properties.default_macos_sdk_version",
-        "   return MyInfo(",
-        "       xcode_version=xcode_version,",
-        "       is_local=is_local,",
-        "       ios_version=ios_version,",
-        "       watchos_version=watchos_version,",
-        "       tvos_version=tvos_version,",
-        "       macos_version=macos_version,",
-        "   )",
-        "my_rule = rule(implementation = my_rule_impl,",
-        "   attrs = {",
-        "     'xcode': attr.label(),",
-        "   },",
-        ")");
-    scratch.file(
-        "examples/apple_skylark/BUILD",
-        "package(default_visibility = ['//visibility:public'])",
-        "load('//examples/rule:apple_rules.bzl', 'my_rule')",
-        "my_rule(",
-        "    name = 'my_target',",
-        "    xcode = ':my_xcode',",
-        ")",
-        "xcode_version(",
-        "    name = 'my_xcode',",
-        "    version = '8',",
-        "    is_local = true,",
-        "    default_ios_sdk_version = '9.0',",
-        "    default_watchos_sdk_version = '9.1',",
-        "    default_tvos_sdk_version = '9.2',",
-        "    default_macos_sdk_version = '9.3',",
-        ")");
-
-    Throwable thrown =
-        assertThrows(
-            AssertionError.class, () -> getConfiguredTarget("//examples/apple_skylark:my_target"));
-    assertThat(thrown).hasMessageThat().contains("name 'true' is not defined");
-  }
-
-  @Test
   public void testXcodeVersionCanBeReadFromNative() throws Exception {
     scratch.file(
         "examples/apple/BUILD",
@@ -153,7 +97,6 @@
         "xcode_version(",
         "    name = 'my_xcode',",
         "    version = '8',",
-        "    is_local = False,",
         "    default_ios_sdk_version = '9.0',",
         "    default_watchos_sdk_version = '9.1',",
         "    default_tvos_sdk_version = '9.2',",
@@ -164,7 +107,6 @@
     XcodeVersionProperties xcodeProperties =
         nativeTarget.get(XcodeVersionProperties.SKYLARK_CONSTRUCTOR);
     assertThat(xcodeProperties.getXcodeVersion().get().toString()).isEqualTo("8");
-    assertThat(xcodeProperties.isLocal()).isFalse();
     assertThat(xcodeProperties.getDefaultIosSdkVersion().toString()).isEqualTo("9.0");
     assertThat(xcodeProperties.getDefaultWatchosSdkVersion().toString()).isEqualTo("9.1");
     assertThat(xcodeProperties.getDefaultTvosSdkVersion().toString()).isEqualTo("9.2");