Remove "obsolete" and "default_obsolete" from the BUILD language.

Anyone who needs this kind of functionality in the future can redefine
it through user-defined constraints.

--
MOS_MIGRATED_REVID=88871811
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AbstractAttributeMapper.java b/src/main/java/com/google/devtools/build/lib/packages/AbstractAttributeMapper.java
index c13c362..6ae21d9 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AbstractAttributeMapper.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AbstractAttributeMapper.java
@@ -110,11 +110,6 @@
   }
 
   @Override
-  public Boolean getPackageDefaultObsolete() {
-    return pkg.getDefaultObsolete();
-  }
-
-  @Override
   public Boolean getPackageDefaultTestOnly() {
     return pkg.getDefaultTestOnly();
   }
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java b/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java
index def32b5..682d2dd 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java
@@ -196,8 +196,6 @@
       @Override
       public String getPackageDefaultHdrsCheck() { return owner.getPackageDefaultHdrsCheck(); }
       @Override
-      public Boolean getPackageDefaultObsolete() { return owner.getPackageDefaultObsolete(); }
-      @Override
       public Boolean getPackageDefaultTestOnly() { return owner.getPackageDefaultTestOnly(); }
       @Override
       public String getPackageDefaultDeprecation() { return owner.getPackageDefaultDeprecation(); }
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AttributeMap.java b/src/main/java/com/google/devtools/build/lib/packages/AttributeMap.java
index 52aecd1..131ed05 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AttributeMap.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AttributeMap.java
@@ -98,8 +98,6 @@
   // a more generic interface.
   String getPackageDefaultHdrsCheck();
 
-  Boolean getPackageDefaultObsolete();
-
   Boolean getPackageDefaultTestOnly();
 
   String getPackageDefaultDeprecation();
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index b909dd8..fc2b379 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -133,11 +133,6 @@
   private boolean defaultVisibilitySet;
 
   /**
-   * Default package-level 'obsolete' value for rules that do not specify it.
-   */
-  private boolean defaultObsolete = false;
-
-  /**
    * Default package-level 'testonly' value for rules that do not specify it.
    */
   private boolean defaultTestOnly = false;
@@ -288,13 +283,6 @@
   }
 
   /**
-   * Set the default 'obsolete' value for this package.
-   */
-  protected void setDefaultObsolete(boolean obsolete) {
-    defaultObsolete = obsolete;
-  }
-
-  /**
    * Set the default 'testonly' value for this package.
    */
   protected void setDefaultTestOnly(boolean testOnly) {
@@ -646,13 +634,6 @@
   }
 
   /**
-   * Returns the default obsolete value.
-   */
-  public Boolean getDefaultObsolete() {
-    return defaultObsolete;
-  }
-
-  /**
    * Returns the default testonly value.
    */
   public Boolean getDefaultTestOnly() {
@@ -660,7 +641,7 @@
   }
 
   /**
-   * Returns the default obsolete value.
+   * Returns the default deprecation value.
    */
   public String getDefaultDeprecation() {
     return defaultDeprecation;
@@ -946,14 +927,6 @@
       return self();
     }
 
-    /**
-     * Sets the default value of 'obsolete'. Rule-level 'obsolete' will override this.
-     */
-    B setDefaultObsolete(boolean defaultObsolete) {
-      pkg.setDefaultObsolete(defaultObsolete);
-      return self();
-    }
-
     /** Sets the default value of 'testonly'. Rule-level 'testonly' will override this. */
     B setDefaultTestonly(boolean defaultTestonly) {
       pkg.setDefaultTestOnly(defaultTestonly);
@@ -1350,8 +1323,7 @@
       // time, as forward references are permitted.
       List<Label> allTests = new ArrayList<>();
       for (Rule rule : rules) {
-        if (TargetUtils.isTestRule(rule) && !TargetUtils.hasManualTag(rule)
-            && !TargetUtils.isObsolete(rule)) {
+        if (TargetUtils.isTestRule(rule) && !TargetUtils.hasManualTag(rule)) {
           allTests.add(rule.getLabel());
         }
       }
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java b/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java
index cd407b6..1c56072 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java
@@ -316,9 +316,6 @@
     // It's important to do this after setting the default visibility, since that implicitly sets
     // this bit to true
     builder.setDefaultVisibilitySet(packagePb.getDefaultVisibilitySet());
-    if (packagePb.hasDefaultObsolete()) {
-      builder.setDefaultObsolete(packagePb.getDefaultObsolete());
-    }
     if (packagePb.hasDefaultTestonly()) {
       builder.setDefaultTestonly(packagePb.getDefaultTestonly());
     }
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 4df5486..a641c7c 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
@@ -159,18 +159,6 @@
     }
   }
 
-  private static class DefaultObsolete extends PackageArgument<Boolean> {
-    private DefaultObsolete() {
-      super("default_obsolete", Type.BOOLEAN);
-    }
-
-    @Override
-    protected void process(Package.LegacyBuilder pkgBuilder, Location location,
-        Boolean value) {
-      pkgBuilder.setDefaultObsolete(value);
-    }
-  }
-
   private static class DefaultTestOnly extends PackageArgument<Boolean> {
     private DefaultTestOnly() {
       super("default_testonly", Type.BOOLEAN);
@@ -432,7 +420,6 @@
            .add(new DefaultDeprecation())
            .add(new DefaultDistribs())
            .add(new DefaultLicenses())
-           .add(new DefaultObsolete())
            .add(new DefaultTestOnly())
            .add(new DefaultVisibility())
            .add(new Features())
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageSerializer.java b/src/main/java/com/google/devtools/build/lib/packages/PackageSerializer.java
index 8971cf2..83b8a64 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageSerializer.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageSerializer.java
@@ -200,7 +200,6 @@
       }
     }
 
-    builder.setDefaultObsolete(pkg.getDefaultObsolete());
     builder.setDefaultTestonly(pkg.getDefaultTestOnly());
     if (pkg.getDefaultDeprecation() != null) {
       builder.setDefaultDeprecation(pkg.getDefaultDeprecation());
diff --git a/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java b/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
index fb0cee9..6dd3dac 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
@@ -119,18 +119,6 @@
     return hasConstraint(rule, "external");
   }
 
-  /**
-   * Returns true, iff the given target is a rule and it has the attribute
-   * <code>obsolete<code/> set to one.
-   */
-  public static boolean isObsolete(Target target) {
-    if (!(target instanceof Rule)) {
-      return false;
-    }
-    Rule rule = (Rule) target;
-    return (rule.isAttrDefined("obsolete", Type.BOOLEAN))
-        && NonconfigurableAttributeMapper.of(rule).get("obsolete", Type.BOOLEAN);
-  }
 
   /**
    * If the given target is a rule, returns its <code>deprecation<code/> value, or null if unset.