)]}'
{
  "commit": "804d7310560749bd703b66f0e947e89497ba8052",
  "tree": "4169f24ca4dea661d2d9b7fde906bfcb32533eb7",
  "parents": [
    "acc3e756a6a7bcb07bb84b4ae12d98c0a6f5d74d"
  ],
  "author": {
    "name": "Richard Levasseur",
    "email": "richardlev@gmail.com",
    "time": "Thu Oct 08 06:41:18 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Oct 08 06:41:18 2026 +0000"
  },
  "message": "refactor(zipapp): add dev-only toolchain for the Rust exe_zip_maker (#4215)\n\nPR #4151 added a Rust implementation of `exe_zip_maker`, but nothing\nused\nit. This wires it in as dev-only, from-source toolchain so it can be\nused and tested. For now, usage is gated by a private flag.\n\nA new optional toolchain type,\n`//python/private/toolchain_types:exe_zip_maker`, is consulted by the\n`py_zipapp_*` rules. If not found, the Python based tool is used.\n\nAnalysis tests verify the Rust tool is selected when the flag is on and\nthe Python fallback is used when off.\n\nWork towards https://github.com/bazel-contrib/rules_python/issues/4216",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3ce0c806323a7734a687f82c8cb4128d55c4ed52",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "18a51969521788fe2d515ec418128b38a3f6e854",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b713295f994f072a920a533fc654be39ff319e2d",
      "new_mode": 33188,
      "new_path": "dev/dev_only_toolchains/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "881dd74314df682f132ec8fcdffdfc6aa15718bd",
      "new_mode": 33188,
      "new_path": "dev/dev_only_toolchains/impls/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "62742d334cbbddabc9153f507e53efeb64afd9e6",
      "old_mode": 33188,
      "old_path": "python/private/py_executable.bzl",
      "new_id": "29500f9ad2b04b7712dd382f1e22aa28982b0f5a",
      "new_mode": 33188,
      "new_path": "python/private/py_executable.bzl"
    },
    {
      "type": "modify",
      "old_id": "a3a52409a6135bbc806cbeb79841bb49c67368a9",
      "old_mode": 33188,
      "old_path": "python/private/toolchain_types.bzl",
      "new_id": "a4e51248f1b965ef521f487991e450390f8eff89",
      "new_mode": 33188,
      "new_path": "python/private/toolchain_types.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b223730374ddac2b32a1c7ccf6b7e3c8eb06aa98",
      "new_mode": 33188,
      "new_path": "python/private/toolchain_types/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "395e1d242ac88f6982fd3427a705c5aacf0252c5",
      "old_mode": 33188,
      "old_path": "python/private/zipapp/BUILD.bazel",
      "new_id": "6da278a504be62c3c35f74c2664619f77eecdb7a",
      "new_mode": 33188,
      "new_path": "python/private/zipapp/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fb8efe9b90740be47b64fc1e8a8613ba34d3340b",
      "new_mode": 33188,
      "new_path": "python/private/zipapp/py_exe_zip_maker_toolchain.bzl"
    },
    {
      "type": "modify",
      "old_id": "b664c1f62805568282d07eb42526d37a0a138d31",
      "old_mode": 33188,
      "old_path": "python/private/zipapp/py_zipapp_rule.bzl",
      "new_id": "ebf083c06940b3c62cb2ba0ed9404022f9ce6a89",
      "new_mode": 33188,
      "new_path": "python/private/zipapp/py_zipapp_rule.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "57f2b55b6f25db08d2f5e7d371f648b960711f0b",
      "new_mode": 33188,
      "new_path": "tests/exe_zip_maker_toolchain/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bcf019bfa9cf1bce4dfd632e4e164bcc9d36a036",
      "new_mode": 33188,
      "new_path": "tests/exe_zip_maker_toolchain/exe_zip_maker_toolchain_tests.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "11b15b1a4584b08fa423a57964bdbf018b0da0d5",
      "new_mode": 33188,
      "new_path": "tests/exe_zip_maker_toolchain/main.py"
    }
  ]
}
