)]}'
{
  "commit": "14a717f09aa4bb098e6f17bc7774a12bfc9f7e94",
  "tree": "95f85aed3b0162159c76e52e0a49697af7beadbb",
  "parents": [
    "5525dbca03d676f80e8fc5554f6fa040dea1a446"
  ],
  "author": {
    "name": "Peter Hawkins",
    "email": "phawkins@google.com",
    "time": "Tue Oct 06 07:51:12 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Oct 06 12:51:12 2026 +0100"
  },
  "message": "Add Python 3.13–3.15 and free-threading wheel support (#2314)\n\nUpdate Python bindings to support Python 3.10–3.15, including free-threaded\n3.14t and 3.15t builds.\n\nSwitch the wheel build to nanobind 3 split mode (`nanobind-backend\u003e\u003d1.0`),\nwhich moves Python-version-specific runtime internals into `nanobind-backend`\nso that stable ABI wheels work starting from Python 3.10 instead of 3.12 and\nsupport PEP 803 (`abi3t`) on Python 3.15t+. This reduces the wheel matrix to\nthree wheels per platform architecture (`cp310-abi3`, `cp314-cp314t`, and\n`cp315-abi3t`), and the `cp310-abi3` and `cp315-abi3t` wheels should be\nforward-compatible with future Python releases.\n\nAssisted-by: Gemini\n\nCo-authored-by: dominic \u003c510002+dmah42@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2b0aa21219df8fcc057961e80a1c8cd5dfaa7708",
      "old_mode": 33188,
      "old_path": ".bazelversion",
      "new_id": "f9c71a52e2fd865dbf40db779b5bf8157d5c5a6a",
      "new_mode": 33188,
      "new_path": ".bazelversion"
    },
    {
      "type": "modify",
      "old_id": "a1693b87eaf02a5aa14ad24ce2d921c38091307d",
      "old_mode": 33188,
      "old_path": ".github/install_bazel.sh",
      "new_id": "656b9f0c5274a3c2502e5e56ecdb6df025f0d11e",
      "new_mode": 33188,
      "new_path": ".github/install_bazel.sh"
    },
    {
      "type": "modify",
      "old_id": "1bd3fb99273b76cfb9b311102f9086efcd7b8ac6",
      "old_mode": 33188,
      "old_path": ".github/workflows/test_bindings.yml",
      "new_id": "7f6aba384a03a5afad9b69c95bfed57055bd3474",
      "new_mode": 33188,
      "new_path": ".github/workflows/test_bindings.yml"
    },
    {
      "type": "modify",
      "old_id": "78518c5a60f1389529b5986f1732a3433206f81e",
      "old_mode": 33188,
      "old_path": ".github/workflows/wheels.yml",
      "new_id": "ac0635dcc760d3a26250b0e9497ac103a609547e",
      "new_mode": 33188,
      "new_path": ".github/workflows/wheels.yml"
    },
    {
      "type": "modify",
      "old_id": "159de1b64cb42771d9586b79ae85164e518d5457",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "fa51298bf8668459cb1090d63a734c5d40530451",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "2d494679acbb9525c4262ceb5a155036783e735c",
      "old_mode": 33188,
      "old_path": "bindings/python/google_benchmark/BUILD",
      "new_id": "8009b14257961864037b8ae7353304bef53c2bc1",
      "new_mode": 33188,
      "new_path": "bindings/python/google_benchmark/BUILD"
    },
    {
      "type": "modify",
      "old_id": "d9c5d2d3f691901464050d6c34a8d332273c5f4d",
      "old_mode": 33188,
      "old_path": "docs/python_bindings.md",
      "new_id": "718d1079ff64bb2111cd5d63e1a997fa1b98f7ff",
      "new_mode": 33188,
      "new_path": "docs/python_bindings.md"
    },
    {
      "type": "modify",
      "old_id": "24b4f7407bfd9959d174ced1e0a9b4dafdeef467",
      "old_mode": 33188,
      "old_path": "pyproject.toml",
      "new_id": "4cdf9708e43b478cb63b7416491ce2e546b7f745",
      "new_mode": 33188,
      "new_path": "pyproject.toml"
    },
    {
      "type": "modify",
      "old_id": "a92fa9b2bb64b1bc4907fc38e8784dffb80a7d8e",
      "old_mode": 33188,
      "old_path": "setup.py",
      "new_id": "a941aeaa88d0e4b14cef4bac33fd0b6f912bd1dc",
      "new_mode": 33188,
      "new_path": "setup.py"
    }
  ]
}
