Some simplifications for package serialization.

PiperOrigin-RevId: 183842057
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
index 6a389b1..858ae01 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
@@ -824,6 +824,11 @@
     return configurationFragmentMap;
   }
 
+  /** Returns all skylark objects in global scope for this RuleClassProvider. */
+  public Map<String, Object> getTransitiveGlobalBindings() {
+    return globals.getTransitiveBindings();
+  }
+
   /** Returns all registered {@link BuildConfiguration.Fragment} classes. */
   public ImmutableSortedSet<Class<? extends BuildConfiguration.Fragment>> getAllFragments() {
     ImmutableSortedSet.Builder<Class<? extends BuildConfiguration.Fragment>> fragmentsBuilder =
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index b07d02a..4bbd3bf 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -1585,7 +1585,7 @@
     @Override
     public void serialize(
         PackageCodecDependencies codecDeps, Package input, CodedOutputStream codedOut)
-        throws IOException {
+        throws IOException, SerializationException {
       codecDeps.getPackageSerializer().serialize(input, codedOut);
     }
 
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageSerializerInterface.java b/src/main/java/com/google/devtools/build/lib/packages/PackageSerializerInterface.java
index af25075..a06e454 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageSerializerInterface.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageSerializerInterface.java
@@ -14,6 +14,7 @@
 
 package com.google.devtools.build.lib.packages;
 
+import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
 import com.google.protobuf.CodedOutputStream;
 import java.io.IOException;
 
@@ -31,5 +32,6 @@
    * @param codedOut the stream to write {@code pkg}'s serialized representation to
    * @throws IOException on failure writing to {@code codedOut}
    */
-  void serialize(Package pkg, CodedOutputStream codedOut) throws IOException;
+  void serialize(Package pkg, CodedOutputStream codedOut)
+      throws SerializationException, IOException;
 }
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkInfo.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkInfo.java
index a2da054..8f83d75 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkInfo.java
@@ -230,7 +230,8 @@
   }
 
   /** A {@link SkylarkInfo} implementation that stores its values in a map. */
-  private static final class MapBackedSkylarkInfo extends SkylarkInfo {
+  // TODO(b/72448383): Make private.
+  public static final class MapBackedSkylarkInfo extends SkylarkInfo {
 
     private final ImmutableMap<String, Object> values;