)]}'
{
  "commit": "fb06c86322fc46a230ee2758dbae75f1c5eba97e",
  "tree": "f6ea4a94128310471d17117fefa5c39f224d75a4",
  "parents": [
    "ecc339001eed1455a5ba2f85a6c31e7661f6e556"
  ],
  "author": {
    "name": "Richard Levasseur",
    "email": "richardlev@gmail.com",
    "time": "Tue Sep 30 22:50:03 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Oct 01 05:50:03 2025 +0000"
  },
  "message": "feat(toolchains): let local toolchains point to a label (#3304)\n\nCurrently, the local toolchain code requires using a path (or program\nname) to find\nthe Python interpreter. This comes up short when using Bazel to\ndownload an arbitrary runtime (or otherwise manage the creation of it,\ne.g.\ndownloading Python and building it from source in a repo rule). In such\ncases, the\nfile system location of the interpreter isn\u0027t known (it\u0027ll be in some\nBazel cache\ndirectory).\n\nTo fix, add the `interpreter_target` attribute to `local_runtime_repo`,\nwhich it\nlooks up the path for, then continues on as normal. As an example, the\ntest uses\na custom repository rule to download a particular version of Python\nappropriate\nto the OS.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ff2257a06b0ef6b5e34a9641c8f578878d079832",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "ed859d3feab0bc79dd7082bdbd7c81c28222b405",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "52e619a120d1c04fe3c05f5e432d1079f5e1e9f7",
      "old_mode": 33188,
      "old_path": "docs/toolchains.md",
      "new_id": "186ad11e730f4ef52b8c07bc1d29e93c04a545ba",
      "new_mode": 33188,
      "new_path": "docs/toolchains.md"
    },
    {
      "type": "modify",
      "old_id": "27c90b1bc9ed99cc38053d273ba33800f87259be",
      "old_mode": 33188,
      "old_path": "python/private/local_runtime_repo.bzl",
      "new_id": "583926b15fcee8d7a34a9d012a89957b0aebe82e",
      "new_mode": 33188,
      "new_path": "python/private/local_runtime_repo.bzl"
    },
    {
      "type": "modify",
      "old_id": "a0cb2b164d8c7fbfc0f71380345b52bf484bc216",
      "old_mode": 33188,
      "old_path": "tests/integration/local_toolchains/BUILD.bazel",
      "new_id": "bf473160275f69db88867231b7c84c37efd87019",
      "new_mode": 33188,
      "new_path": "tests/integration/local_toolchains/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "e81c012c2d82f034d9514f9c88ca3fcfc93c305b",
      "old_mode": 33188,
      "old_path": "tests/integration/local_toolchains/MODULE.bazel",
      "new_id": "6c821c5bb08b291c57f4d2e4b1da08bde7b6f585",
      "new_mode": 33188,
      "new_path": "tests/integration/local_toolchains/MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "480cd2794a2d120cd1f05499dbda854b8078ca70",
      "old_mode": 33188,
      "old_path": "tests/integration/local_toolchains/WORKSPACE",
      "new_id": "159f16deab91b68c3bfc232b6699a232ae897996",
      "new_mode": 33188,
      "new_path": "tests/integration/local_toolchains/WORKSPACE"
    },
    {
      "type": "rename",
      "old_id": "0a0d6bedeb1bd17a8975965387eabb166af36ee6",
      "old_mode": 33188,
      "old_path": "tests/integration/local_toolchains/test.py",
      "new_id": "0a0d6bedeb1bd17a8975965387eabb166af36ee6",
      "new_mode": 33188,
      "new_path": "tests/integration/local_toolchains/local_runtime_test.py",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8bd0c1eb104b67d69983f2666427c6f0264c9999",
      "new_mode": 33188,
      "new_path": "tests/integration/local_toolchains/pbs_archive.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4614407c4e06200e79f5fb2493bb97f145a6a648",
      "new_mode": 33188,
      "new_path": "tests/integration/local_toolchains/repo_runtime_test.py"
    }
  ]
}
