Replace 'whitelist' with 'allowlist' in Bazel source code.

Phase 1: Rename class, methods, variables, and error messages.
This change still leaves the list locations at hard coded paths to //tools/whitelists. Those may each require a separate migration.
NOTE: We are not considering this a breaking change, even though the error messages might change.

Also: Fix some things that ErrorProne complains about, but only if critique could provide a fix. I don't think that refactoring code to please a strident tricorder test should be part of a renaming CL.

RELNOTES: None
PiperOrigin-RevId: 316394382
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Whitelist.java b/src/main/java/com/google/devtools/build/lib/analysis/Allowlist.java
similarity index 63%
rename from src/main/java/com/google/devtools/build/lib/analysis/Whitelist.java
rename to src/main/java/com/google/devtools/build/lib/analysis/Allowlist.java
index 6d5f451..6485fd1 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/Whitelist.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/Allowlist.java
@@ -27,63 +27,65 @@
 import com.google.devtools.build.lib.packages.PackageSpecification.PackageGroupContents;
 
 /**
- * Class used for implementing whitelists using package groups.
+ * Class used for implementing allowlists using package groups.
  *
- * <p>To use add an attribute {@link getAttributeFromWhitelistName(String,Label) to the rule class
- * which needs the whitelisting mechanism and use {@link isAvailable(RuleContext,String)} to check
+ * <p>To use add an attribute {@link getAttributeFromAllowlistName(String) to the rule class
+ * which needs the allowlisting mechanism and use {@link isAvailable(RuleContext,String)} to check
  * during analysis if a rule is present
  */
-public final class Whitelist {
+public final class Allowlist {
 
-  private Whitelist() {}
+  private Allowlist() {}
 
   /**
    * Returns an Attribute.Builder that can be used to add an implicit attribute to a rule containing
-   * a package group whitelist.
+   * a package group allowlist.
    *
-   * @param whitelistName The name of the whitelist. This has to comply with attribute naming
+   * @param allowlistName The name of the allowlist. This has to comply with attribute naming
    *     standards and will be used as a suffix for the attribute name.
    */
-  public static Attribute.Builder<Label> getAttributeFromWhitelistName(String whitelistName) {
-    String attributeName = getAttributeNameFromWhitelistName(whitelistName);
+  public static Attribute.Builder<Label> getAttributeFromAllowlistName(String allowlistName) {
+    String attributeName = getAttributeNameFromAllowlistName(allowlistName);
     return attr(attributeName, LABEL)
         .cfg(HostTransition.createFactory())
         .mandatoryNativeProviders(ImmutableList.of(PackageSpecificationProvider.class));
   }
 
   /**
-   * Returns whether the rule in the given RuleContext *was defined* in a whitelist.
+   * Returns whether the rule in the given RuleContext *was defined* in a allowlist.
    *
    * @param ruleContext The context in which this check is being executed.
-   * @param whitelistName The name of the whitelist being used.
+   * @param allowlistName The name of the allowlist being used.
    */
   public static boolean isAvailableBasedOnRuleLocation(
-      RuleContext ruleContext, String whitelistName) {
+      RuleContext ruleContext, String allowlistName) {
     return isAvailableFor(
         ruleContext,
-        whitelistName,
+        allowlistName,
         ruleContext.getRule().getRuleClassObject().getRuleDefinitionEnvironmentLabel());
   }
 
   /**
-   * Returns whether the rule in the given RuleContext *was instantiated* in a whitelist.
+   * Returns whether the rule in the given RuleContext *was instantiated* in a allowlist.
    *
    * @param ruleContext The context in which this check is being executed.
-   * @param whitelistName The name of the whitelist being used.
+   * @param allowlistName The name of the allowlist being used.
    */
-  public static boolean isAvailable(RuleContext ruleContext, String whitelistName) {
-    return isAvailableFor(ruleContext, whitelistName, ruleContext.getLabel());
+  public static boolean isAvailable(RuleContext ruleContext, String allowlistName) {
+    return isAvailableFor(ruleContext, allowlistName, ruleContext.getLabel());
   }
 
   /**
-   * @param relevantLabel the label to check for in the whitelist. This allows features that
-   *     whitelist on rule definition location and features that whitelist on rule instantiation
+   * @param ruleContext The context in which this check is being executed.
+   * @param allowlistName The name of the allowlist being used.
+   * @param relevantLabel The label to check for in the allowlist. This allows features that
+   *     allowlist on rule definition location and features that allowlist on rule instantiation
    *     location to share logic.
    */
   public static boolean isAvailableFor(
-      RuleContext ruleContext, String whitelistName, Label relevantLabel) {
+      RuleContext ruleContext, String allowlistName, Label relevantLabel) {
     PackageSpecificationProvider packageSpecificationProvider =
-        fetchPackageSpecificationProvider(ruleContext, whitelistName);
+        fetchPackageSpecificationProvider(ruleContext, allowlistName);
     return isAvailableFor(packageSpecificationProvider.getPackageSpecifications(), relevantLabel);
   }
 
@@ -94,8 +96,8 @@
   }
 
   public static PackageSpecificationProvider fetchPackageSpecificationProvider(
-      RuleContext ruleContext, String whitelistName) {
-    String attributeName = getAttributeNameFromWhitelistName(whitelistName);
+      RuleContext ruleContext, String allowlistName) {
+    String attributeName = getAttributeNameFromAllowlistName(allowlistName);
     Preconditions.checkArgument(ruleContext.isAttrDefined(attributeName, LABEL));
     TransitiveInfoCollection packageGroup =
         ruleContext.getPrerequisite(attributeName, TransitionMode.HOST);
@@ -105,31 +107,31 @@
   }
 
   /**
-   * Returns whether the given label is in the whitelist provided.
+   * Returns whether the given label is in the allowlist provided.
    *
-   * @param whitelist the whitelist provided
-   * @param relevantLabel the label to check for in the whitelist.
+   * @param allowlist the allowlist provided
+   * @param relevantLabel the label to check for in the allowlist.
    */
-  public static boolean isAvailableForWhitelist(
-      TransitiveInfoCollection whitelist, Label relevantLabel) {
+  public static boolean isAvailableForAllowlist(
+      TransitiveInfoCollection allowlist, Label relevantLabel) {
     PackageSpecificationProvider packageSpecificationProvider =
-        whitelist.getProvider(PackageSpecificationProvider.class);
+        allowlist.getProvider(PackageSpecificationProvider.class);
     return isAvailableFor(packageSpecificationProvider.getPackageSpecifications(), relevantLabel);
   }
 
   /**
-   * Returns whether the rule from the given rule context has a whitelist by the given name.
+   * Returns whether the rule from the given rule context has a allowlist by the given name.
    *
    * @param ruleContext The rule context to check
-   * @param whitelistName The name of the whitelist to check for.
-   * @return True if the given rule context has the given whitelist.
+   * @param allowlistName The name of the allowlist to check for.
+   * @return True if the given rule context has the given allowlist.
    */
-  public static boolean hasWhitelist(RuleContext ruleContext, String whitelistName) {
-    String attributeName = getAttributeNameFromWhitelistName(whitelistName);
+  public static boolean hasAllowlist(RuleContext ruleContext, String allowlistName) {
+    String attributeName = getAttributeNameFromAllowlistName(allowlistName);
     return ruleContext.isAttrDefined(attributeName, LABEL);
   }
 
-  private static String getAttributeNameFromWhitelistName(String whitelistName) {
-    return String.format("$whitelist_%s", whitelistName);
+  private static String getAttributeNameFromAllowlistName(String allowlistName) {
+    return String.format("$whitelist_%s", allowlistName);
   }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/BUILD
index 463a645..559b481 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BUILD
@@ -166,6 +166,7 @@
     name = "analysis_cluster",
     srcs = [
         "AliasProvider.java",
+        "Allowlist.java",
         "AnalysisEnvironment.java",
         "AnalysisFailureEvent.java",
         "AnalysisResult.java",
@@ -217,7 +218,6 @@
         "TargetContext.java",
         "TopLevelArtifactHelper.java",
         "Util.java",
-        "Whitelist.java",
         "WindowsBatchCommandConstructor.java",
         "WindowsPowershellCommandConstructor.java",
         "actions/ActionConstructionContext.java",
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/CommonPrerequisiteValidator.java b/src/main/java/com/google/devtools/build/lib/analysis/CommonPrerequisiteValidator.java
index eeb7b5c..61e88d0 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/CommonPrerequisiteValidator.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/CommonPrerequisiteValidator.java
@@ -18,7 +18,7 @@
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.cmdline.PackageIdentifier;
 import com.google.devtools.build.lib.packages.Attribute;
-import com.google.devtools.build.lib.packages.FunctionSplitTransitionWhitelist;
+import com.google.devtools.build.lib.packages.FunctionSplitTransitionAllowlist;
 import com.google.devtools.build.lib.packages.InputFile;
 import com.google.devtools.build.lib.packages.NonconfigurableAttributeMapper;
 import com.google.devtools.build.lib.packages.OutputFile;
@@ -118,7 +118,7 @@
               .contains("PackageSpecificationProvider");
       // TODO(plf): Add the PackageSpecificationProvider to the 'visibility' attribute.
       if (!attrName.equals("visibility")
-          && !attrName.equals(FunctionSplitTransitionWhitelist.WHITELIST_ATTRIBUTE_NAME)
+          && !attrName.equals(FunctionSplitTransitionAllowlist.ATTRIBUTE_NAME)
           && !containsPackageSpecificationProvider) {
         context.attributeError(
             attrName,
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkRuleClassFunctions.java
index 71dd187..e9a3b8e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkRuleClassFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkRuleClassFunctions.java
@@ -56,7 +56,7 @@
 import com.google.devtools.build.lib.packages.BuildSetting;
 import com.google.devtools.build.lib.packages.BuildType;
 import com.google.devtools.build.lib.packages.ExecGroup;
-import com.google.devtools.build.lib.packages.FunctionSplitTransitionWhitelist;
+import com.google.devtools.build.lib.packages.FunctionSplitTransitionAllowlist;
 import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.StarlarkImplicitOutputsFunctionWithCallback;
 import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.StarlarkImplicitOutputsFunctionWithMap;
 import com.google.devtools.build.lib.packages.Package.NameConflictException;
@@ -703,7 +703,7 @@
       // Thus far, we only know if we have a rule transition. While iterating through attributes,
       // check if we have an attribute transition.
       boolean hasStarlarkDefinedTransition = builder.hasStarlarkRuleTransition();
-      boolean hasFunctionTransitionWhitelist = false;
+      boolean hasFunctionTransitionAllowlist = false;
       for (Pair<String, StarlarkAttrModule.Descriptor> attribute : attributes) {
         String name = attribute.getFirst();
         StarlarkAttrModule.Descriptor descriptor = attribute.getSecond();
@@ -720,56 +720,54 @@
           }
           builder.setHasAnalysisTestTransition();
         }
-        // Check for existence of the function transition whitelist attribute.
-        // TODO(b/121385274): remove when we stop whitelisting starlark transitions
-        if (name.equals(FunctionSplitTransitionWhitelist.WHITELIST_ATTRIBUTE_NAME)) {
+        // Check for existence of the function transition allowlist attribute.
+        // TODO(b/121385274): remove when we stop allowlisting starlark transitions
+        if (name.equals(FunctionSplitTransitionAllowlist.ATTRIBUTE_NAME)) {
           if (!BuildType.isLabelType(attr.getType())) {
             throw new EvalException(
-                getLocation(), "_whitelist_function_transition attribute must be a label type");
+                getLocation(), "_allowlist_function_transition attribute must be a label type");
           }
           if (attr.getDefaultValueUnchecked() == null) {
             throw new EvalException(
                 getLocation(),
-                "_whitelist_function_transition attribute must have a default value");
+                "_allowlist_function_transition attribute must have a default value");
           }
           Label defaultLabel = (Label) attr.getDefaultValueUnchecked();
           // Check the label value for package and target name, to make sure this works properly
           // in Bazel where it is expected to be found under @bazel_tools.
           if (!defaultLabel
                   .getPackageName()
-                  .equals(FunctionSplitTransitionWhitelist.WHITELIST_LABEL.getPackageName())
-              || !defaultLabel
-                  .getName()
-                  .equals(FunctionSplitTransitionWhitelist.WHITELIST_LABEL.getName())) {
+                  .equals(FunctionSplitTransitionAllowlist.LABEL.getPackageName())
+              || !defaultLabel.getName().equals(FunctionSplitTransitionAllowlist.LABEL.getName())) {
             throw new EvalException(
                 getLocation(),
-                "_whitelist_function_transition attribute ("
+                "_allowlist_function_transition attribute ("
                     + defaultLabel
                     + ") does not have the expected value "
-                    + FunctionSplitTransitionWhitelist.WHITELIST_LABEL);
+                    + FunctionSplitTransitionAllowlist.LABEL);
           }
-          hasFunctionTransitionWhitelist = true;
-          builder.setHasFunctionTransitionWhitelist();
+          hasFunctionTransitionAllowlist = true;
+          builder.setHasFunctionTransitionAllowlist();
         }
         addAttribute(builder, attr);
       }
-      // TODO(b/121385274): remove when we stop whitelisting starlark transitions
+      // TODO(b/121385274): remove when we stop allowlisting starlark transitions
       if (hasStarlarkDefinedTransition) {
-        if (!hasFunctionTransitionWhitelist) {
+        if (!hasFunctionTransitionAllowlist) {
           throw new EvalException(
               getLocation(),
               String.format(
-                  "Use of Starlark transition without whitelist attribute"
-                      + " '_whitelist_function_transition'. See Starlark transitions documentation"
+                  "Use of Starlark transition without allowlist attribute"
+                      + " '_allowlist_function_transition'. See Starlark transitions documentation"
                       + " for details and usage: %s %s",
                   builder.getRuleDefinitionEnvironmentLabel(), builder.getType()));
         }
       } else {
-        if (hasFunctionTransitionWhitelist) {
+        if (hasFunctionTransitionAllowlist) {
           throw new EvalException(
               getLocation(),
               String.format(
-                  "Unused function-based split transition whitelist: %s %s",
+                  "Unused function-based split transition allowlist: %s %s",
                   builder.getRuleDefinitionEnvironmentLabel(), builder.getType()));
         }
       }
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkRuleConfiguredTargetUtil.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkRuleConfiguredTargetUtil.java
index 7fff89b..d8830e5 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkRuleConfiguredTargetUtil.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkRuleConfiguredTargetUtil.java
@@ -20,6 +20,7 @@
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
 import com.google.devtools.build.lib.analysis.ActionsProvider;
+import com.google.devtools.build.lib.analysis.Allowlist;
 import com.google.devtools.build.lib.analysis.ConfiguredTarget;
 import com.google.devtools.build.lib.analysis.DefaultInfo;
 import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
@@ -28,7 +29,6 @@
 import com.google.devtools.build.lib.analysis.RunfilesProvider;
 import com.google.devtools.build.lib.analysis.RunfilesSupport;
 import com.google.devtools.build.lib.analysis.StarlarkProviderValidationUtil;
-import com.google.devtools.build.lib.analysis.Whitelist;
 import com.google.devtools.build.lib.analysis.test.CoverageCommon;
 import com.google.devtools.build.lib.analysis.test.InstrumentedFilesInfo;
 import com.google.devtools.build.lib.collect.nestedset.Depset;
@@ -38,7 +38,7 @@
 import com.google.devtools.build.lib.events.Event;
 import com.google.devtools.build.lib.packages.AdvertisedProviderSet;
 import com.google.devtools.build.lib.packages.BazelStarlarkContext;
-import com.google.devtools.build.lib.packages.FunctionSplitTransitionWhitelist;
+import com.google.devtools.build.lib.packages.FunctionSplitTransitionAllowlist;
 import com.google.devtools.build.lib.packages.Info;
 import com.google.devtools.build.lib.packages.NativeProvider;
 import com.google.devtools.build.lib.packages.NativeProvider.WithLegacyStarlarkName;
@@ -120,11 +120,11 @@
                 + " should have been specified by the requesting rule.");
         return null;
       }
-      if (ruleClass.hasFunctionTransitionWhitelist()
-          && !Whitelist.isAvailableBasedOnRuleLocation(
-              ruleContext, FunctionSplitTransitionWhitelist.WHITELIST_NAME)) {
-        if (!Whitelist.isAvailable(ruleContext, FunctionSplitTransitionWhitelist.WHITELIST_NAME)) {
-          ruleContext.ruleError("Non-whitelisted use of Starlark transition");
+      if (ruleClass.hasFunctionTransitionAllowlist()
+          && !Allowlist.isAvailableBasedOnRuleLocation(
+              ruleContext, FunctionSplitTransitionAllowlist.NAME)) {
+        if (!Allowlist.isAvailable(ruleContext, FunctionSplitTransitionAllowlist.NAME)) {
+          ruleContext.ruleError("Non-allowlisted use of Starlark transition");
         }
       }
 
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java
index ac5e02a..013e4f4 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java
@@ -13,9 +13,9 @@
 // limitations under the License.
 package com.google.devtools.build.lib.bazel.rules.android;
 
+import com.google.devtools.build.lib.analysis.Allowlist;
 import com.google.devtools.build.lib.analysis.RuleDefinition;
 import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
-import com.google.devtools.build.lib.analysis.Whitelist;
 import com.google.devtools.build.lib.bazel.rules.cpp.BazelCppRuleClasses.CcToolchainRequiringRule;
 import com.google.devtools.build.lib.bazel.rules.java.BazelJavaRuleClasses;
 import com.google.devtools.build.lib.packages.RuleClass;
@@ -68,10 +68,10 @@
         <!-- #END_BLAZE_RULE.IMPLICIT_OUTPUTS --> */
         .setImplicitOutputsFunction(AndroidRuleClasses.ANDROID_BINARY_IMPLICIT_OUTPUTS)
         .add(
-            Whitelist.getAttributeFromWhitelistName("export_deps")
+            Allowlist.getAttributeFromAllowlistName("export_deps")
                 .value(environment.getToolsLabel("//tools/android:export_deps_whitelist")))
         .add(
-            Whitelist.getAttributeFromWhitelistName("allow_deps_without_srcs")
+            Allowlist.getAttributeFromAllowlistName("allow_deps_without_srcs")
                 .value(
                     environment.getToolsLabel(
                         "//tools/android:allow_android_library_deps_without_srcs_whitelist")))
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidLibraryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidLibraryRule.java
index 5084040..3d0c116 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidLibraryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidLibraryRule.java
@@ -14,9 +14,9 @@
 
 package com.google.devtools.build.lib.bazel.rules.android;
 
+import com.google.devtools.build.lib.analysis.Allowlist;
 import com.google.devtools.build.lib.analysis.RuleDefinition;
 import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
-import com.google.devtools.build.lib.analysis.Whitelist;
 import com.google.devtools.build.lib.bazel.rules.java.BazelJavaRuleClasses;
 import com.google.devtools.build.lib.packages.RuleClass;
 import com.google.devtools.build.lib.rules.android.AndroidLibraryBaseRule;
@@ -43,7 +43,7 @@
         .setImplicitOutputsFunction(AndroidRuleClasses.ANDROID_LIBRARY_IMPLICIT_OUTPUTS)
         .addRequiredToolchains(CppRuleClasses.ccToolchainTypeAttribute(env))
         .add(
-            Whitelist.getAttributeFromWhitelistName("allow_deps_without_srcs")
+            Allowlist.getAttributeFromAllowlistName("allow_deps_without_srcs")
                 .value(
                     env.getToolsLabel(
                         "//tools/android:allow_android_library_deps_without_srcs_whitelist")))
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
index 5d62b08..0273317 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
@@ -650,7 +650,7 @@
       boolean usingNativeSinglejar,
       // Explicitly ignoring params since Bazel doesn't yet support one version
       OneVersionEnforcementLevel oneVersionEnforcementLevel,
-      Artifact oneVersionWhitelistArtifact,
+      Artifact oneVersionAllowlistArtifact,
       Artifact sharedArchive) {
     return DeployArchiveBuilder.defaultSingleJarCommandLineWithoutOneVersion(
             output,
diff --git a/src/main/java/com/google/devtools/build/lib/packages/FunctionSplitTransitionWhitelist.java b/src/main/java/com/google/devtools/build/lib/packages/FunctionSplitTransitionAllowlist.java
similarity index 74%
rename from src/main/java/com/google/devtools/build/lib/packages/FunctionSplitTransitionWhitelist.java
rename to src/main/java/com/google/devtools/build/lib/packages/FunctionSplitTransitionAllowlist.java
index f3a7b9a..ee64d4d 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/FunctionSplitTransitionWhitelist.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/FunctionSplitTransitionAllowlist.java
@@ -17,11 +17,13 @@
 import com.google.devtools.build.lib.cmdline.Label;
 
 /**
- * This class provides constants associated with the function split transition whitelist.
+ * This class provides constants associated with the function split transition allowlist.
  */
-public class FunctionSplitTransitionWhitelist {
-  public static final String WHITELIST_NAME = "function_transition";
-  public static final String WHITELIST_ATTRIBUTE_NAME = "$whitelist_function_transition";
-  public static final Label WHITELIST_LABEL =
+public class FunctionSplitTransitionAllowlist {
+  public static final String NAME = "function_transition";
+  public static final String ATTRIBUTE_NAME = "$whitelist_function_transition";
+  public static final Label LABEL =
       Label.parseAbsoluteUnchecked("//tools/whitelists/function_transition_whitelist");
+
+  private FunctionSplitTransitionAllowlist() {}
 }
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 ee08ccb..6f6d581 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
@@ -659,7 +659,7 @@
     private boolean isExecutableStarlark = false;
     private boolean isAnalysisTest = false;
     private boolean hasAnalysisTestTransition = false;
-    private boolean hasFunctionTransitionWhitelist = false;
+    private boolean hasFunctionTransitionAllowlist = false;
     private boolean hasStarlarkRuleTransition = false;
     private boolean ignoreLicenses = false;
     private ImplicitOutputsFunction implicitOutputsFunction = ImplicitOutputsFunction.NONE;
@@ -857,7 +857,7 @@
           isExecutableStarlark,
           isAnalysisTest,
           hasAnalysisTestTransition,
-          hasFunctionTransitionWhitelist,
+          hasFunctionTransitionAllowlist,
           ignoreLicenses,
           implicitOutputsFunction,
           transitionFactory,
@@ -1311,11 +1311,11 @@
     }
 
     /**
-     * This rule class has the _whitelist_function_transition attribute. Intended only for Starlark
+     * This rule class has the _allowlist_function_transition attribute. Intended only for Starlark
      * rules.
      */
-    public <TYPE> Builder setHasFunctionTransitionWhitelist() {
-      this.hasFunctionTransitionWhitelist = true;
+    public <TypeT> Builder setHasFunctionTransitionAllowlist() {
+      this.hasFunctionTransitionAllowlist = true;
       return this;
     }
 
@@ -1526,7 +1526,7 @@
   private final boolean isExecutableStarlark;
   private final boolean isAnalysisTest;
   private final boolean hasAnalysisTestTransition;
-  private final boolean hasFunctionTransitionWhitelist;
+  private final boolean hasFunctionTransitionAllowlist;
   private final boolean ignoreLicenses;
   private final boolean hasAspects;
 
@@ -1661,7 +1661,7 @@
       boolean isExecutableStarlark,
       boolean isAnalysisTest,
       boolean hasAnalysisTestTransition,
-      boolean hasFunctionTransitionWhitelist,
+      boolean hasFunctionTransitionAllowlist,
       boolean ignoreLicenses,
       ImplicitOutputsFunction implicitOutputsFunction,
       TransitionFactory<Rule> transitionFactory,
@@ -1713,7 +1713,7 @@
     this.isExecutableStarlark = isExecutableStarlark;
     this.isAnalysisTest = isAnalysisTest;
     this.hasAnalysisTestTransition = hasAnalysisTestTransition;
-    this.hasFunctionTransitionWhitelist = hasFunctionTransitionWhitelist;
+    this.hasFunctionTransitionAllowlist = hasFunctionTransitionAllowlist;
     this.ignoreLicenses = ignoreLicenses;
     this.configurationFragmentPolicy = configurationFragmentPolicy;
     this.supportsConstraintChecking = supportsConstraintChecking;
@@ -2608,11 +2608,9 @@
     return hasAnalysisTestTransition;
   }
 
-  /**
-   * Returns true if this rule class has the _whitelist_function_transition attribute.
-   */
-  public boolean hasFunctionTransitionWhitelist() {
-    return hasFunctionTransitionWhitelist;
+  /** Returns true if this rule class has the _allowlist_function_transition attribute. */
+  public boolean hasFunctionTransitionAllowlist() {
+    return hasFunctionTransitionAllowlist;
   }
 
   /**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
index 4fb08b0..dd16112 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -16,8 +16,8 @@
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
+import com.google.devtools.build.lib.analysis.Allowlist;
 import com.google.devtools.build.lib.analysis.RuleContext;
-import com.google.devtools.build.lib.analysis.Whitelist;
 import com.google.devtools.build.lib.analysis.config.BuildOptions;
 import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
 import com.google.devtools.build.lib.analysis.config.CoreOptionConverters.EmptyToNullLabelConverter;
@@ -1143,7 +1143,7 @@
 
   public boolean allowSrcsLessAndroidLibraryDeps(RuleContext ruleContext) {
     return allowAndroidLibraryDepsWithoutSrcs
-        && Whitelist.isAvailable(ruleContext, "allow_deps_without_srcs");
+        && Allowlist.isAvailable(ruleContext, "allow_deps_without_srcs");
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataContext.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataContext.java
index 4e84279..7a88196 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataContext.java
@@ -18,10 +18,10 @@
 import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.actions.ArtifactRoot;
+import com.google.devtools.build.lib.analysis.Allowlist;
 import com.google.devtools.build.lib.analysis.FilesToRunProvider;
 import com.google.devtools.build.lib.analysis.RuleContext;
 import com.google.devtools.build.lib.analysis.TransitionMode;
-import com.google.devtools.build.lib.analysis.Whitelist;
 import com.google.devtools.build.lib.analysis.actions.ActionConstructionContext;
 import com.google.devtools.build.lib.analysis.actions.SpawnAction;
 import com.google.devtools.build.lib.cmdline.Label;
@@ -93,10 +93,10 @@
   }
 
   private static boolean hasExemption(
-      RuleContext ruleContext, String exemptionName, boolean valueIfNoWhitelist) {
-    return Whitelist.hasWhitelist(ruleContext, exemptionName)
-        ? Whitelist.isAvailable(ruleContext, exemptionName)
-        : valueIfNoWhitelist;
+      RuleContext ruleContext, String exemptionName, boolean valueIfNoAllowlist) {
+    return Allowlist.hasAllowlist(ruleContext, exemptionName)
+        ? Allowlist.isAvailable(ruleContext, exemptionName)
+        : valueIfNoAllowlist;
   }
 
   protected AndroidDataContext(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDevice.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDevice.java
index 3eefb7f..6724236 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDevice.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDevice.java
@@ -26,6 +26,7 @@
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
 import com.google.devtools.build.lib.actions.ResourceSet;
+import com.google.devtools.build.lib.analysis.Allowlist;
 import com.google.devtools.build.lib.analysis.ConfiguredTarget;
 import com.google.devtools.build.lib.analysis.FileProvider;
 import com.google.devtools.build.lib.analysis.FilesToRunProvider;
@@ -37,7 +38,6 @@
 import com.google.devtools.build.lib.analysis.RunfilesSupport;
 import com.google.devtools.build.lib.analysis.TransitionMode;
 import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
-import com.google.devtools.build.lib.analysis.Whitelist;
 import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
 import com.google.devtools.build.lib.analysis.actions.SpawnAction;
 import com.google.devtools.build.lib.analysis.actions.Substitution;
@@ -61,7 +61,7 @@
 
   private static final String DEVICE_BROKER_TYPE = "WRAPPED_EMULATOR";
 
-  static final String WHITELIST_NAME = "android_device";
+  static final String ALLOWLIST_NAME = "android_device";
 
   // Min resolution
   private static final int MIN_HORIZONTAL = 240;
@@ -92,7 +92,7 @@
   public ConfiguredTarget create(RuleContext ruleContext)
       throws InterruptedException, RuleErrorException, ActionConflictException {
     androidSemantics.checkForMigrationTag(ruleContext);
-    checkWhitelist(ruleContext);
+    checkAllowlist(ruleContext);
     Artifact executable = ruleContext.createOutputArtifact();
     Artifact metadata =
         ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_DEVICE_EMULATOR_METADATA);
@@ -156,8 +156,8 @@
         .build();
   }
 
-  private static void checkWhitelist(RuleContext ruleContext) throws RuleErrorException {
-    if (!Whitelist.isAvailable(ruleContext, WHITELIST_NAME)) {
+  private static void checkAllowlist(RuleContext ruleContext) throws RuleErrorException {
+    if (!Allowlist.isAvailable(ruleContext, ALLOWLIST_NAME)) {
       ruleContext.throwWithRuleError("The android_device rule may not be used in this package");
     }
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceRule.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceRule.java
index b673879..a5a07c8 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceRule.java
@@ -19,10 +19,10 @@
 import static com.google.devtools.build.lib.packages.Type.BOOLEAN;
 import static com.google.devtools.build.lib.packages.Type.INTEGER;
 
+import com.google.devtools.build.lib.analysis.Allowlist;
 import com.google.devtools.build.lib.analysis.BaseRuleClasses;
 import com.google.devtools.build.lib.analysis.RuleDefinition;
 import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
-import com.google.devtools.build.lib.analysis.Whitelist;
 import com.google.devtools.build.lib.analysis.config.HostTransition;
 import com.google.devtools.build.lib.packages.RuleClass;
 import com.google.devtools.build.lib.rules.java.JavaSemantics;
@@ -170,7 +170,7 @@
                 .value(true)
                 .nonconfigurable("Called from RunCommand.isExecutable, which takes a Target"))
         .add(
-            Whitelist.getAttributeFromWhitelistName(AndroidDevice.WHITELIST_NAME)
+            Allowlist.getAttributeFromAllowlistName(AndroidDevice.ALLOWLIST_NAME)
                 .value(env.getToolsLabel("//tools/android:android_device_whitelist")))
         .removeAttribute("deps")
         .removeAttribute("data")
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidFeatureFlagSetProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidFeatureFlagSetProvider.java
index 4323d26..9017c4d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidFeatureFlagSetProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidFeatureFlagSetProvider.java
@@ -66,10 +66,10 @@
 
   /**
    * Constructs a definition for the attribute used to restrict access to feature flags. The
-   * whitelist will only be reached if the feature_flags attribute is explicitly set.
+   * allowlist will only be reached if the feature_flags attribute is explicitly set.
    */
-  public static Attribute.Builder<Label> getWhitelistAttribute(RuleDefinitionEnvironment env) {
-    return ConfigFeatureFlag.getWhitelistAttribute(env, FEATURE_FLAG_ATTR);
+  public static Attribute.Builder<Label> getAllowlistAttribute(RuleDefinitionEnvironment env) {
+    return ConfigFeatureFlag.getAllowlistAttribute(env, FEATURE_FLAG_ATTR);
   }
 
   /**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
index cba24a2..63dd265 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
@@ -18,6 +18,7 @@
 import com.google.common.collect.ImmutableList;
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
+import com.google.devtools.build.lib.analysis.Allowlist;
 import com.google.devtools.build.lib.analysis.ConfiguredTarget;
 import com.google.devtools.build.lib.analysis.OutputGroupInfo;
 import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
@@ -28,7 +29,6 @@
 import com.google.devtools.build.lib.analysis.RunfilesSupport;
 import com.google.devtools.build.lib.analysis.TransitionMode;
 import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
-import com.google.devtools.build.lib.analysis.Whitelist;
 import com.google.devtools.build.lib.analysis.actions.Substitution;
 import com.google.devtools.build.lib.analysis.actions.Template;
 import com.google.devtools.build.lib.analysis.actions.TemplateExpansionAction;
@@ -163,8 +163,8 @@
 
     String testClass = getAndCheckTestClass(ruleContext, javaCommon.getSrcsArtifacts());
     getAndCheckTestSupport(ruleContext);
-    if (Whitelist.hasWhitelist(ruleContext, "multiple_proto_rule_types_in_deps_whitelist")
-        && !Whitelist.isAvailable(ruleContext, "multiple_proto_rule_types_in_deps_whitelist")) {
+    if (Allowlist.hasAllowlist(ruleContext, "multiple_proto_rule_types_in_deps_whitelist")
+        && !Allowlist.isAvailable(ruleContext, "multiple_proto_rule_types_in_deps_whitelist")) {
       javaSemantics.checkForProtoLibraryAndJavaProtoLibraryOnSameProto(ruleContext, javaCommon);
     }
     if (ruleContext.hasErrors()) {
@@ -316,7 +316,7 @@
         .setLauncher(launcher)
         .setOneVersionEnforcementLevel(
             doOneVersionEnforcement ? oneVersionEnforcementLevel : OneVersionEnforcementLevel.OFF,
-            javaToolchain.getOneVersionWhitelist())
+            javaToolchain.getOneVersionAllowlist())
         .build();
 
     JavaSourceJarsProvider sourceJarsProvider = javaSourceJarsProviderBuilder.build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java
index 41d5598..c4da347 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java
@@ -88,7 +88,7 @@
                 .allowedFileTypes()
                 .nonconfigurable("defines an aspect of configuration")
                 .mandatoryProviders(ImmutableList.of(ConfigFeatureFlagProvider.id())))
-        .add(AndroidFeatureFlagSetProvider.getWhitelistAttribute(environment))
+        .add(AndroidFeatureFlagSetProvider.getAllowlistAttribute(environment))
         // TODO(b/38314524): Move $android_resources_busybox and :android_sdk to a separate
         // rule so they're not defined in multiple places
         .add(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
index 728f4fd..57ed3fb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
@@ -872,7 +872,7 @@
                   .allowedFileTypes()
                   .nonconfigurable("defines an aspect of configuration")
                   .mandatoryProviders(ImmutableList.of(ConfigFeatureFlagProvider.id())))
-          .add(AndroidFeatureFlagSetProvider.getWhitelistAttribute(env))
+          .add(AndroidFeatureFlagSetProvider.getAllowlistAttribute(env))
           // The resource extractor is used at the binary level to extract java resources from the
           // deploy jar so that they can be added to the APK.
           .add(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlag.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlag.java
index 6417a4b..993e337 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlag.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlag.java
@@ -26,13 +26,13 @@
 import com.google.common.collect.Multiset;
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
+import com.google.devtools.build.lib.analysis.Allowlist;
 import com.google.devtools.build.lib.analysis.ConfiguredTarget;
 import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
 import com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory;
 import com.google.devtools.build.lib.analysis.RuleContext;
 import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
 import com.google.devtools.build.lib.analysis.RunfilesProvider;
-import com.google.devtools.build.lib.analysis.Whitelist;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
 import com.google.devtools.build.lib.packages.Attribute;
@@ -47,27 +47,27 @@
  */
 public class ConfigFeatureFlag implements RuleConfiguredTargetFactory {
   /** The name of the policy that is used to restrict access to the config_feature_flag rule. */
-  private static final String WHITELIST_NAME = "config_feature_flag";
+  private static final String ALLOWLIST_NAME = "config_feature_flag";
 
   /** The label of the policy that is used to restrict access to the config_feature_flag rule. */
-  private static final String WHITELIST_LABEL =
+  private static final String ALLOWLIST_LABEL =
       "//tools/whitelists/config_feature_flag:config_feature_flag";
 
   /** Constructs a definition for the attribute used to restrict access to config_feature_flag. */
-  public static Attribute.Builder<Label> getWhitelistAttribute(RuleDefinitionEnvironment env) {
-    return Whitelist.getAttributeFromWhitelistName(WHITELIST_NAME)
-        .value(env.getToolsLabel(WHITELIST_LABEL));
+  public static Attribute.Builder<Label> getAllowlistAttribute(RuleDefinitionEnvironment env) {
+    return Allowlist.getAttributeFromAllowlistName(ALLOWLIST_NAME)
+        .value(env.getToolsLabel(ALLOWLIST_LABEL));
   }
 
   /**
    * Constructs a definition for the attribute used to restrict access to config_feature_flag. The
-   * whitelist will only be reached if the given {@code attributeToInspect} has a value explicitly
+   * allowlist will only be reached if the given {@code attributeToInspect} has a value explicitly
    * specified. It must be non-configurable.
    */
-  public static Attribute.Builder<Label> getWhitelistAttribute(
+  public static Attribute.Builder<Label> getAllowlistAttribute(
       RuleDefinitionEnvironment env, String attributeToInspect) {
-    final Label label = env.getToolsLabel(WHITELIST_LABEL);
-    return Whitelist.getAttributeFromWhitelistName(WHITELIST_NAME)
+    final Label label = env.getToolsLabel(ALLOWLIST_LABEL);
+    return Allowlist.getAttributeFromAllowlistName(ALLOWLIST_NAME)
         .value(
             new ComputedDefault() {
               @Override
@@ -81,10 +81,10 @@
    * Returns whether config_feature_flag and related features are available to the current rule.
    *
    * <p>The current rule must have an attribute defined on it created with {@link
-   * #getWhitelistAttribute}.
+   * #getAllowlistAttribute}.
    */
   public static boolean isAvailable(RuleContext ruleContext) {
-    return Whitelist.isAvailable(ruleContext, WHITELIST_NAME);
+    return Allowlist.isAvailable(ruleContext, ALLOWLIST_NAME);
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRuleClasses.java
index c1199ed..029cc16 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRuleClasses.java
@@ -395,7 +395,7 @@
     @Override
     public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) {
       return builder
-          .setUndocumented(/* the feature flag feature has not yet been launched */)
+          .setUndocumented(/* the feature flag feature has not yet been launched */ )
           .requiresConfigurationFragments(ConfigFeatureFlagConfiguration.class)
           .add(
               attr("allowed_values", STRING_LIST)
@@ -403,10 +403,8 @@
                   .nonEmpty()
                   .orderIndependent()
                   .nonconfigurable(NONCONFIGURABLE_ATTRIBUTE_REASON))
-          .add(
-              attr("default_value", STRING)
-                  .nonconfigurable(NONCONFIGURABLE_ATTRIBUTE_REASON))
-          .add(ConfigFeatureFlag.getWhitelistAttribute(env))
+          .add(attr("default_value", STRING).nonconfigurable(NONCONFIGURABLE_ATTRIBUTE_REASON))
+          .add(ConfigFeatureFlag.getAllowlistAttribute(env))
           .removeAttribute(BaseRuleClasses.TAGGED_TRIMMING_ATTR)
           .build();
     }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
index aa5e144..5e83c92 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
@@ -43,11 +43,11 @@
   /** Default attribute name for the c++ toolchain type */
   public static final String CC_TOOLCHAIN_TYPE_ATTRIBUTE_NAME = "$cc_toolchain_type";
 
-  public static final String ALLOWED_LAYERING_CHECK_FEATURES_WHITELIST =
+  public static final String ALLOWED_LAYERING_CHECK_FEATURES_ALLOWLIST =
       "disabling_parse_headers_and_layering_check_allowed";
   public static final String ALLOWED_LAYERING_CHECK_FEATURES_TARGET =
       "@bazel_tools//tools/build_defs/cc/whitelists/parse_headers_and_layering_check:"
-          + ALLOWED_LAYERING_CHECK_FEATURES_WHITELIST;
+          + ALLOWED_LAYERING_CHECK_FEATURES_ALLOWLIST;
   public static final Label ALLOWED_LAYERING_CHECK_FEATURES_LABEL =
       Label.parseAbsoluteUnchecked(ALLOWED_LAYERING_CHECK_FEATURES_TARGET);
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainAttributesProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainAttributesProvider.java
index b40713a..f7000c6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainAttributesProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainAttributesProvider.java
@@ -21,6 +21,7 @@
 import com.google.common.collect.ImmutableMap;
 import com.google.devtools.build.lib.actions.Actions;
 import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.analysis.Allowlist;
 import com.google.devtools.build.lib.analysis.FileProvider;
 import com.google.devtools.build.lib.analysis.LicensesProvider;
 import com.google.devtools.build.lib.analysis.LicensesProvider.TargetLicense;
@@ -30,7 +31,6 @@
 import com.google.devtools.build.lib.analysis.RuleContext;
 import com.google.devtools.build.lib.analysis.TransitionMode;
 import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
-import com.google.devtools.build.lib.analysis.Whitelist;
 import com.google.devtools.build.lib.analysis.platform.ToolchainInfo;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -99,7 +99,7 @@
   private final Label ccToolchainLabel;
   private final TransitiveInfoCollection staticRuntimeLib;
   private final TransitiveInfoCollection dynamicRuntimeLib;
-  private final PackageSpecificationProvider whitelistForLayeringCheck;
+  private final PackageSpecificationProvider allowlistForLayeringCheck;
 
   public CcToolchainAttributesProvider(
       RuleContext ruleContext,
@@ -233,9 +233,9 @@
       this.toolchainType = null;
     }
     this.additionalBuildVariablesComputer = additionalBuildVariablesComputer;
-    this.whitelistForLayeringCheck =
-        Whitelist.fetchPackageSpecificationProvider(
-            ruleContext, CcToolchain.ALLOWED_LAYERING_CHECK_FEATURES_WHITELIST);
+    this.allowlistForLayeringCheck =
+        Allowlist.fetchPackageSpecificationProvider(
+            ruleContext, CcToolchain.ALLOWED_LAYERING_CHECK_FEATURES_ALLOWLIST);
   }
 
   public String getCpu() {
@@ -423,8 +423,8 @@
     return ifsoBuilder;
   }
 
-  public PackageSpecificationProvider getWhitelistForLayeringCheck() {
-    return whitelistForLayeringCheck;
+  public PackageSpecificationProvider getAllowlistForLayeringCheck() {
+    return allowlistForLayeringCheck;
   }
 
   private static NestedSet<Artifact> getMiddlemanOrFiles(RuleContext context, String attribute) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
index dc09d58..40c4e14 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
@@ -103,7 +103,7 @@
           /* targetSystemName= */ "",
           /* additionalMakeVariables= */ ImmutableMap.of(),
           /* legacyCcFlagsMakeVariable= */ "",
-          /* whitelistForLayeringCheck= */ null);
+          /* allowlistForLayeringCheck= */ null);
 
   @Nullable private final CppConfiguration cppConfiguration;
   private final PathFragment crosstoolTopPathFragment;
@@ -165,7 +165,7 @@
   private final FdoContext fdoContext;
 
   private final LicensesProvider licensesProvider;
-  private final PackageSpecificationProvider whitelistForLayeringCheck;
+  private final PackageSpecificationProvider allowlistForLayeringCheck;
 
   public CcToolchainProvider(
       ImmutableMap<String, Object> values,
@@ -221,7 +221,7 @@
       String targetSystemName,
       ImmutableMap<String, String> additionalMakeVariables,
       String legacyCcFlagsMakeVariable,
-      PackageSpecificationProvider whitelistForLayeringCheck) {
+      PackageSpecificationProvider allowlistForLayeringCheck) {
     super(values, Location.BUILTIN);
     this.cppConfiguration = cppConfiguration;
     this.crosstoolTopPathFragment = crosstoolTopPathFragment;
@@ -278,7 +278,7 @@
     this.targetSystemName = targetSystemName;
     this.additionalMakeVariables = additionalMakeVariables;
     this.legacyCcFlagsMakeVariable = legacyCcFlagsMakeVariable;
-    this.whitelistForLayeringCheck = whitelistForLayeringCheck;
+    this.allowlistForLayeringCheck = allowlistForLayeringCheck;
   }
 
   /**
@@ -910,8 +910,8 @@
     return dynamicRuntimeLinkInputs;
   }
 
-  public PackageSpecificationProvider getWhitelistForLayeringCheck() {
-    return whitelistForLayeringCheck;
+  public PackageSpecificationProvider getAllowlistForLayeringCheck() {
+    return allowlistForLayeringCheck;
   }
 }
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
index cd6df06..4f4a698 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
@@ -184,8 +184,8 @@
     ImmutableList<PathFragment> builtInIncludeDirectories =
         builtInIncludeDirectoriesBuilder.build();
 
-    PackageSpecificationProvider whitelistForLayeringCheck =
-        attributes.getWhitelistForLayeringCheck();
+    PackageSpecificationProvider allowlistForLayeringCheck =
+        attributes.getAllowlistForLayeringCheck();
 
     return new CcToolchainProvider(
         getToolchainForStarlark(toolPaths),
@@ -249,7 +249,7 @@
         toolchainConfigInfo.getTargetSystemName(),
         computeAdditionalMakeVariables(toolchainConfigInfo),
         computeLegacyCcFlagsMakeVariable(toolchainConfigInfo),
-        whitelistForLayeringCheck);
+        allowlistForLayeringCheck);
   }
 
   @Nullable
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
index 4839253..fcc0ae3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
@@ -21,12 +21,12 @@
 import static com.google.devtools.build.lib.packages.Type.STRING;
 
 import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.analysis.Allowlist;
 import com.google.devtools.build.lib.analysis.BaseRuleClasses;
 import com.google.devtools.build.lib.analysis.PlatformConfiguration;
 import com.google.devtools.build.lib.analysis.RuleDefinition;
 import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
 import com.google.devtools.build.lib.analysis.TemplateVariableInfo;
-import com.google.devtools.build.lib.analysis.Whitelist;
 import com.google.devtools.build.lib.analysis.config.HostTransition;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.packages.Attribute.LabelLateBoundDefault;
@@ -357,8 +357,8 @@
                 .mandatoryProviders(CcToolchainConfigInfo.PROVIDER.id())
                 .mandatory())
         .add(
-            Whitelist.getAttributeFromWhitelistName(
-                    CcToolchain.ALLOWED_LAYERING_CHECK_FEATURES_WHITELIST)
+            Allowlist.getAttributeFromAllowlistName(
+                    CcToolchain.ALLOWED_LAYERING_CHECK_FEATURES_ALLOWLIST)
                 .value(CcToolchain.ALLOWED_LAYERING_CHECK_FEATURES_LABEL))
         .build();
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/DeployArchiveBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/java/DeployArchiveBuilder.java
index 25b84a5..22771a9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/DeployArchiveBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/DeployArchiveBuilder.java
@@ -68,7 +68,7 @@
   @Nullable private Function<Artifact, Artifact> derivedJars = null;
   private boolean checkDesugarDeps;
   private OneVersionEnforcementLevel oneVersionEnforcementLevel = OneVersionEnforcementLevel.OFF;
-  @Nullable private Artifact oneVersionWhitelistArtifact;
+  @Nullable private Artifact oneVersionAllowlistArtifact;
   @Nullable private Artifact sharedArchive;
 
   /** Type of compression to apply to output archive. */
@@ -164,9 +164,9 @@
   /** Whether or not singlejar would attempt to enforce one version of java classes in the jar */
   public DeployArchiveBuilder setOneVersionEnforcementLevel(
       OneVersionEnforcementLevel oneVersionEnforcementLevel,
-      @Nullable Artifact oneVersionWhitelistArtifact) {
+      @Nullable Artifact oneVersionAllowlistArtifact) {
     this.oneVersionEnforcementLevel = oneVersionEnforcementLevel;
-    this.oneVersionWhitelistArtifact = oneVersionWhitelistArtifact;
+    this.oneVersionAllowlistArtifact = oneVersionAllowlistArtifact;
     return this;
   }
 
@@ -213,7 +213,7 @@
       Artifact launcher,
       boolean usingNativeSinglejar,
       OneVersionEnforcementLevel oneVersionEnforcementLevel,
-      @Nullable Artifact oneVersionWhitelistArtifact) {
+      @Nullable Artifact oneVersionAllowlistArtifact) {
 
     CustomCommandLine.Builder args = CustomCommandLine.builder();
     args.addExecPath("--output", outputJar);
@@ -255,8 +255,8 @@
       args.add("--enforce_one_version");
       // RuleErrors should have been added in Builder.build() before this command
       // line is invoked.
-      Preconditions.checkNotNull(oneVersionWhitelistArtifact);
-      args.addExecPath("--one_version_whitelist", oneVersionWhitelistArtifact);
+      Preconditions.checkNotNull(oneVersionAllowlistArtifact);
+      args.addExecPath("--one_version_whitelist", oneVersionAllowlistArtifact);
       if (oneVersionEnforcementLevel == OneVersionEnforcementLevel.WARNING) {
         args.add("--succeed_on_found_violations");
       }
@@ -333,12 +333,12 @@
     }
 
     if (oneVersionEnforcementLevel != OneVersionEnforcementLevel.OFF) {
-      if (oneVersionWhitelistArtifact == null) {
+      if (oneVersionAllowlistArtifact == null) {
         OneVersionCheckActionBuilder.addRuleErrorForMissingArtifacts(
             ruleContext, JavaToolchainProvider.from(ruleContext));
         return;
       }
-      inputs.add(oneVersionWhitelistArtifact);
+      inputs.add(oneVersionAllowlistArtifact);
     }
     if (sharedArchive != null) {
       inputs.add(sharedArchive);
@@ -364,7 +364,7 @@
             launcher,
             usingNativeSinglejar,
             oneVersionEnforcementLevel,
-            oneVersionWhitelistArtifact,
+            oneVersionAllowlistArtifact,
             sharedArchive);
     if (checkDesugarDeps) {
       commandLine = CommandLine.concat(commandLine, ImmutableList.of("--check_desugar_deps"));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
index 6b3a46f..248d2b7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
@@ -391,7 +391,7 @@
         .setLauncher(launcher)
         .setOneVersionEnforcementLevel(
             javaConfig.oneVersionEnforcementLevel(),
-            JavaToolchainProvider.from(ruleContext).getOneVersionWhitelist())
+            JavaToolchainProvider.from(ruleContext).getOneVersionAllowlist())
         .setSharedArchive(jsa)
         .build();
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
index 26e52b0..27e4774 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
@@ -264,7 +264,7 @@
       Artifact launcher,
       boolean usingNativeSinglejar,
       OneVersionEnforcementLevel oneVersionEnforcementLevel,
-      Artifact oneVersionWhitelistArtifact,
+      Artifact oneVersionAllowlistArtifact,
       Artifact sharedArchive);
 
   /**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchain.java
index ed26596..d72b441 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchain.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchain.java
@@ -88,7 +88,7 @@
         ruleContext.attributes().get("forcibly_disable_header_compilation", Type.BOOLEAN);
     Artifact singleJar = ruleContext.getPrerequisiteArtifact("singlejar", TransitionMode.HOST);
     Artifact oneVersion = ruleContext.getPrerequisiteArtifact("oneversion", TransitionMode.HOST);
-    Artifact oneVersionWhitelist =
+    Artifact oneVersionAllowlist =
         ruleContext.getPrerequisiteArtifact("oneversion_whitelist", TransitionMode.HOST);
     Artifact genClass = ruleContext.getPrerequisiteArtifact("genclass", TransitionMode.HOST);
     Artifact resourceJarBuilder =
@@ -157,7 +157,7 @@
             forciblyDisableHeaderCompilation,
             singleJar,
             oneVersion,
-            oneVersionWhitelist,
+            oneVersionAllowlist,
             genClass,
             resourceJarBuilder,
             timezoneData,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
index 714d060..2c2b3fb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
@@ -91,7 +91,7 @@
       boolean forciblyDisableHeaderCompilation,
       Artifact singleJar,
       @Nullable Artifact oneVersion,
-      @Nullable Artifact oneVersionWhitelist,
+      @Nullable Artifact oneVersionAllowlist,
       Artifact genClass,
       @Nullable Artifact resourceJarBuilder,
       @Nullable Artifact timezoneData,
@@ -115,7 +115,7 @@
         forciblyDisableHeaderCompilation,
         singleJar,
         oneVersion,
-        oneVersionWhitelist,
+        oneVersionAllowlist,
         genClass,
         resourceJarBuilder,
         timezoneData,
@@ -145,7 +145,7 @@
   private final boolean forciblyDisableHeaderCompilation;
   private final Artifact singleJar;
   @Nullable private final Artifact oneVersion;
-  @Nullable private final Artifact oneVersionWhitelist;
+  @Nullable private final Artifact oneVersionAllowlist;
   private final Artifact genClass;
   @Nullable private final Artifact resourceJarBuilder;
   @Nullable private final Artifact timezoneData;
@@ -176,7 +176,7 @@
       boolean forciblyDisableHeaderCompilation,
       Artifact singleJar,
       @Nullable Artifact oneVersion,
-      @Nullable Artifact oneVersionWhitelist,
+      @Nullable Artifact oneVersionAllowlist,
       Artifact genClass,
       @Nullable Artifact resourceJarBuilder,
       @Nullable Artifact timezoneData,
@@ -206,7 +206,7 @@
     this.forciblyDisableHeaderCompilation = forciblyDisableHeaderCompilation;
     this.singleJar = singleJar;
     this.oneVersion = oneVersion;
-    this.oneVersionWhitelist = oneVersionWhitelist;
+    this.oneVersionAllowlist = oneVersionAllowlist;
     this.genClass = genClass;
     this.resourceJarBuilder = resourceJarBuilder;
     this.timezoneData = timezoneData;
@@ -302,10 +302,16 @@
     return oneVersion;
   }
 
-  /** Return the {@link Artifact} of the whitelist used by the one-version compliance checker. */
+  /** Return the {@link Artifact} of the allowlist used by the one-version compliance checker. */
+  @Nullable
+  public Artifact getOneVersionAllowlist() {
+    return oneVersionAllowlist;
+  }
+
+  /** Return the {@link Artifact} of the allowlist used by the one-version compliance checker. */
   @Nullable
   public Artifact getOneVersionWhitelist() {
-    return oneVersionWhitelist;
+    return oneVersionAllowlist;
   }
 
   /** Returns the {@link Artifact} of the GenClass deploy jar */
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java
index 665a915..5423cd0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java
@@ -76,8 +76,8 @@
     Preconditions.checkNotNull(jarsToCheck);
 
     Artifact oneVersionTool = javaToolchain.getOneVersionBinary();
-    Artifact oneVersionWhitelist = javaToolchain.getOneVersionWhitelist();
-    if (oneVersionTool == null || oneVersionWhitelist == null) {
+    Artifact oneVersionAllowlist = javaToolchain.getOneVersionAllowlist();
+    if (oneVersionTool == null || oneVersionAllowlist == null) {
       addRuleErrorForMissingArtifacts(ruleContext, javaToolchain);
       return outputArtifact;
     }
@@ -85,7 +85,7 @@
     CustomCommandLine.Builder oneVersionArgsBuilder =
         CustomCommandLine.builder()
             .addExecPath("--output", outputArtifact)
-            .addExecPath("--whitelist", oneVersionWhitelist);
+            .addExecPath("--whitelist", oneVersionAllowlist);
     if (enforcementLevel == OneVersionEnforcementLevel.WARNING) {
       oneVersionArgsBuilder.add("--succeed_on_found_violations");
     }
@@ -94,7 +94,7 @@
     ruleContext.registerAction(
         new SpawnAction.Builder()
             .addOutput(outputArtifact)
-            .addInput(oneVersionWhitelist)
+            .addInput(oneVersionAllowlist)
             .addTransitiveInputs(jarsToCheck)
             .setExecutable(oneVersionTool)
             .addCommandLine(
@@ -112,7 +112,7 @@
         String.format(
             "one version enforcement was requested but it is not supported by the current "
                 + "Java toolchain '%s'; see the "
-                + "java_toolchain.oneversion and java_toolchain.oneversion_whitelist "
+                + "java_toolchain.oneversion and java_toolchain.oneversion_allowlist "
                 + "attributes",
             javaToolchain.getToolchainLabel()));
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibrary.java
index a965fdb..39fbebe 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibrary.java
@@ -71,11 +71,11 @@
 
     Collection<Artifact> localSpecs = collectLocalProguardSpecs();
     if (!localSpecs.isEmpty()) {
-      // Pass our local proguard configs through the validator, which checks a whitelist.
-      FilesToRunProvider proguardWhitelister =
+      // Pass our local proguard configs through the validator, which checks an allowlist.
+      FilesToRunProvider proguardAllowlister =
           ruleContext.getExecutablePrerequisite("$proguard_whitelister", TransitionMode.HOST);
       for (Artifact specToValidate : localSpecs) {
-        specsBuilder.add(validateProguardSpec(proguardWhitelister, specToValidate));
+        specsBuilder.add(validateProguardSpec(proguardAllowlister, specToValidate));
       }
     }
 
@@ -108,11 +108,11 @@
   }
 
   /**
-   * Creates an action to run the Proguard whitelister over the given Proguard spec and returns the
+   * Creates an action to run the Proguard allowlister over the given Proguard spec and returns the
    * validated Proguard spec, ready to be exported.
    */
   private Artifact validateProguardSpec(
-      FilesToRunProvider proguardWhitelister, Artifact specToValidate) {
+      FilesToRunProvider proguardAllowlister, Artifact specToValidate) {
     // If we're validating j/a/b/testapp/proguard.cfg, the output will be:
     // j/a/b/testapp/proguard.cfg_valid
     Artifact output =
@@ -126,7 +126,7 @@
         new SpawnAction.Builder()
             .addInput(specToValidate)
             .addOutput(output)
-            .setExecutable(proguardWhitelister)
+            .setExecutable(proguardAllowlister)
             .setProgressMessage("Validating proguard configuration")
             .setMnemonic("ValidateProguard")
             .addCommandLine(
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java b/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java
index 19cbb07..a706129 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java
@@ -216,7 +216,7 @@
 
     this.repoEnv.putAll(clientEnv);
     if (command.builds()) {
-      // Compute the set of environment variables that are whitelisted on the commandline
+      // Compute the set of environment variables that are allowlisted on the commandline
       // for inheritance.
       for (Map.Entry<String, String> entry :
           options.getOptions(CoreOptions.class).actionEnvironment) {
@@ -358,18 +358,18 @@
   }
 
   /**
-   * Return an ordered version of the client environment restricted to those variables whitelisted
+   * Return an ordered version of the client environment restricted to those variables allowlisted
    * by the command-line options to be inheritable by actions.
    */
-  public Map<String, String> getWhitelistedActionEnv() {
+  public Map<String, String> getAllowlistedActionEnv() {
     return filterClientEnv(visibleActionEnv);
   }
 
   /**
-   * Return an ordered version of the client environment restricted to those variables whitelisted
+   * Return an ordered version of the client environment restricted to those variables allowlisted
    * by the command-line options to be inheritable by actions.
    */
-  public Map<String, String> getWhitelistedTestEnv() {
+  public Map<String, String> getAllowlistedTestEnv() {
     return filterClientEnv(visibleTestEnv);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/info/ClientEnv.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/info/ClientEnv.java
index 11eac4c..2a0534d 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/info/ClientEnv.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/info/ClientEnv.java
@@ -33,12 +33,12 @@
   @Override
   public byte[] get(Supplier<BuildConfiguration> configurationSupplier, CommandEnvironment env) {
     String result = "";
-    for (Map.Entry<String, String> entry : env.getWhitelistedActionEnv().entrySet()) {
+    for (Map.Entry<String, String> entry : env.getAllowlistedActionEnv().entrySet()) {
       // TODO(bazel-team): as the syntax of our rc-files does not support to express new-lines in
       // values, we produce syntax errors if the value of the entry contains a newline character.
       result += "build --action_env=" + entry.getKey() + "=" + entry.getValue() + "\n";
     }
-    for (Map.Entry<String, String> entry : env.getWhitelistedTestEnv().entrySet()) {
+    for (Map.Entry<String, String> entry : env.getAllowlistedTestEnv().entrySet()) {
       // TODO(bazel-team): as the syntax of our rc-files does not support to express new-lines in
       // values, we produce syntax errors if the value of the entry contains a newline character.
       result += "build --test_env=" + entry.getKey() + "=" + entry.getValue() + "\n";