)]}'
{
  "commit": "fd9e676b34ece953c3d644a5a4e5bc5ef140df7d",
  "tree": "806ad204004224205ff0a00adab34ab4a81329a2",
  "parents": [
    "dc1e30c0ba597084cb2447f1958aaf9c5be2a3e9"
  ],
  "author": {
    "name": "jingwen",
    "email": "jingwen@google.com",
    "time": "Tue Oct 27 11:25:32 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Oct 27 11:27:07 2026 -0700"
  },
  "message": "Register `PackageSpecification.PackageGroupContents` for Skycache value-sharing\n\nDuring Skycache frontier serialization, `PackageSpecification.PackageGroupContents` (and its generated `@AutoValue` subclass `AutoValue_PackageSpecification_PackageGroupContents`) was previously serialized inline via `DynamicCodec` whenever referenced by package visibility specifications or `NestedSet\u003cPackageGroupContents\u003e` nodes. Across a single build graph, 30,798 `PackageGroupContents` instances were serialized inline (despite only 2,861 unique instances), accounting for 3.14 MB (205,770 cumulative objects) of wire data.\n\nThis change:\n\n- Annotates `PackageSpecification.PackageGroupContents` with `@AutoCodec` and adds a `@VisibleForSerialization @AutoCodec.Instantiator` factory method (`createForSerialization`) returning `AutoValue_PackageSpecification_PackageGroupContents`.\n\n- Registers `PackageGroupContents.class` in `SerializationRegistrySetupHelpers.AUTOCODEC_CLASSES_FOR_VALUE_SHARING` so `PackageGroupContents` instances are deduplicated across Skyframe nodes via `ValueSharingAdapter`.\n\n- Adds `PackageGroupTest.testPackageGroupContentsCodec` to verify round-trip serialization and reference-identity deduplication (`isSameInstanceAs`) with `SerializationRegistrySetupHelpers.analysisCachingCodecs()`.\n\nBefore:\n```java\n@AutoValue\npublic abstract static class PackageGroupContents\n    implements NestedSetsShouldBeInternedByEquality {\n  // Serialized inline via DynamicCodec without value-sharing across Skyframe nodes.\n}\n```\n\nAfter:\n```java\n@AutoCodec\n@AutoValue\npublic abstract static class PackageGroupContents\n    implements NestedSetsShouldBeInternedByEquality {\n  @VisibleForSerialization\n  @AutoCodec.Instantiator\n  static PackageGroupContents createForSerialization(...) {\n    return new AutoValue_PackageSpecification_PackageGroupContents(...);\n  }\n}\n```\nPiperOrigin-RevId: 1008249881\nChange-Id: I07a674af764898a5d48ce1ab98dc9fafca7ea709\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "92bf4cc589b48e70ee7ecae3fbb0aa2672acda63",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/BUILD",
      "new_id": "27800306102a8dc00eff5e49250701ef882acec6",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/BUILD"
    },
    {
      "type": "modify",
      "old_id": "ceecbaf37e9ca9798279c89fc417f90a4045c716",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/PackageSpecification.java",
      "new_id": "bc5b64ee0314c3e5efa0bfd666d91969579410db",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/PackageSpecification.java"
    },
    {
      "type": "modify",
      "old_id": "d2fe3bfc3c1ac2f6f2a1628a011d17cbc75876ff",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD",
      "new_id": "ae5960fe50596b4d8ecd723a7240d5063669c1a7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD"
    },
    {
      "type": "modify",
      "old_id": "c6e0dfac4a88f0b3efb6c1071cf1c2242febeff2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationRegistrySetupHelpers.java",
      "new_id": "09a0f582258a626d2ef951d77687485f62ac6c44",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationRegistrySetupHelpers.java"
    },
    {
      "type": "modify",
      "old_id": "943c8603b631c50976f72f84ef2c6392a8de4e8f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/packages/BUILD",
      "new_id": "c0e694fa0c0367c56fd438cefde04deb2d553e88",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/packages/BUILD"
    },
    {
      "type": "modify",
      "old_id": "ab64ae1e2faf51cd30c06bd57ffaddc1b8ac303f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/packages/PackageGroupTest.java",
      "new_id": "8fbfecdca9eec2208568f6d73a72194a5aa4f046",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/packages/PackageGroupTest.java"
    }
  ]
}
