Lift max attributes per rule-class to 200

sh_posix_toolchain [1] has 180, mostly because it has an attribute per unix
command. Lifting to 200 to unbreak them and give them some headroom, and will
open a github issue to make sure they know this won't scale infinitely.
Still staying below the 254 hard limit to give us headroom to attach misc
magic attributes after the check, as well as leaving us with a low-effort way
to help users that might find themselves in danger without being able to
immediately fix things.

Fixes https://github.com/bazelbuild/bazel/issues/10953

[1] https://github.com/tweag/rules_sh/blob/master/sh/posix.bzl

RELNOTES: Increase max targets per rule class limit to 200
PiperOrigin-RevId: 300633160
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 89b9edb..5dbfe84 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
@@ -129,7 +129,7 @@
    * non-breaking change for reasonable use. It was also chosen to be low enough to give significant
    * headroom before hitting {@link AttributeContainer}'s limits.
    */
-  private static final int MAX_ATTRIBUTES = 150;
+  private static final int MAX_ATTRIBUTES = 200;
 
   @AutoCodec
   static final Function<? super Rule, Map<String, Label>> NO_EXTERNAL_BINDINGS =
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 cdb5a99..8952ceb 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
@@ -1178,7 +1178,7 @@
         new RuleClass.Builder("myclass", RuleClassType.NORMAL, /*skylark=*/ false)
             .factory(DUMMY_CONFIGURED_TARGET_FACTORY)
             .add(attr("tags", STRING_LIST));
-    for (int i = 0; i < 150; i++) {
+    for (int i = 0; i < 200; i++) {
       builder.add(attr("attr" + i, STRING));
     }
 
@@ -1187,6 +1187,6 @@
 
     assertThat(expected)
         .hasMessageThat()
-        .isEqualTo("Rule class myclass declared too many attributes (151 > 150)");
+        .isEqualTo("Rule class myclass declared too many attributes (201 > 200)");
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
index 594148b..232e18b 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
@@ -219,7 +219,7 @@
         ImmutableList.<String>builder()
             .add("def impl(ctx): return")
             .add("r = rule(impl, attrs = {");
-    for (int i = 0; i < 150; i++) {
+    for (int i = 0; i < 200; i++) {
       linesBuilder.add("    'attr" + i + "': attr.int(),");
     }
     linesBuilder.add("})");