)]}'
{
  "commit": "f4596fbc31fc4f2e32ced9c414a6fd42d54a7ff8",
  "tree": "0413c843006cbfa2a3467011f20f407f6b718d88",
  "parents": [
    "30bd94d1904c4701e1d19486a7ebcae2d6625a27"
  ],
  "author": {
    "name": "Richard Levasseur",
    "email": "rlevasseur@google.com",
    "time": "Fri Sep 06 14:02:12 2024 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Sep 06 21:02:12 2024 +0000"
  },
  "message": "fix: allow disabling exec_tools toolchain from looking up an interpreter (#2194)\n\nThis allow the exec_interpreter attribute to propagate None even though\nit\u0027s a label\nwith a default value. Such attributes can\u0027t _directly_ be set to None\nbecause None\nmeans to use the default. To work around that, a sentinel target is\nused, which allows\nbreaking the dependency on the default and triggering the rule to use\nNone instead.\n\nA null exec interpreter is necessary in environments that don\u0027t provide\na separate Python\ninterpreter.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "252606c0fff3d34a1bbf35e4c44de86c530444fe",
      "old_mode": 33188,
      "old_path": "python/private/BUILD.bazel",
      "new_id": "7b913df2b31d761369db0b2991b452a33acf57dc",
      "new_mode": 33188,
      "new_path": "python/private/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "6fa4011e6b4e51967a76120d5a5d6b5d4d528e70",
      "old_mode": 33188,
      "old_path": "python/private/py_exec_tools_info.bzl",
      "new_id": "b74f480fab0d4965d8601803d784147689b86a00",
      "new_mode": 33188,
      "new_path": "python/private/py_exec_tools_info.bzl"
    },
    {
      "type": "modify",
      "old_id": "a4516d86eb2c1ebd42aef85051166457d54b1f22",
      "old_mode": 33188,
      "old_path": "python/private/py_exec_tools_toolchain.bzl",
      "new_id": "26c09ca5cffea42a147df55ce1a746505bc6fb31",
      "new_mode": 33188,
      "new_path": "python/private/py_exec_tools_toolchain.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6d753e19835612a133c811e9e3d56e7d0184e126",
      "new_mode": 33188,
      "new_path": "python/private/sentinel.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "092e79093988aa070b074af4bd4faed94c39d5c1",
      "new_mode": 33188,
      "new_path": "tests/py_exec_tools_toolchain/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3be2bc3f3013edc1ff2e19daafd3415232703273",
      "new_mode": 33188,
      "new_path": "tests/py_exec_tools_toolchain/py_exec_tools_toolchain_tests.bzl"
    }
  ]
}
