)]}'
{
  "commit": "1bf79e9fa348aaf5f09161103a95117d16d7dbe2",
  "tree": "5e0eba19fc3a99238da489b7ce68f4d525b52b65",
  "parents": [
    "1d5ae0ea339e95a9bd1e7130f6eaae326a24a923"
  ],
  "author": {
    "name": "Fabian Meumertzheim",
    "email": "fabian@meumertzhe.im",
    "time": "Mon Nov 09 18:17:26 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Nov 09 18:17:26 2026 +0000"
  },
  "message": "refactor(toolchains): define the Python toolchain type in rules_python (#4404)\n\n`//python:toolchain_type` is an alias of the type in `@bazel_tools`. To\nmove the type out of `@bazel_tools`, Bazel will forward\n`@bazel_tools//tools/python:toolchain_type` to this target\n(bazelbuild/bazel#32412), which requires it to be the actual type on\nthose Bazel versions.\n\n`//python:toolchain_type` is now a `toolchain_type` if a new value in\nthe `@rules_python_internal` config is set and remains an alias\notherwise, so both labels always refer to the same type. The `config`\nextension sets the value from a `bazel_features` flag, which is `False`\nfor now, so nothing changes yet. WORKSPACE builds leave it unset, as\nBazel versions that forward the type no longer support WORKSPACE. This\nalso avoids requiring `bazel_features` in WORKSPACE builds.\n\nWork towards bazelbuild/bazel#32428\n\n---------\n\nCo-authored-by: Richard Levasseur \u003crichardlev@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "aa1f4eb8dc4320e3f61414fa25f9f01fa87feb82",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "75087fd4e6bba093c05d477e719c85c7084ac39c",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "e0e32c5d723d7ef6ac24dcf97d0e39c5c14e7dd5",
      "old_mode": 33188,
      "old_path": "python/BUILD.bazel",
      "new_id": "f824bb226ea7527f9edfa95528bd8690e06be4f2",
      "new_mode": 33188,
      "new_path": "python/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "f836574488994fa754e69900325926c7cd0010ef",
      "old_mode": 33188,
      "old_path": "python/extensions/config.bzl",
      "new_id": "ecfb55aa477337a10a86782d508ced72c621be5a",
      "new_mode": 33188,
      "new_path": "python/extensions/config.bzl"
    },
    {
      "type": "modify",
      "old_id": "dc0758efa58f5c52b1bd3acbb7224a35c89ab6e0",
      "old_mode": 33188,
      "old_path": "python/private/BUILD.bazel",
      "new_id": "b111df669b73653394a52bc1487d5513755d64b8",
      "new_mode": 33188,
      "new_path": "python/private/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "8f203bb89e0da98ad1d5759ab3fc40f107e1dea0",
      "old_mode": 33188,
      "old_path": "python/private/internal_config_repo.bzl",
      "new_id": "fef5caae420e2a7338e179bde2565195ad2c3d07",
      "new_mode": 33188,
      "new_path": "python/private/internal_config_repo.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4c9d2c9cfa6f1e795fdecc36751b654bd2230aba",
      "new_mode": 33188,
      "new_path": "python/private/python_toolchain_type.bzl"
    },
    {
      "type": "modify",
      "old_id": "a487d8e3e7500d5b9cd188723ed855f6ec7b54c3",
      "old_mode": 33188,
      "old_path": "tests/integration/bzlmod_lockfile/MODULE.bazel.lock",
      "new_id": "e8f38b0e6912d93c65e2cf0134a53125e8b31cd3",
      "new_mode": 33188,
      "new_path": "tests/integration/bzlmod_lockfile/MODULE.bazel.lock"
    }
  ]
}
