Deletes @AutoCodec annotation from BuildConfiguration.Fragment subclasses.

It's less safe than DynamicCodec.

PiperOrigin-RevId: 211828418
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfiguration.java
index 48753ef..5357946 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfiguration.java
@@ -18,12 +18,10 @@
 import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.concurrent.ThreadSafety;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.skylarkbuildapi.platform.PlatformConfigurationApi;
 import java.util.List;
 
 /** A configuration fragment describing the current platform configuration. */
-@AutoCodec
 @ThreadSafety.Immutable
 public class PlatformConfiguration extends BuildConfiguration.Fragment
     implements PlatformConfigurationApi {
@@ -33,7 +31,6 @@
   private final ImmutableList<String> extraToolchains;
   private final ImmutableList<Label> enabledToolchainTypes;
 
-  @AutoCodec.Instantiator
   PlatformConfiguration(
       Label hostPlatform,
       ImmutableList<String> extraExecutionPlatforms,
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java
index 9e329ce..7da070a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java
@@ -20,7 +20,6 @@
 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.FragmentOptions;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.util.OS;
 import com.google.devtools.build.lib.util.OptionsUtils.PathFragmentConverter;
 import com.google.devtools.build.lib.vfs.PathFragment;
@@ -32,7 +31,6 @@
 import javax.annotation.Nullable;
 
 /** A configuration fragment that tells where the shell is. */
-@AutoCodec
 public class ShellConfiguration extends BuildConfiguration.Fragment {
   private static final ImmutableMap<OS, PathFragment> OS_SPECIFIC_SHELL =
       ImmutableMap.<OS, PathFragment>builder()
@@ -43,7 +41,7 @@
   private final PathFragment shellExecutable;
   private final boolean useShBinaryStubScript;
 
-  public ShellConfiguration(PathFragment shellExecutable, boolean useShBinaryStubScript) {
+  private ShellConfiguration(PathFragment shellExecutable, boolean useShBinaryStubScript) {
     this.shellExecutable = shellExecutable;
     this.useShBinaryStubScript = useShBinaryStubScript;
   }
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java
index 022ea53..3ce4918 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java
@@ -31,7 +31,6 @@
 import com.google.devtools.build.lib.events.Event;
 import com.google.devtools.build.lib.events.EventHandler;
 import com.google.devtools.build.lib.packages.TestTimeout;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.util.RegexFilter;
 import com.google.devtools.common.options.Option;
 import com.google.devtools.common.options.OptionDefinition;
@@ -47,7 +46,6 @@
 import java.util.Set;
 
 /** Test-related options. */
-@AutoCodec
 public class TestConfiguration extends Fragment {
   public static final OptionsDiffPredicate HAVE_OPTIONS_AFFECTING_NON_TEST_TARGETS_CHANGED =
       (diff, options) -> {
@@ -292,7 +290,7 @@
   private final TestOptions options;
   private final ImmutableMap<TestTimeout, Duration> testTimeout;
 
-  TestConfiguration(TestOptions options) {
+  private TestConfiguration(TestOptions options) {
     this.options = options;
     this.testTimeout = ImmutableMap.copyOf(options.testTimeout);
   }
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java
index 7193ffa..d19e56b 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java
@@ -24,7 +24,6 @@
 import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.util.OS;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import com.google.devtools.common.options.Converter;
@@ -34,7 +33,6 @@
 import com.google.devtools.common.options.OptionMetadataTag;
 
 /** Bazel-specific Python configuration. */
-@AutoCodec
 @Immutable
 public class BazelPythonConfiguration extends BuildConfiguration.Fragment {
   /**
@@ -151,8 +149,7 @@
 
   private final Options options;
 
-  @AutoCodec.Instantiator
-  BazelPythonConfiguration(Options options) {
+  private BazelPythonConfiguration(Options options) {
     this.options = options;
   }
 
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 991143c..f49e17e 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
@@ -36,7 +36,6 @@
 import com.google.devtools.build.lib.rules.cpp.CppConfiguration.DynamicMode;
 import com.google.devtools.build.lib.rules.cpp.CppOptions.DynamicModeConverter;
 import com.google.devtools.build.lib.rules.cpp.CppOptions.LibcTopLabelConverter;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.skylarkbuildapi.android.AndroidConfigurationApi;
 import com.google.devtools.common.options.Converters;
 import com.google.devtools.common.options.EnumConverter;
@@ -48,7 +47,6 @@
 import javax.annotation.Nullable;
 
 /** Configuration fragment for Android rules. */
-@AutoCodec
 @Immutable
 public class AndroidConfiguration extends BuildConfiguration.Fragment
     implements AndroidConfigurationApi {
@@ -977,7 +975,7 @@
   private final boolean dataBindingV2;
   private final boolean persistentBusyboxTools;
 
-  AndroidConfiguration(Options options) throws InvalidConfigurationException {
+  private AndroidConfiguration(Options options) throws InvalidConfigurationException {
     this.sdk = options.sdk;
     this.useIncrementalNativeLibs = options.incrementalNativeLibs;
     this.cpu = options.cpu;
@@ -1034,83 +1032,6 @@
     }
   }
 
-  @AutoCodec.Instantiator
-  AndroidConfiguration(
-      Label sdk,
-      String cpu,
-      boolean useIncrementalNativeLibs,
-      ConfigurationDistinguisher configurationDistinguisher,
-      boolean incrementalDexing,
-      int incrementalDexingShardsAfterProguard,
-      boolean incrementalDexingUseDexSharder,
-      boolean incrementalDexingAfterProguardByDefault,
-      boolean assumeMinSdkVersion,
-      ImmutableList<String> dexoptsSupportedInIncrementalDexing,
-      ImmutableList<String> targetDexoptsThatPreventIncrementalDexing,
-      ImmutableList<String> dexoptsSupportedInDexMerger,
-      boolean useWorkersWithDexbuilder,
-      boolean desugarJava8,
-      boolean desugarJava8Libs,
-      boolean checkDesugarDeps,
-      boolean useRexToCompressDexFiles,
-      boolean allowAndroidLibraryDepsWithoutSrcs,
-      boolean useAndroidResourceShrinking,
-      boolean useAndroidResourceCycleShrinking,
-      AndroidManifestMerger manifestMerger,
-      ApkSigningMethod apkSigningMethod,
-      boolean useSingleJarApkBuilder,
-      boolean compressJavaResources,
-      boolean exportsManifestDefault,
-      AndroidAaptVersion androidAaptVersion,
-      boolean useAapt2ForRobolectric,
-      boolean throwOnResourceConflict,
-      boolean useParallelDex2Oat,
-      boolean skipParsingAction,
-      boolean fixedResourceNeverlinking,
-      AndroidRobolectricTestDeprecationLevel robolectricTestDeprecationLevel,
-      boolean checkForMigrationTag,
-      boolean oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest,
-      boolean dataBindingV2,
-      boolean persistentBusyboxTools) {
-    this.sdk = sdk;
-    this.cpu = cpu;
-    this.useIncrementalNativeLibs = useIncrementalNativeLibs;
-    this.configurationDistinguisher = configurationDistinguisher;
-    this.incrementalDexing = incrementalDexing;
-    this.incrementalDexingShardsAfterProguard = incrementalDexingShardsAfterProguard;
-    this.incrementalDexingUseDexSharder = incrementalDexingUseDexSharder;
-    this.incrementalDexingAfterProguardByDefault = incrementalDexingAfterProguardByDefault;
-    this.assumeMinSdkVersion = assumeMinSdkVersion;
-    this.dexoptsSupportedInIncrementalDexing = dexoptsSupportedInIncrementalDexing;
-    this.targetDexoptsThatPreventIncrementalDexing = targetDexoptsThatPreventIncrementalDexing;
-    this.dexoptsSupportedInDexMerger = dexoptsSupportedInDexMerger;
-    this.useWorkersWithDexbuilder = useWorkersWithDexbuilder;
-    this.desugarJava8 = desugarJava8;
-    this.desugarJava8Libs = desugarJava8Libs;
-    this.checkDesugarDeps = checkDesugarDeps;
-    this.useRexToCompressDexFiles = useRexToCompressDexFiles;
-    this.allowAndroidLibraryDepsWithoutSrcs = allowAndroidLibraryDepsWithoutSrcs;
-    this.useAndroidResourceShrinking = useAndroidResourceShrinking;
-    this.useAndroidResourceCycleShrinking = useAndroidResourceCycleShrinking;
-    this.manifestMerger = manifestMerger;
-    this.apkSigningMethod = apkSigningMethod;
-    this.useSingleJarApkBuilder = useSingleJarApkBuilder;
-    this.compressJavaResources = compressJavaResources;
-    this.exportsManifestDefault = exportsManifestDefault;
-    this.androidAaptVersion = androidAaptVersion;
-    this.useAapt2ForRobolectric = useAapt2ForRobolectric;
-    this.throwOnResourceConflict = throwOnResourceConflict;
-    this.useParallelDex2Oat = useParallelDex2Oat;
-    this.skipParsingAction = skipParsingAction;
-    this.fixedResourceNeverlinking = fixedResourceNeverlinking;
-    this.robolectricTestDeprecationLevel = robolectricTestDeprecationLevel;
-    this.checkForMigrationTag = checkForMigrationTag;
-    this.oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest =
-        oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest;
-    this.dataBindingV2 = dataBindingV2;
-    this.persistentBusyboxTools = persistentBusyboxTools;
-  }
-
   @Override
   public String getCpu() {
     return cpu;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java
index bb35a35..3530bc5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java
@@ -22,14 +22,12 @@
 import com.google.devtools.build.lib.analysis.config.FragmentOptions;
 import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.common.options.Option;
 import com.google.devtools.common.options.OptionDocumentationCategory;
 import com.google.devtools.common.options.OptionEffectTag;
 import javax.annotation.Nullable;
 
 /** Configuration fragment for android_local_test. */
-@AutoCodec
 @Immutable
 public class AndroidLocalTestConfiguration extends BuildConfiguration.Fragment {
   /** android_local_test specific options */
@@ -81,15 +79,10 @@
 
   private final boolean androidLocalTestBinaryResources;
 
-  AndroidLocalTestConfiguration(Options options) {
+  private AndroidLocalTestConfiguration(Options options) {
     this.androidLocalTestBinaryResources = options.androidLocalTestBinaryResources;
   }
 
-  @AutoCodec.Instantiator
-  AndroidLocalTestConfiguration(boolean androidLocalTestBinaryResources) {
-    this.androidLocalTestBinaryResources = androidLocalTestBinaryResources;
-  }
-
   public boolean useAndroidLocalTestBinaryResources() {
     return this.androidLocalTestBinaryResources;
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
index 62e2143..ecea75d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
@@ -31,14 +31,12 @@
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions.AppleBitcodeMode;
 import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.skylarkbuildapi.apple.AppleConfigurationApi;
 import java.util.ArrayList;
 import java.util.List;
 import javax.annotation.Nullable;
 
 /** A configuration containing flags required for Apple platforms and tools. */
-@AutoCodec
 @Immutable
 public class AppleConfiguration extends BuildConfiguration.Fragment
     implements AppleConfigurationApi<PlatformType> {
@@ -80,8 +78,7 @@
   private final boolean mandatoryMinimumVersion;
   private final boolean objcProviderFromLinked;
 
-  @AutoCodec.Instantiator
-  AppleConfiguration(AppleCommandLineOptions options, String iosCpu) {
+  private AppleConfiguration(AppleCommandLineOptions options, String iosCpu) {
     this.options = options;
     this.iosCpu = iosCpu;
     this.appleSplitCpu = Preconditions.checkNotNull(options.appleSplitCpu, "appleSplitCpu");
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java
index 39aa220..f653e89 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java
@@ -23,26 +23,19 @@
 import com.google.devtools.build.lib.analysis.config.FragmentOptions;
 import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.skylarkbuildapi.apple.SwiftConfigurationApi;
 
 /**
  * A configuration containing flags required for Swift tools. This is used primarily by swift_*
  * family of rules written in Skylark.
  */
-@AutoCodec
 @Immutable
 public class SwiftConfiguration extends BuildConfiguration.Fragment
     implements SwiftConfigurationApi {
   private final ImmutableList<String> copts;
 
-  public SwiftConfiguration(SwiftCommandLineOptions options) {
-    this(ImmutableList.copyOf(options.copts));
-  }
-
-  @AutoCodec.Instantiator
-  SwiftConfiguration(ImmutableList<String> copts) {
-    this.copts = copts;
+  private SwiftConfiguration(SwiftCommandLineOptions options) {
+    this.copts = ImmutableList.copyOf(options.copts);
   }
 
   /** Returns a list of options to use for compiling Swift. */
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java
index 708a825..ac577dc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java
@@ -14,6 +14,7 @@
 
 package com.google.devtools.build.lib.rules.config;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -29,7 +30,6 @@
 import com.google.devtools.build.lib.analysis.config.FragmentOptions;
 import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
 import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import java.util.Map;
 import java.util.Optional;
 import java.util.SortedMap;
@@ -39,7 +39,6 @@
  * Configuration fragment for Android's config_feature_flag, flags which can be defined in BUILD
  * files.
  */
-@AutoCodec
 public final class ConfigFeatureFlagConfiguration extends BuildConfiguration.Fragment {
   /**
    * A configuration fragment loader able to create instances of {@link
@@ -95,24 +94,14 @@
   @Nullable private final String flagHash;
 
   /** Creates a new configuration fragment from the given {@link ConfigFeatureFlagOptions}. */
-  public ConfigFeatureFlagConfiguration(ConfigFeatureFlagOptions options) {
+  @VisibleForTesting
+  ConfigFeatureFlagConfiguration(ConfigFeatureFlagOptions options) {
     // TODO(mstaib): we'd love to only construct these when we're trimmed, but this is still what
     // the top level looks like - make constructing an untrimmed configuration an error when no
     // configurations are constructed untrimmed.
-    this(
-        options.getFlagValues(),
-        options.getKnownDefaultFlags().orElse(ImmutableSortedSet.of()),
-        options.enforceTransitiveConfigsForConfigFeatureFlag && options.isTrimmed());
-  }
-
-  @AutoCodec.Instantiator
-  ConfigFeatureFlagConfiguration(
-      ImmutableSortedMap<Label, String> flagValues,
-      ImmutableSortedSet<Label> knownDefaultFlags,
-      boolean isTrimmed) {
-    this.flagValues = flagValues;
-    this.knownDefaultFlags = knownDefaultFlags;
-    this.isTrimmed = isTrimmed;
+    this.flagValues = options.getFlagValues();
+    this.knownDefaultFlags = options.getKnownDefaultFlags().orElse(ImmutableSortedSet.of());
+    this.isTrimmed = options.enforceTransitiveConfigsForConfigFeatureFlag && options.isTrimmed();
     // We don't hash flags set to their default values; all valid configurations of a target have
     // the same set of known flags, so the set of flags set to something other than their default
     // values is enough to disambiguate configurations. Similarly, isTrimmed need not be hashed;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index e3bb2ff..46cbdef 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -36,7 +36,6 @@
 import com.google.devtools.build.lib.rules.cpp.CppConfigurationLoader.CppConfigurationParameters;
 import com.google.devtools.build.lib.rules.cpp.CrosstoolConfigurationLoader.CrosstoolFile;
 import com.google.devtools.build.lib.rules.cpp.Link.LinkingMode;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.skylarkbuildapi.cpp.CppConfigurationApi;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
 import com.google.devtools.build.lib.syntax.EvalException;
@@ -79,7 +78,6 @@
  *       --compiler values, and construct the key as follows: <toolchain.cpu>|<toolchain.compiler>.
  * </ul>
  */
-@AutoCodec
 @Immutable
 public final class CppConfiguration extends BuildConfiguration.Fragment
     implements CppConfigurationApi<InvalidConfigurationException> {
@@ -299,8 +297,7 @@
         cppToolchainInfo);
   }
 
-  @AutoCodec.Instantiator
-  CppConfiguration(
+  private CppConfiguration(
       Label crosstoolTop,
       CrosstoolFile crosstoolFile,
       String desiredCpu,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
index ff5b8d1..4ed7b13 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
@@ -28,7 +28,6 @@
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 import com.google.devtools.build.lib.events.Event;
 import com.google.devtools.build.lib.events.EventHandler;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.skylarkbuildapi.java.JavaConfigurationApi;
 import com.google.devtools.common.options.TriState;
 import java.util.List;
@@ -36,7 +35,6 @@
 import javax.annotation.Nullable;
 
 /** A java compiler configuration containing the flags required for compilation. */
-@AutoCodec
 @Immutable
 public final class JavaConfiguration extends Fragment implements JavaConfigurationApi {
 
@@ -180,9 +178,7 @@
   // TODO(dmarting): remove once we have a proper solution for #2539
   private final boolean useLegacyBazelJavaTest;
 
-  JavaConfiguration(
-      JavaOptions javaOptions)
-      throws InvalidConfigurationException {
+  JavaConfiguration(JavaOptions javaOptions) throws InvalidConfigurationException {
     this.commandLineJavacFlags =
         ImmutableList.copyOf(JavaHelper.tokenizeJavaOptions(javaOptions.javacOpts));
     this.javaLauncherLabel = javaOptions.javaLauncher;
@@ -238,72 +234,6 @@
     this.pluginList = ImmutableList.copyOf(javaOptions.pluginList);
   }
 
-  @AutoCodec.Instantiator
-  JavaConfiguration(
-      ImmutableList<String> commandLineJavacFlags,
-      Label javaLauncherLabel,
-      boolean useIjars,
-      boolean useHeaderCompilation,
-      boolean generateJavaDeps,
-      boolean strictDepsJavaProtos,
-      boolean protoGeneratedStrictDeps,
-      boolean isJavaProtoExportsEnabled,
-      OneVersionEnforcementLevel enforceOneVersion,
-      boolean enforceOneVersionOnJavaTests,
-      ImportDepsCheckingLevel importDepsCheckingLevel,
-      boolean allowRuntimeDepsOnNeverLink,
-      JavaClasspathMode javaClasspath,
-      ImmutableList<String> defaultJvmFlags,
-      ImmutableList<String> checkedConstraints,
-      StrictDepsMode strictJavaDeps,
-      String fixDepsTool,
-      Label proguardBinary,
-      ImmutableList<Label> extraProguardSpecs,
-      TriState bundleTranslations,
-      ImmutableList<Label> translationTargets,
-      JavaOptimizationMode javaOptimizationMode,
-      ImmutableMap<String, Optional<Label>> bytecodeOptimizers,
-      Label toolchainLabel,
-      Label runtimeLabel,
-      boolean explicitJavaTestDeps,
-      boolean experimentalTestRunner,
-      boolean jplPropagateCcLinkParamsStore,
-      boolean addTestSupportToCompileTimeDeps,
-      ImmutableList<Label> pluginList,
-      boolean useLegacyBazelJavaTest) {
-    this.commandLineJavacFlags = commandLineJavacFlags;
-    this.javaLauncherLabel = javaLauncherLabel;
-    this.useIjars = useIjars;
-    this.useHeaderCompilation = useHeaderCompilation;
-    this.generateJavaDeps = generateJavaDeps;
-    this.strictDepsJavaProtos = strictDepsJavaProtos;
-    this.protoGeneratedStrictDeps = protoGeneratedStrictDeps;
-    this.isJavaProtoExportsEnabled = isJavaProtoExportsEnabled;
-    this.enforceOneVersion = enforceOneVersion;
-    this.enforceOneVersionOnJavaTests = enforceOneVersionOnJavaTests;
-    this.importDepsCheckingLevel = importDepsCheckingLevel;
-    this.allowRuntimeDepsOnNeverLink = allowRuntimeDepsOnNeverLink;
-    this.javaClasspath = javaClasspath;
-    this.defaultJvmFlags = defaultJvmFlags;
-    this.checkedConstraints = checkedConstraints;
-    this.strictJavaDeps = strictJavaDeps;
-    this.fixDepsTool = fixDepsTool;
-    this.proguardBinary = proguardBinary;
-    this.extraProguardSpecs = extraProguardSpecs;
-    this.bundleTranslations = bundleTranslations;
-    this.translationTargets = translationTargets;
-    this.javaOptimizationMode = javaOptimizationMode;
-    this.bytecodeOptimizers = bytecodeOptimizers;
-    this.toolchainLabel = toolchainLabel;
-    this.runtimeLabel = runtimeLabel;
-    this.explicitJavaTestDeps = explicitJavaTestDeps;
-    this.experimentalTestRunner = experimentalTestRunner;
-    this.jplPropagateCcLinkParamsStore = jplPropagateCcLinkParamsStore;
-    this.addTestSupportToCompileTimeDeps = addTestSupportToCompileTimeDeps;
-    this.pluginList = pluginList;
-    this.useLegacyBazelJavaTest = useLegacyBazelJavaTest;
-  }
-
   @Override
   // TODO(bazel-team): this is the command-line passed options, we should remove from skylark
   // probably.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java
index ab1364f..fd76062 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java
@@ -26,7 +26,6 @@
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 import com.google.devtools.build.lib.events.Event;
 import com.google.devtools.build.lib.events.EventHandler;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.skylarkbuildapi.apple.J2ObjcConfigurationApi;
 import java.util.Collections;
 import javax.annotation.Nullable;
@@ -36,7 +35,6 @@
  * configuration fragment is used by Java rules that can be transpiled (specifically, J2ObjCAspects
  * thereof).
  */
-@AutoCodec
 @Immutable
 public class J2ObjcConfiguration extends Fragment implements J2ObjcConfigurationApi {
   /**
@@ -93,28 +91,16 @@
   private final boolean experimentalJ2ObjcHeaderMap;
   @Nullable private final Label deadCodeReport;
 
-  J2ObjcConfiguration(J2ObjcCommandLineOptions j2ObjcOptions) {
-    this(
+  private J2ObjcConfiguration(J2ObjcCommandLineOptions j2ObjcOptions) {
+    this.translationFlags =
         ImmutableList.<String>builder()
             .addAll(J2OBJC_DEFAULT_TRANSLATION_FLAGS)
             .addAll(j2ObjcOptions.translationFlags)
             .addAll(J2OBJC_ALWAYS_ON_TRANSLATION_FLAGS)
-            .build(),
-        j2ObjcOptions.removeDeadCode,
-        j2ObjcOptions.experimentalJ2ObjcHeaderMap,
-        j2ObjcOptions.deadCodeReport);
-  }
-
-  @AutoCodec.Instantiator
-  J2ObjcConfiguration(
-      ImmutableList<String> translationFlags,
-      boolean removeDeadCode,
-      boolean experimentalJ2ObjcHeaderMap,
-      Label deadCodeReport) {
-    this.translationFlags = translationFlags;
-    this.removeDeadCode = removeDeadCode;
-    this.experimentalJ2ObjcHeaderMap = experimentalJ2ObjcHeaderMap;
-    this.deadCodeReport = deadCodeReport;
+            .build();
+    this.removeDeadCode = j2ObjcOptions.removeDeadCode;
+    this.experimentalJ2ObjcHeaderMap = j2ObjcOptions.experimentalJ2ObjcHeaderMap;
+    this.deadCodeReport = j2ObjcOptions.deadCodeReport;
   }
 
   /**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
index 4f0e5e1..49c5994 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
@@ -24,12 +24,10 @@
 import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType;
 import com.google.devtools.build.lib.rules.apple.DottedVersion;
 import com.google.devtools.build.lib.rules.cpp.HeaderDiscovery;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.skylarkbuildapi.apple.ObjcConfigurationApi;
 import javax.annotation.Nullable;
 
 /** A compiler configuration containing flags required for Objective-C compilation. */
-@AutoCodec
 @Immutable
 public class ObjcConfiguration extends BuildConfiguration.Fragment
     implements ObjcConfigurationApi<PlatformType> {
@@ -112,60 +110,6 @@
     this.strictObjcModuleMaps = objcOptions.strictObjcModuleMaps;
   }
 
-  @AutoCodec.Instantiator
-  ObjcConfiguration(
-      DottedVersion iosSimulatorVersion,
-      String iosSimulatorDevice,
-      DottedVersion watchosSimulatorVersion,
-      String watchosSimulatorDevice,
-      DottedVersion tvosSimulatorVersion,
-      String tvosSimulatorDevice,
-      boolean generateDsym,
-      boolean generateLinkmap,
-      boolean runMemleaks,
-      ImmutableList<String> copts,
-      CompilationMode compilationMode,
-      ImmutableList<String> fastbuildOptions,
-      boolean enableBinaryStripping,
-      boolean moduleMapsEnabled,
-      String signingCertName,
-      boolean debugWithGlibcxx,
-      Label extraEntitlements,
-      boolean deviceDebugEntitlements,
-      boolean enableAppleBinaryNativeProtos,
-      HeaderDiscovery.DotdPruningMode dotdPruningPlan,
-      boolean experimentalHeaderThinning,
-      int objcHeaderThinningPartitionSize,
-      Label objcHeaderScannerTool,
-      Label appleSdk,
-      boolean strictObjcModuleMaps) {
-    this.iosSimulatorVersion = iosSimulatorVersion;
-    this.iosSimulatorDevice = iosSimulatorDevice;
-    this.watchosSimulatorVersion = watchosSimulatorVersion;
-    this.watchosSimulatorDevice = watchosSimulatorDevice;
-    this.tvosSimulatorVersion = tvosSimulatorVersion;
-    this.tvosSimulatorDevice = tvosSimulatorDevice;
-    this.generateDsym = generateDsym;
-    this.generateLinkmap = generateLinkmap;
-    this.runMemleaks = runMemleaks;
-    this.copts = copts;
-    this.compilationMode = compilationMode;
-    this.fastbuildOptions = fastbuildOptions;
-    this.enableBinaryStripping = enableBinaryStripping;
-    this.moduleMapsEnabled = moduleMapsEnabled;
-    this.signingCertName = signingCertName;
-    this.debugWithGlibcxx = debugWithGlibcxx;
-    this.extraEntitlements = extraEntitlements;
-    this.deviceDebugEntitlements = deviceDebugEntitlements;
-    this.enableAppleBinaryNativeProtos = enableAppleBinaryNativeProtos;
-    this.dotdPruningPlan = dotdPruningPlan;
-    this.experimentalHeaderThinning = experimentalHeaderThinning;
-    this.objcHeaderThinningPartitionSize = objcHeaderThinningPartitionSize;
-    this.objcHeaderScannerTool = objcHeaderScannerTool;
-    this.appleSdk = appleSdk;
-    this.strictObjcModuleMaps = strictObjcModuleMaps;
-  }
-
   /**
    * Returns the type of device (e.g. 'iPhone 6') to simulate when running on the simulator.
    */
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
index 8731315..60f8281 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
@@ -25,7 +25,6 @@
 import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.skylarkbuildapi.ProtoConfigurationApi;
 import com.google.devtools.common.options.Converters;
 import com.google.devtools.common.options.Option;
@@ -35,7 +34,6 @@
 import java.util.List;
 
 /** Configuration for Protocol Buffer Libraries. */
-@AutoCodec
 @Immutable
 // This module needs to be exported to Skylark so it can be passed as a mandatory host/target
 // configuration fragment in aspect definitions.
@@ -201,8 +199,7 @@
   private final ImmutableList<String> ccProtoLibrarySourceSuffixes;
   private final Options options;
 
-  @AutoCodec.Instantiator
-  public ProtoConfiguration(Options options) {
+  private ProtoConfiguration(Options options) {
     this.protocOpts = ImmutableList.copyOf(options.protocOpts);
     this.ccProtoLibraryHeaderSuffixes = ImmutableList.copyOf(options.ccProtoLibraryHeaderSuffixes);
     this.ccProtoLibrarySourceSuffixes = ImmutableList.copyOf(options.ccProtoLibrarySourceSuffixes);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java
index 4118856..2323f46 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java
@@ -20,7 +20,6 @@
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 import com.google.devtools.build.lib.events.Event;
 import com.google.devtools.build.lib.events.EventHandler;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
 import com.google.devtools.build.lib.util.OS;
@@ -32,7 +31,6 @@
  * The configuration fragment containing information about the various pieces of infrastructure
  * needed to run Python compilations.
  */
-@AutoCodec
 @Immutable
 @SkylarkModule(
     name = "py",
@@ -44,7 +42,6 @@
   private final TriState buildPythonZip;
   private final boolean buildTransitiveRunfilesTrees;
 
-  @AutoCodec.Instantiator
   PythonConfiguration(
       PythonVersion defaultPythonVersion,
       boolean ignorePythonVersionAttribute,
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java b/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java
deleted file mode 100644
index 61e94f9..0000000
--- a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2017 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.rules.apple;
-
-import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
-import com.google.devtools.common.options.OptionsParsingException;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Tests for serialization of {@link AppleConfiguration}. */
-@RunWith(JUnit4.class)
-public class AppleConfigurationSerializationTest {
-
-  @Test
-  public void testCodec() throws Exception {
-    new SerializationTester(getSubjects()).runTests();
-  }
-
-  @Test
-  public void optionsSerialization() throws Exception {
-    new SerializationTester(
-            BuildOptions.of(ImmutableList.of(AppleCommandLineOptions.class))
-                .get(AppleCommandLineOptions.class))
-        .runTests();
-  }
-
-  private static ImmutableList<AppleConfiguration> getSubjects() {
-    AppleCommandLineOptions firstOptions = new AppleCommandLineOptions();
-    firstOptions.mandatoryMinimumVersion = false;
-    firstOptions.iosSdkVersion = DottedVersion.fromString("2.0");
-    firstOptions.watchOsSdkVersion = DottedVersion.fromString("3.0");
-    firstOptions.tvOsSdkVersion = DottedVersion.fromString("4.0");
-    firstOptions.macOsSdkVersion = DottedVersion.fromString("5.0");
-    firstOptions.iosMinimumOs = DottedVersion.fromString("6.1beta3.7");
-    firstOptions.watchosMinimumOs = DottedVersion.fromString("7.0");
-    firstOptions.tvosMinimumOs = DottedVersion.fromString("8.0");
-    firstOptions.macosMinimumOs = DottedVersion.fromString("9.0");
-    firstOptions.iosCpu = "ioscpu1";
-    firstOptions.appleCrosstoolTop = Label.parseAbsoluteUnchecked("//apple/crosstool:top");
-    firstOptions.applePlatformType = ApplePlatform.PlatformType.WATCHOS;
-    firstOptions.appleSplitCpu = "appleSplitCpu1";
-    firstOptions.configurationDistinguisher =
-        AppleConfiguration.ConfigurationDistinguisher.APPLEBIN_TVOS;
-    firstOptions.iosMultiCpus = ImmutableList.of("iosMultiCpu1", "iosMultiCpu2");
-    firstOptions.watchosCpus = ImmutableList.of("watchosCpu1", "watchosCpu2", "watchosCpu3");
-    firstOptions.tvosCpus = ImmutableList.of("tvosCpu1");
-    firstOptions.macosCpus = ImmutableList.of();
-    firstOptions.defaultProvisioningProfile =
-        Label.parseAbsoluteUnchecked("//default/provisioning");
-    firstOptions.xcodeVersionConfig = Label.parseAbsoluteUnchecked("//xcode/version:config");
-    firstOptions.appleBitcodeMode = AppleCommandLineOptions.AppleBitcodeMode.EMBEDDED_MARKERS;
-    firstOptions.xcodeVersion = "1.0";
-    try {
-      return ImmutableList.of(
-          new AppleConfiguration(firstOptions, "iosCpuArg"),
-          AppleConfiguration.create(
-              BuildOptions.of(ImmutableList.of(AppleCommandLineOptions.class))
-                  .get(AppleCommandLineOptions.class),
-              "another cpu"));
-    } catch (OptionsParsingException e) {
-      throw new IllegalStateException(e);
-    }
-  }
-}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD b/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD
index 73c02b1..badd79c 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD
@@ -10,40 +10,9 @@
     visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"],
 )
 
-SERIALIZATION_TEST_SRCS = ["AppleConfigurationSerializationTest.java"]
-
-java_library(
-    name = "AppleConfigurationSerializationTest_lib",
-    testonly = 1,
-    srcs = SERIALIZATION_TEST_SRCS,
-    deps = [
-        "//src/main/java/com/google/devtools/build/lib:build-base",
-        "//src/main/java/com/google/devtools/build/lib/cmdline",
-        "//src/main/java/com/google/devtools/build/lib/rules/apple",
-        "//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
-        "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils",
-        "//src/main/java/com/google/devtools/common/options",
-        "//third_party:guava",
-        "//third_party:junit4",
-        "//third_party/protobuf:protobuf_java",
-    ],
-)
-
-java_test(
-    name = "AppleConfigurationSerializationTest",
-    test_class = "com.google.devtools.build.lib.AllTests",
-    runtime_deps = [
-        ":AppleConfigurationSerializationTest_lib",
-        "//src/test/java/com/google/devtools/build/lib:test_runner",
-    ],
-)
-
 java_library(
     name = "AppleRulesTests_lib",
-    srcs = glob(
-        ["*.java"],
-        exclude = SERIALIZATION_TEST_SRCS,
-    ),
+    srcs = glob(["*.java"]),
     deps = [
         "//src/main/java/com/google/devtools/build/lib:build-base",
         "//src/main/java/com/google/devtools/build/lib:packages-internal",