)]}'
{
  "commit": "9d0fe48472411f892c02fb99200d0ce07b165afd",
  "tree": "14d55196ffa0a19295f2b9f5b4a2ab0a6c174773",
  "parents": [
    "69f97e01f74d7c0bc7b429f3aa471a2c22855379"
  ],
  "author": {
    "name": "Adam Cozzette",
    "email": "adamc@aspect.build",
    "time": "Tue Jun 23 11:38:08 2026 -0700"
  },
  "committer": {
    "name": "Adam Cozzette",
    "email": "adamc@aspect.build",
    "time": "Fri Jun 26 15:35:47 2026 -0700"
  },
  "message": "Fail loudly if we try to use a prebuilt protoc with unreleased code\n\nCurrently if you build with `--incompatible_enable_proto_toolchain_resolution`\n(on by default in Bazel 9) on main or any recent Git commit, you end up using\nan old v33.0 prebuilt protoc binary. The `authenticity_validation` rule does\nnot catch this, because it just checks that the `RELEASE_VERSION` prebuilt we\ndownloaded has version `RELEASE_VERSION`. This constant is never updated in\nGit, only in releases published to BCR. As a result, we get mysterious compiler\nerrors rather than a clear error about what is going wrong.\n\nThis commit fixes the problem by keeping `RELEASE_VERSION` up to date with the\nexisting `PROTOC_VERSION`. This will cause the build to fail loudly if you try\nto use a prebuilt protoc binary with a protobuf Git checkout. To make sure that\ndevelopers do not hit this issue, I updated .bazelrc to explicitly turn off use\nof the prebuilt protoc.\n\nI also removed `examples/example_without_cc_toolchain/`, because I don\u0027t think\nthis test is doing anything useful anymore. It attempts to exercise the\nprebuilt protoc, but that is something we do not expect to work correctly with\nunreleased protobuf code, and with my change it would result in a build error.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "61d3bb195d0f24fcd66837068a9275d48fc88e72",
      "old_mode": 33188,
      "old_path": ".bazelrc",
      "new_id": "cd7c1bab42c1fd9cf88135ab66ef3fc1798c2fb5",
      "new_mode": 33188,
      "new_path": ".bazelrc"
    },
    {
      "type": "modify",
      "old_id": "c178601735e592ab7f935adc1b8d0b09eddc0c41",
      "old_mode": 33188,
      "old_path": ".github/workflows/test_bazel.yml",
      "new_id": "5d36d121695ed5b03766237b55867174c8f17293",
      "new_mode": 33188,
      "new_path": ".github/workflows/test_bazel.yml"
    },
    {
      "type": "modify",
      "old_id": "913b217cff44b1f5f084cb50e833fa9e11d63988",
      "old_mode": 33188,
      "old_path": "bazel/private/oss/toolchains/prebuilt/tool_integrity.bzl",
      "new_id": "ec33cbdb577642ee642a65b5226495076086753d",
      "new_mode": 33188,
      "new_path": "bazel/private/oss/toolchains/prebuilt/tool_integrity.bzl"
    },
    {
      "type": "delete",
      "old_id": "512d7b6d3b2ae015635aa06b5520a7fd79a8a5f8",
      "old_mode": 33188,
      "old_path": "examples/example_without_cc_toolchain/.bazelrc",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "4dbbd98fb8bdc48842b4ee3957eefe58eaf4d455",
      "old_mode": 33188,
      "old_path": "examples/example_without_cc_toolchain/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "666887c542f94fed5b2202edf8ee79cdb1e28185",
      "old_mode": 33188,
      "old_path": "examples/example_without_cc_toolchain/MODULE.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "bcadd0af2fd0063b4828f714373b282f8ec8af3a",
      "old_mode": 33188,
      "old_path": "examples/example_without_cc_toolchain/README.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "1a4aede5748d528a255f4ec1518bb8daa97e821f",
      "old_mode": 33188,
      "old_path": "examples/example_without_cc_toolchain/empty.proto",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
