)]}'
{
  "commit": "674ce0745dea93e54865d9cfb846510b30475969",
  "tree": "867ce1831a733b8724ab36d7e4a61f74e8d75b98",
  "parents": [
    "9699f18468276ce80fdb3c4e0125dd0c08fdbd65"
  ],
  "author": {
    "name": "Spencer Putt",
    "email": "sputt@alumni.iu.edu",
    "time": "Fri Oct 30 08:27:39 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Oct 30 08:27:39 2026 +0000"
  },
  "message": "fix: don\u0027t materialize rules_python when reading the artifacts manifest (#4370)\n\nThe `config` extension reads `artifacts_manifest.json` with\n`mctx.read(Label(...))`, so with\n`--experimental_remote_repo_contents_cache` every consumer still\nmaterializes the whole `@rules_python` repo. This is the remaining gap\nafter #4294.\n\nFollowing #4294, the manifest becomes\n`python/private/artifacts_manifest.bzl`, whose `ARTIFACTS_MANIFEST_JSON`\nstring the extension loads. It stays empty in git, so source checkouts\nbuild the tools from source. The release generator now writes this\n`.bzl` file, and the archive script bundles it in place of the empty\none. `configure_tool_toolchains` no longer needs `module_ctx`, and tests\npass their manifest JSON directly.\n\n---------\n\nCo-authored-by: Spencer Putt \u003csputt@sputt-macbook-pro.local\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2dc9b22a8b150ec0aded0c5fbcc72f5ffcc0ba57",
      "old_mode": 33261,
      "old_path": ".github/workflows/create_archive_and_notes.sh",
      "new_id": "df9c04ea303a9173bdd321c6266ea046c15e3fb2",
      "new_mode": 33261,
      "new_path": ".github/workflows/create_archive_and_notes.sh"
    },
    {
      "type": "modify",
      "old_id": "bbab6c6d85676ea24ed3442839f290cb0e859d93",
      "old_mode": 33188,
      "old_path": ".github/workflows/release_build_artifacts.yaml",
      "new_id": "aa73b079a5cf5e29a62fd38b9ccb8ff643bf944e",
      "new_mode": 33188,
      "new_path": ".github/workflows/release_build_artifacts.yaml"
    },
    {
      "type": "modify",
      "old_id": "99aab4d938a26f1909c44c57a0f42f5ef8bd7197",
      "old_mode": 33261,
      "old_path": "dev/release_artifacts/generate_artifacts_manifest.py",
      "new_id": "30b5b4bb8096348b0b282aa87e62282404b2124e",
      "new_mode": 33261,
      "new_path": "dev/release_artifacts/generate_artifacts_manifest.py"
    },
    {
      "type": "modify",
      "old_id": "63d0a6eefb9a19c4fb844aa873468dfb94ae4d57",
      "old_mode": 33188,
      "old_path": "python/extensions/config.bzl",
      "new_id": "f836574488994fa754e69900325926c7cd0010ef",
      "new_mode": 33188,
      "new_path": "python/extensions/config.bzl"
    },
    {
      "type": "modify",
      "old_id": "075b77b05d7341f19bd6eec1697d98bcf9346959",
      "old_mode": 33188,
      "old_path": "python/private/BUILD.bazel",
      "new_id": "74013a5d2b1072ea2309e7dea13236203ffe7346",
      "new_mode": 33188,
      "new_path": "python/private/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "13958b01e277e79d61c16bf18e389fad09d53cc5",
      "new_mode": 33188,
      "new_path": "python/private/artifacts_manifest.bzl"
    },
    {
      "type": "delete",
      "old_id": "0416886e31e085b5d82e496a12c8ae56d92fdb06",
      "old_mode": 33188,
      "old_path": "python/private/artifacts_manifest.json",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "3587baab5d62aef740b35a82bfda35f06f03e202",
      "old_mode": 33188,
      "old_path": "python/private/toolchains/BUILD.bazel",
      "new_id": "7ca7aaf8992b7d8a596828ba87620ecdff8f3102",
      "new_mode": 33188,
      "new_path": "python/private/toolchains/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "05bc5c1cbe0e62a9a5dbc2cf0de7b1f745d910a7",
      "old_mode": 33188,
      "old_path": "python/private/toolchains/repo.bzl",
      "new_id": "af2fac9d5e75d0ff06ad4cc3814bb52e0d023212",
      "new_mode": 33188,
      "new_path": "python/private/toolchains/repo.bzl"
    },
    {
      "type": "modify",
      "old_id": "ed235fb7f477b692965672f1c41defd4907c9b2e",
      "old_mode": 33188,
      "old_path": "tests/exe_zip_maker_toolchain/exe_zip_maker_toolchain_tests.bzl",
      "new_id": "1e7fd193e3e20d2a752a0f84bd0e1389f66a5683",
      "new_mode": 33188,
      "new_path": "tests/exe_zip_maker_toolchain/exe_zip_maker_toolchain_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "ab12a9c3a68b07de13293536fc7ed1bbc55d3947",
      "old_mode": 33188,
      "old_path": "tests/integration/prebuilt_toolchain_test.py",
      "new_id": "28f31db5c7d23fb91d646702dd8f52829199e604",
      "new_mode": 33188,
      "new_path": "tests/integration/prebuilt_toolchain_test.py"
    },
    {
      "type": "modify",
      "old_id": "b7c721e48793873aa867edf8632125b728f52ef7",
      "old_mode": 33188,
      "old_path": "tests/support/mocks/mocks.bzl",
      "new_id": "addf05abce690a8c2df86143ef18cf7616ddf0c2",
      "new_mode": 33188,
      "new_path": "tests/support/mocks/mocks.bzl"
    },
    {
      "type": "modify",
      "old_id": "f81164590fb38c472ac339cfe1549ae1cba8362a",
      "old_mode": 33188,
      "old_path": "tests/workflows/release_artifacts_test.py",
      "new_id": "c503d7aa3bf4cbc561dd80c582f26e323292dbdd",
      "new_mode": 33188,
      "new_path": "tests/workflows/release_artifacts_test.py"
    },
    {
      "type": "modify",
      "old_id": "11232dc739d50aa33c18ca0b17ce55c59f292bfa",
      "old_mode": 33188,
      "old_path": "tests/workflows/release_build_artifacts_test.py",
      "new_id": "9262d499c29206198a773e6fdf7b4824c0ebf16e",
      "new_mode": 33188,
      "new_path": "tests/workflows/release_build_artifacts_test.py"
    }
  ]
}
