Remove the publicByDefault attribute of rules

It is no longer used (and probably shouldn't be used).

PiperOrigin-RevId: 326417219
diff --git a/src/main/java/com/google/devtools/build/docgen/RuleDocumentation.java b/src/main/java/com/google/devtools/build/docgen/RuleDocumentation.java
index 9faf639..f958556 100644
--- a/src/main/java/com/google/devtools/build/docgen/RuleDocumentation.java
+++ b/src/main/java/com/google/devtools/build/docgen/RuleDocumentation.java
@@ -17,8 +17,6 @@
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableSet;
 import com.google.devtools.build.docgen.DocgenConsts.RuleType;
-import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
-import com.google.devtools.build.lib.packages.RuleClass;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -54,7 +52,6 @@
   private final Map<String, String> docVariables = new HashMap<>();
   // Only one attribute per attributeName is allowed
   private final Set<RuleDocumentationAttribute> attributes = new TreeSet<>();
-  private final ConfiguredRuleClassProvider ruleClassProvider;
 
   private RuleLinkExpander linkExpander;
 
@@ -75,7 +72,6 @@
       int startLineCount,
       String fileName,
       ImmutableSet<String> flags,
-      ConfiguredRuleClassProvider ruleClassProvider,
       String familySummary)
       throws BuildEncyclopediaDocException {
     Preconditions.checkNotNull(ruleName);
@@ -91,7 +87,6 @@
     this.startLineCount = startLineCount;
     this.fileName = fileName;
     this.flags = flags;
-    this.ruleClassProvider = ruleClassProvider;
     this.familySummary = familySummary;
   }
 
@@ -102,8 +97,7 @@
       String htmlDocumentation,
       int startLineCount,
       String fileName,
-      ImmutableSet<String> flags,
-      ConfiguredRuleClassProvider ruleClassProvider)
+      ImmutableSet<String> flags)
       throws BuildEncyclopediaDocException {
     this(
         ruleName,
@@ -113,7 +107,6 @@
         startLineCount,
         fileName,
         flags,
-        ruleClassProvider,
         "");
   }
 
@@ -267,14 +260,6 @@
   }
 
   /**
-   * Returns whether this rule has public visibility by default.
-   */
-  public boolean isPublicByDefault() {
-    RuleClass ruleClass = ruleClassProvider.getRuleClassMap().get(ruleName);
-    return ruleClass != null && ruleClass.isPublicByDefault();
-  }
-
-  /**
    * Returns whether this rule is deprecated.
    */
   public boolean isDeprecated() {
diff --git a/src/main/java/com/google/devtools/build/docgen/SourceFileReader.java b/src/main/java/com/google/devtools/build/docgen/SourceFileReader.java
index bb26b1b..2109bc4 100644
--- a/src/main/java/com/google/devtools/build/docgen/SourceFileReader.java
+++ b/src/main/java/com/google/devtools/build/docgen/SourceFileReader.java
@@ -207,7 +207,6 @@
                     getLineCnt(),
                     javaSourceFilePath,
                     flags,
-                    ruleClassProvider,
                     familySummary));
             sb = new StringBuilder();
             inBlazeRuleDocs = false;
diff --git a/src/main/java/com/google/devtools/build/docgen/templates/be/rules.vm b/src/main/java/com/google/devtools/build/docgen/templates/be/rules.vm
index e867fb3..6862635 100644
--- a/src/main/java/com/google/devtools/build/docgen/templates/be/rules.vm
+++ b/src/main/java/com/google/devtools/build/docgen/templates/be/rules.vm
@@ -73,9 +73,6 @@
     #end
     </tbody>
   </table>
-  #if ($rule.isPublicByDefault())
-    The default visibility is public: <code>visibility = ["//visibility:public"]</code>.
-  #end
 #end
 
 #if (!$singlePage)
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Rule.java b/src/main/java/com/google/devtools/build/lib/packages/Rule.java
index d3a3acb..a85329b 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Rule.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Rule.java
@@ -664,10 +664,6 @@
       return visibility;
     }
 
-    if (getRuleClassObject().isPublicByDefault()) {
-      return ConstantRuleVisibility.PUBLIC;
-    }
-
     return pkg.getDefaultVisibility();
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index ef42c40..e2657e8 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -657,7 +657,6 @@
     private final boolean starlark;
     private boolean starlarkTestable = false;
     private boolean documented;
-    private boolean publicByDefault = false;
     private boolean binaryOutput = true;
     private boolean workspaceOnly = false;
     private boolean isExecutableStarlark = false;
@@ -875,7 +874,6 @@
           starlark,
           starlarkTestable,
           documented,
-          publicByDefault,
           binaryOutput,
           workspaceOnly,
           isExecutableStarlark,
@@ -1048,11 +1046,6 @@
       return this;
     }
 
-    public Builder publicByDefault() {
-      publicByDefault = true;
-      return this;
-    }
-
     public Builder setWorkspaceOnly() {
       workspaceOnly = true;
       return this;
@@ -1557,7 +1550,6 @@
   private final boolean isStarlark;
   private final boolean starlarkTestable;
   private final boolean documented;
-  private final boolean publicByDefault;
   private final boolean binaryOutput;
   private final boolean workspaceOnly;
   private final boolean isExecutableStarlark;
@@ -1695,7 +1687,6 @@
       boolean isStarlark,
       boolean starlarkTestable,
       boolean documented,
-      boolean publicByDefault,
       boolean binaryOutput,
       boolean workspaceOnly,
       boolean isExecutableStarlark,
@@ -1734,7 +1725,6 @@
     this.targetKind = name + Rule.targetKindSuffix();
     this.starlarkTestable = starlarkTestable;
     this.documented = documented;
-    this.publicByDefault = publicByDefault;
     this.binaryOutput = binaryOutput;
     this.implicitOutputsFunction = implicitOutputsFunction;
     this.transitionFactory = transitionFactory;
@@ -2550,10 +2540,6 @@
     return documented;
   }
 
-  public boolean isPublicByDefault() {
-    return publicByDefault;
-  }
-
   /**
    * Returns true iff the outputs of this rule should be created beneath the
    * <i>bin</i> directory, false if beneath <i>genfiles</i>.  For most rule
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleFormatter.java b/src/main/java/com/google/devtools/build/lib/packages/RuleFormatter.java
index 37299e1..03af089 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleFormatter.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleFormatter.java
@@ -37,7 +37,6 @@
     Build.Rule.Builder builder = Build.Rule.newBuilder();
     builder.setName(rule.getLabel().getName());
     builder.setRuleClass(rule.getRuleClass());
-    builder.setPublicByDefault(rule.getRuleClassObject().isPublicByDefault());
 
     RawAttributeMapper rawAttributeMapper = RawAttributeMapper.of(rule);
     boolean isStarlark = rule.getRuleClassObject().isStarlark();
diff --git a/src/main/protobuf/build.proto b/src/main/protobuf/build.proto
index 181a8e4..a822f1f 100644
--- a/src/main/protobuf/build.proto
+++ b/src/main/protobuf/build.proto
@@ -308,7 +308,7 @@
   repeated string default_setting = 7;
 
   // The rule's class's public by default value.
-  optional bool public_by_default = 9;
+  optional bool DEPRECATED_public_by_default = 9;
 
   optional bool DEPRECATED_is_skylark = 10;
 
diff --git a/src/test/java/com/google/devtools/build/docgen/RuleDocumentationTest.java b/src/test/java/com/google/devtools/build/docgen/RuleDocumentationTest.java
index 54d1c2b..4b75151 100644
--- a/src/test/java/com/google/devtools/build/docgen/RuleDocumentationTest.java
+++ b/src/test/java/com/google/devtools/build/docgen/RuleDocumentationTest.java
@@ -19,8 +19,6 @@
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableSet;
 import com.google.devtools.build.docgen.testutil.TestData.TestRule;
-import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
-import com.google.devtools.build.lib.testutil.TestRuleClassProvider;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
@@ -32,8 +30,6 @@
 public class RuleDocumentationTest {
 
   private static final ImmutableSet<String> NO_FLAGS = ImmutableSet.<String>of();
-  private static final ConfiguredRuleClassProvider provider =
-      TestRuleClassProvider.getRuleClassProvider();
 
   private static void assertContains(String base, String value) {
     assertWithMessage(base + " is expected to contain " + value)
@@ -58,12 +54,15 @@
 
   @Test
   public void testVariableSubstitution() throws BuildEncyclopediaDocException {
-    RuleDocumentation ruleDoc = new RuleDocumentation(
-        "rule", "OTHER", "FOO", Joiner.on("\n").join(new String[] {
-          "x",
-          "${VAR}",
-          "z"}),
-        0, "", ImmutableSet.<String>of(), provider);
+    RuleDocumentation ruleDoc =
+        new RuleDocumentation(
+            "rule",
+            "OTHER",
+            "FOO",
+            Joiner.on("\n").join(new String[] {"x", "${VAR}", "z"}),
+            0,
+            "",
+            ImmutableSet.<String>of());
     ruleDoc.addDocVariable("VAR", "y");
     assertThat(ruleDoc.getHtmlDocumentation()).isEqualTo("x\ny\nz");
   }
@@ -74,8 +73,9 @@
         "licenses", "common", "attribute doc");
     checkAttributeForRule(
         new RuleDocumentation(
-            "java_binary", "BINARY", "JAVA", "", 0, "", ImmutableSet.<String>of(), provider),
-        licensesAttr, true);
+            "java_binary", "BINARY", "JAVA", "", 0, "", ImmutableSet.<String>of()),
+        licensesAttr,
+        true);
   }
 
   @Test
@@ -84,31 +84,36 @@
         "runtime_deps", "attribute doc", 0, "", NO_FLAGS);
     checkAttributeForRule(
         new RuleDocumentation(
-            "java_binary", "BINARY", "JAVA", "", 0, "", ImmutableSet.<String>of(), provider),
-        runtimeDepsAttr, false);
+            "java_binary", "BINARY", "JAVA", "", 0, "", ImmutableSet.<String>of()),
+        runtimeDepsAttr,
+        false);
     checkAttributeForRule(
         new RuleDocumentation(
-            "java_library", "LIBRARY", "JAVA", "", 0, "", ImmutableSet.<String>of(), provider),
-        runtimeDepsAttr, false);
+            "java_library", "LIBRARY", "JAVA", "", 0, "", ImmutableSet.<String>of()),
+        runtimeDepsAttr,
+        false);
   }
 
   @Test
   public void testRuleDocFlagSubstitution() throws BuildEncyclopediaDocException {
-    RuleDocumentation ruleDoc = new RuleDocumentation(
-        "rule", "OTHER", "FOO", "x", 0, "", ImmutableSet.<String>of("DEPRECATED"), provider);
+    RuleDocumentation ruleDoc =
+        new RuleDocumentation(
+            "rule", "OTHER", "FOO", "x", 0, "", ImmutableSet.<String>of("DEPRECATED"));
     ruleDoc.addDocVariable("VAR", "y");
     assertThat(ruleDoc.getHtmlDocumentation()).isEqualTo("x");
   }
 
   @Test
   public void testCommandLineDocumentation() throws BuildEncyclopediaDocException {
-    RuleDocumentation ruleDoc = new RuleDocumentation(
-        "foo_binary", "OTHER", "FOO", Joiner.on("\n").join(new String[] {
-            "x",
-            "y",
-            "z",
-            "${VAR}"}),
-        0, "", ImmutableSet.<String>of(), provider);
+    RuleDocumentation ruleDoc =
+        new RuleDocumentation(
+            "foo_binary",
+            "OTHER",
+            "FOO",
+            Joiner.on("\n").join(new String[] {"x", "y", "z", "${VAR}"}),
+            0,
+            "",
+            ImmutableSet.<String>of());
     ruleDoc.addDocVariable("VAR", "w");
     RuleDocumentationAttribute attributeDoc = RuleDocumentationAttribute.create(TestRule.class,
         "srcs", "attribute doc", 0, "", NO_FLAGS);
@@ -118,60 +123,63 @@
 
   @Test
   public void testExtractExamples() throws BuildEncyclopediaDocException {
-    RuleDocumentation ruleDoc = new RuleDocumentation(
-        "rule", "OTHER", "FOO", Joiner.on("\n").join(new String[] {
-            "x",
-            "<!-- #BLAZE_RULE.EXAMPLE -->",
-            "a",
-            "<!-- #BLAZE_RULE.END_EXAMPLE -->",
-            "y",
-            "<!-- #BLAZE_RULE.EXAMPLE -->",
-            "b",
-            "<!-- #BLAZE_RULE.END_EXAMPLE -->",
-            "z"}),
-        0, "", ImmutableSet.<String>of(), provider);
+    RuleDocumentation ruleDoc =
+        new RuleDocumentation(
+            "rule",
+            "OTHER",
+            "FOO",
+            Joiner.on("\n")
+                .join(
+                    new String[] {
+                      "x",
+                      "<!-- #BLAZE_RULE.EXAMPLE -->",
+                      "a",
+                      "<!-- #BLAZE_RULE.END_EXAMPLE -->",
+                      "y",
+                      "<!-- #BLAZE_RULE.EXAMPLE -->",
+                      "b",
+                      "<!-- #BLAZE_RULE.END_EXAMPLE -->",
+                      "z"
+                    }),
+            0,
+            "",
+            ImmutableSet.<String>of());
     assertThat(ruleDoc.extractExamples()).isEqualTo(ImmutableSet.<String>of("a\n", "b\n"));
   }
 
   @Test
   public void testCreateExceptions() throws BuildEncyclopediaDocException {
-    RuleDocumentation ruleDoc = new RuleDocumentation(
-        "foo_binary", "OTHER", "FOO", "", 10, "foo.txt", NO_FLAGS, provider);
+    RuleDocumentation ruleDoc =
+        new RuleDocumentation("foo_binary", "OTHER", "FOO", "", 10, "foo.txt", NO_FLAGS);
     BuildEncyclopediaDocException e = ruleDoc.createException("msg");
     assertThat(e).hasMessageThat().isEqualTo("Error in foo.txt:10: msg");
   }
 
   @Test
   public void testEquals() throws BuildEncyclopediaDocException {
-    assertThat(new RuleDocumentation("rule", "OTHER", "FOO", "y", 0, "", NO_FLAGS, provider))
-        .isEqualTo(new RuleDocumentation("rule", "OTHER", "FOO", "x", 0, "", NO_FLAGS, provider));
+    assertThat(new RuleDocumentation("rule", "OTHER", "FOO", "y", 0, "", NO_FLAGS))
+        .isEqualTo(new RuleDocumentation("rule", "OTHER", "FOO", "x", 0, "", NO_FLAGS));
   }
 
   @Test
   public void testNotEquals() throws BuildEncyclopediaDocException {
     assertThat(
-            new RuleDocumentation("rule1", "OTHER", "FOO", "x", 0, "", NO_FLAGS, provider)
-                .equals(
-                    new RuleDocumentation("rule2", "OTHER", "FOO", "y", 0, "", NO_FLAGS, provider)))
+            new RuleDocumentation("rule1", "OTHER", "FOO", "x", 0, "", NO_FLAGS)
+                .equals(new RuleDocumentation("rule2", "OTHER", "FOO", "y", 0, "", NO_FLAGS)))
         .isFalse();
   }
 
   @Test
   public void testCompareTo() throws BuildEncyclopediaDocException {
     assertThat(
-            new RuleDocumentation("rule1", "OTHER", "FOO", "x", 0, "", NO_FLAGS, provider)
-                .compareTo(
-                    new RuleDocumentation("rule2", "OTHER", "FOO", "x", 0, "", NO_FLAGS, provider)))
+            new RuleDocumentation("rule1", "OTHER", "FOO", "x", 0, "", NO_FLAGS)
+                .compareTo(new RuleDocumentation("rule2", "OTHER", "FOO", "x", 0, "", NO_FLAGS)))
         .isEqualTo(-1);
   }
 
   @Test
   public void testHashCode() throws BuildEncyclopediaDocException {
-    assertThat(
-            new RuleDocumentation("rule", "OTHER", "FOO", "y", 0, "", NO_FLAGS, provider)
-                .hashCode())
-        .isEqualTo(
-            new RuleDocumentation("rule", "OTHER", "FOO", "x", 0, "", NO_FLAGS, provider)
-                .hashCode());
+    assertThat(new RuleDocumentation("rule", "OTHER", "FOO", "y", 0, "", NO_FLAGS).hashCode())
+        .isEqualTo(new RuleDocumentation("rule", "OTHER", "FOO", "x", 0, "", NO_FLAGS).hashCode());
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
index c7d1261..6d08e04 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
@@ -114,7 +114,6 @@
         false,
         false,
         false,
-        false,
         ImplicitOutputsFunction.NONE,
         null,
         DUMMY_CONFIGURED_TARGET_FACTORY,
@@ -150,7 +149,6 @@
         false,
         false,
         false,
-        false,
         ImplicitOutputsFunction.NONE,
         null,
         DUMMY_CONFIGURED_TARGET_FACTORY,
@@ -279,7 +277,6 @@
             false,
             false,
             false,
-            false,
             ImplicitOutputsFunction.NONE,
             null,
             DUMMY_CONFIGURED_TARGET_FACTORY,
@@ -325,7 +322,6 @@
             false,
             false,
             false,
-            false,
             ImplicitOutputsFunction.NONE,
             null,
             DUMMY_CONFIGURED_TARGET_FACTORY,
@@ -422,7 +418,6 @@
             false,
             false,
             false,
-            false,
             ImplicitOutputsFunction.fromTemplates(
                 "foo-%{name}.bar", "lib%{name}-wazoo-%{name}.mumble", "stuff-%{outs}-bar"),
             null,
@@ -463,7 +458,6 @@
             false,
             false,
             false,
-            false,
             ImplicitOutputsFunction.fromTemplates("%{dirname}lib%{basename}.bar"),
             null,
             DUMMY_CONFIGURED_TARGET_FACTORY,
@@ -498,7 +492,6 @@
         false,
         false,
         false,
-        false,
         ImplicitOutputsFunction.fromTemplates("empty"),
         null,
         DUMMY_CONFIGURED_TARGET_FACTORY,
@@ -666,7 +659,6 @@
             false,
             false,
             false,
-            false,
             ImplicitOutputsFunction.fromTemplates("first-%{name}", "second-%{name}", "out-%{outs}"),
             null,
             DUMMY_CONFIGURED_TARGET_FACTORY,
@@ -708,7 +700,6 @@
             false,
             false,
             false,
-            false,
             ImplicitOutputsFunction.NONE,
             null,
             DUMMY_CONFIGURED_TARGET_FACTORY,
@@ -860,7 +851,6 @@
       String name,
       boolean starlarkExecutable,
       boolean documented,
-      boolean publicByDefault,
       boolean binaryOutput,
       boolean workspaceOnly,
       boolean outputsDefaultExecutable,
@@ -884,7 +874,6 @@
         /*isStarlark=*/ starlarkExecutable,
         /*starlarkTestable=*/ false,
         documented,
-        publicByDefault,
         binaryOutput,
         workspaceOnly,
         outputsDefaultExecutable,
@@ -929,7 +918,6 @@
         false,
         false,
         false,
-        false,
         ImplicitOutputsFunction.NONE,
         null,
         DUMMY_CONFIGURED_TARGET_FACTORY,