Add context argument to ObjectCodec.{serialize,deserialize}

Context implementations are currently empty, just doing the plumbing in this
change. Once this is in we can start passing along the ObjectCodecRegistry, which
will allow runtime codec resolution for classes not known at compile time.
We'll also inevitably add some memoization helpers, allowing us to optimize the
serialization process further.

PiperOrigin-RevId: 185305674
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 8a1f02a..1d7ee3a 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
@@ -1584,13 +1584,19 @@
 
     @Override
     public void serialize(
-        PackageCodecDependencies codecDeps, Package input, CodedOutputStream codedOut)
+        PackageCodecDependencies codecDeps,
+        com.google.devtools.build.lib.skyframe.serialization.SerializationContext context,
+        Package input,
+        CodedOutputStream codedOut)
         throws IOException, SerializationException {
       codecDeps.getPackageSerializer().serialize(input, codedOut);
     }
 
     @Override
-    public Package deserialize(PackageCodecDependencies codecDeps, CodedInputStream codedIn)
+    public Package deserialize(
+        PackageCodecDependencies codecDeps,
+        com.google.devtools.build.lib.skyframe.serialization.DeserializationContext context,
+        CodedInputStream codedIn)
         throws SerializationException, IOException {
       try {
         return codecDeps.getPackageDeserializer().deserialize(codedIn);
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java
index fe7e4d9..249bc91 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java
@@ -14,7 +14,9 @@
 
 package com.google.devtools.build.lib.packages;
 
+import com.google.devtools.build.lib.skyframe.serialization.DeserializationContext;
 import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.SerializationContext;
 import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
 import com.google.devtools.build.lib.syntax.SkylarkSemantics;
 import com.google.protobuf.CodedInputStream;
@@ -37,7 +39,8 @@
   }
 
   @Override
-  public void serialize(SkylarkSemantics semantics, CodedOutputStream codedOut)
+  public void serialize(
+      SerializationContext context, SkylarkSemantics semantics, CodedOutputStream codedOut)
       throws SerializationException, IOException {
     // <== Add new options here in alphabetic order ==>
     codedOut.writeBoolNoTag(semantics.incompatibleBzlDisallowLoadAfterStatement());
@@ -59,7 +62,7 @@
   }
 
   @Override
-  public SkylarkSemantics deserialize(CodedInputStream codedIn)
+  public SkylarkSemantics deserialize(DeserializationContext context, CodedInputStream codedIn)
       throws SerializationException, IOException {
     SkylarkSemantics.Builder builder = SkylarkSemantics.builder();