)]}'
{
  "commit": "60bc867371ed4c14f3042b2cfa5775a4db1fe021",
  "tree": "1f7d202bb3f27b49454ae064c9466aa94985f522",
  "parents": [
    "f10681a23f56a631df3185473ca833b29233fe23"
  ],
  "author": {
    "name": "Mike Kruskal",
    "email": "mkruskal@google.com",
    "time": "Thu Dec 11 20:51:48 2025 -0800"
  },
  "committer": {
    "name": "Michael Stapelberg",
    "email": "stapelberg@google.com",
    "time": "Wed Dec 17 00:52:06 2025 -0800"
  },
  "message": "compiler/protogen: introduce and expose feature resoluton to protogen\n\nThis will allow go plugins to specify any custom extensions they care about using protoc to generate a FeatureSetDefaults object.  They can then access all ResolvedFeatures of any descriptors to do more involved codegen for languages outside of go.\n\nChange-Id: I3be49645612c6712a9e58ba65b6374735f8197b8\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/729461\nReviewed-by: Lasse Folger \u003classefolger@google.com\u003e\nReviewed-by: Michael Stapelberg \u003cstapelberg@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ea6209de5e1520e9248a730379818fa2b675fe37",
      "new_mode": 33188,
      "new_path": "cmd/protoc-gen-go/feature_resolution_test/feature_resolution_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9d921a34640b50ac9fe2046f387876e14585c2ef",
      "new_mode": 33188,
      "new_path": "cmd/protoc-gen-go/feature_resolution_test/test_features_defaults.binpb"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9ee76a2c6512a63166e80aa00256ad24d593d4f7",
      "new_mode": 33188,
      "new_path": "cmd/protoc-gen-go/testdata/featureresolution/basic.pb.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e6bd82c695ae00197b671a9bee5a873b43b15a64",
      "new_mode": 33188,
      "new_path": "cmd/protoc-gen-go/testdata/featureresolution/basic.proto"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "09f2620d8afe7e8bcbf55d2d784922181fc01c71",
      "new_mode": 33188,
      "new_path": "cmd/protoc-gen-go/testdata/features/test_features.pb.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6d580132463f9c89a0d1f0d94ac30d85b70772e1",
      "new_mode": 33188,
      "new_path": "cmd/protoc-gen-go/testdata/features/test_features.proto"
    },
    {
      "type": "modify",
      "old_id": "4c7e9302b35561bde60442a04c3f0bc8b222d4dc",
      "old_mode": 33188,
      "old_path": "cmd/protoc-gen-go/testdata/gen_test.go",
      "new_id": "d340c53cb597203095bf6e97cd75a40fbc02e659",
      "new_mode": 33188,
      "new_path": "cmd/protoc-gen-go/testdata/gen_test.go"
    },
    {
      "type": "modify",
      "old_id": "f68418bb1aa66a232ad439352aba670333f50045",
      "old_mode": 33188,
      "old_path": "compiler/protogen/protogen.go",
      "new_id": "4af705ffab53f7a63dae359384f0585f59e79aeb",
      "new_mode": 33188,
      "new_path": "compiler/protogen/protogen.go"
    },
    {
      "type": "modify",
      "old_id": "6ce843595878f1482db189bae1df64a930a9eddd",
      "old_mode": 33188,
      "old_path": "internal/cmd/generate-protos/main.go",
      "new_id": "27b05a3817c3d20c9a519de69c9536146b4103f7",
      "new_mode": 33188,
      "new_path": "internal/cmd/generate-protos/main.go"
    }
  ]
}
