)]}'
{
  "commit": "291e676c24e5c3d1c7121f36cf365fc1f5a50bbd",
  "tree": "a3a310f750e7053a1a40f97d9ee15524f44cfc8e",
  "parents": [
    "4204bfb9345c6cdd235e8dd6951c70c69016400f"
  ],
  "author": {
    "name": "gfrankliu",
    "email": "17630355+gfrankliu@users.noreply.github.com",
    "time": "Sun Sep 27 19:40:28 2026 +0000"
  },
  "committer": {
    "name": "github-actions[bot]",
    "email": "41898282+github-actions[bot]@users.noreply.github.com",
    "time": "Sun Sep 27 20:22:34 2026 +0000"
  },
  "message": "fix(zipapp): reduce bundled interpreter size (#4165)\n\nBazel reports source symlinks as regular files, causing Python\nexecutable aliases to be copied into zipapps as full binaries. Hermetic\nruntimes also include shared libpython artifacts even when the\ninterpreter links Python statically.\n\nPreserve source symlinks through sandbox indirection and exclude\nlibpython shared objects from runtime files while retaining them for\nexplicit native dependencies. Add regression coverage for archive\nstructure and native extension loading.\n\nFixes #3534\nFixes #4163\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e\nCo-authored-by: Richard Levasseur \u003crichardlev@gmail.com\u003e\n(cherry picked from commit fd22cfff38697b2c10b3feff88ea55d6d57bed7f)\n\nWork towards #4175\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "013d33c686dba0de78485242dac52704dd78d0c0",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "fbef417739f49f6ce055992828c5035f060035ed",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "de495d51220c0f4603b156ed430c4d9a986fe7de",
      "old_mode": 33188,
      "old_path": "docs/toolchains.md",
      "new_id": "3ddce7b97e7d5cec6ee61fe9d918fb531c57b6ad",
      "new_mode": 33188,
      "new_path": "docs/toolchains.md"
    },
    {
      "type": "modify",
      "old_id": "b4ff84f14a302ebb27884d020182a1cb5d9f4396",
      "old_mode": 33188,
      "old_path": "python/private/BUILD.bazel",
      "new_id": "b88fb724a4f7801caef950c73fd9b0cf659f0340",
      "new_mode": 33188,
      "new_path": "python/private/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "20b032489473cef98f68118d01668bb2322c23c4",
      "old_mode": 33188,
      "old_path": "python/private/hermetic_runtime_repo_setup.bzl",
      "new_id": "d61a040fe66b31fdc6d457d07f3ef8b07b81d47f",
      "new_mode": 33188,
      "new_path": "python/private/hermetic_runtime_repo_setup.bzl"
    },
    {
      "type": "modify",
      "old_id": "86434dc0ea9e45e37a897a07c09ced31ef5f14b0",
      "old_mode": 33188,
      "old_path": "python/private/pbs_manifest.bzl",
      "new_id": "ad019df0a88eb5d4f59e30539b05d43428a2417d",
      "new_mode": 33188,
      "new_path": "python/private/pbs_manifest.bzl"
    },
    {
      "type": "modify",
      "old_id": "9fed9393aecdaabc78eadcc5bfe8f032bd753b6f",
      "old_mode": 33188,
      "old_path": "python/private/python.bzl",
      "new_id": "8256e1b856c4d5c2f1b73120b6de8bcb70471b0c",
      "new_mode": 33188,
      "new_path": "python/private/python.bzl"
    },
    {
      "type": "modify",
      "old_id": "c6f827be22d151ca5d6aff5ad93fa157e510f8ad",
      "old_mode": 33188,
      "old_path": "python/private/python_register_toolchains.bzl",
      "new_id": "770c6a6f3b2f5ec4f307b6ac963ba6ec5263f712",
      "new_mode": 33188,
      "new_path": "python/private/python_register_toolchains.bzl"
    },
    {
      "type": "modify",
      "old_id": "9c4497111738158694688cdc3ec946f5633464c8",
      "old_mode": 33188,
      "old_path": "python/private/python_repository.bzl",
      "new_id": "3fd0928a018e80f1fbda717b04f55e7d18fd4695",
      "new_mode": 33188,
      "new_path": "python/private/python_repository.bzl"
    },
    {
      "type": "modify",
      "old_id": "bd26d533a37293fbe1f9515e674f4f3b2f20074c",
      "old_mode": 33188,
      "old_path": "tests/py_zipapp/venv_zipapp_test.py",
      "new_id": "b906073fce6137b071e3ad70ded78f828221bee4",
      "new_mode": 33188,
      "new_path": "tests/py_zipapp/venv_zipapp_test.py"
    },
    {
      "type": "modify",
      "old_id": "ef7ccf034f628382c13c8ea2b84594c04663d5d1",
      "old_mode": 33188,
      "old_path": "tests/python/python_tests.bzl",
      "new_id": "22cd5c26b0d2cadd7f4b5a9b56c6373184af0249",
      "new_mode": 33188,
      "new_path": "tests/python/python_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "449357614747cf1fffb0e2fc7a6b8f710cb5b331",
      "old_mode": 33188,
      "old_path": "tests/python_bzlmod_ext/parse_runtime_manifest_tests.bzl",
      "new_id": "8c9176aeb2f9cc514c46565033dc2c2d0e3e7794",
      "new_mode": 33188,
      "new_path": "tests/python_bzlmod_ext/parse_runtime_manifest_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "4c68e87e50d593bed09640008330a53bbe7ea937",
      "old_mode": 33188,
      "old_path": "tests/support/mocks/python_ext.bzl",
      "new_id": "419afe8188154915addf0abc771be85388b60045",
      "new_mode": 33188,
      "new_path": "tests/support/mocks/python_ext.bzl"
    },
    {
      "type": "modify",
      "old_id": "e4f25c5e2185fa0580361ecd5c3fe6ae2fdb9250",
      "old_mode": 33188,
      "old_path": "tests/tools/zipapp/zipper_test.py",
      "new_id": "e0ff1557d5ee3dedd9512ce20dfbb9e1b56b1310",
      "new_mode": 33188,
      "new_path": "tests/tools/zipapp/zipper_test.py"
    },
    {
      "type": "modify",
      "old_id": "5a8eb8c6fdfa125dd456d7cb4854fee5988fd3d1",
      "old_mode": 33188,
      "old_path": "tools/zipapp/zipper.py",
      "new_id": "c0e547284af080351a3f9840b36fd7793369dace",
      "new_mode": 33188,
      "new_path": "tools/zipapp/zipper.py"
    }
  ]
}
