)]}'
{
  "commit": "99d0c3d187209a4d143790e6d4b706f15b2b294b",
  "tree": "42af641599f17050a7be0ff6ee5b8bcc532be03b",
  "parents": [
    "7053e26e858e703d27b2c32a09e09cfd2fdb8e48"
  ],
  "author": {
    "name": "Richard Levasseur",
    "email": "richardlev@gmail.com",
    "time": "Sat Jun 13 20:26:12 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Jun 14 03:26:12 2026 +0000"
  },
  "message": "refactor(toolchains): register runtimes using manifest (#3812)\n\nThis changes the list of runtimes that are registered to come from a\nfile instead of\nbeing logic within Starlark code.\n\nAlong the way...\n\n* Add replicate_ci program: a helper to run bazel with the same\n  settings as CI\n* Re-implement buildkite skills using bk command line,\n  which is faster and works better than the custom python program.\n* Add skill to monitor CI progress and analyze failures\n* Additional Bazel downloader config to better handle transient\n  network failures.\n* Support `#` comments in the manifest\n* Helpers to sort manifests and ensure they stay sorted and in sync.",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2019c5b5f9000db276a4be9c3d1b85f8cffb5d3e",
      "new_mode": 33188,
      "new_path": ".agents/skills/analyze-ci-failure/SKILL.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3b975acfb33bae37bcaa13a9765c95cdce09f4af",
      "new_mode": 33188,
      "new_path": ".agents/skills/analyze-ci-failure/scripts/analyze_ci_failure.py"
    },
    {
      "type": "modify",
      "old_id": "a2a936513e0863aa4bcd4362876e1fa19885f20d",
      "old_mode": 33188,
      "old_path": ".agents/skills/buildkite-get-results/SKILL.md",
      "new_id": "801e51c02d08f7bd312932bd15245085a01d43b0",
      "new_mode": 33188,
      "new_path": ".agents/skills/buildkite-get-results/SKILL.md"
    },
    {
      "type": "modify",
      "old_id": "06117fbd7caa7484caebef9009e91e2b4b97989b",
      "old_mode": 33261,
      "old_path": ".agents/skills/buildkite-get-results/scripts/get_buildkite_results.py",
      "new_id": "1af829a8e6ccfef65bcff4c1b60b2800ba7e8039",
      "new_mode": 33261,
      "new_path": ".agents/skills/buildkite-get-results/scripts/get_buildkite_results.py"
    },
    {
      "type": "modify",
      "old_id": "e8e3bcd491a98905861f6dfa31937d635b49691c",
      "old_mode": 33188,
      "old_path": ".agents/skills/buildkite-retry-job/SKILL.md",
      "new_id": "3f43846da9f51bb5d52da822547a87b314d9fa7b",
      "new_mode": 33188,
      "new_path": ".agents/skills/buildkite-retry-job/SKILL.md"
    },
    {
      "type": "modify",
      "old_id": "67385fb8fd20a82b2b55eb8fc7f983a7ead27501",
      "old_mode": 33261,
      "old_path": ".agents/skills/buildkite-retry-job/scripts/retry_buildkite_jobs.py",
      "new_id": "d501ce8f1422084ed00a1290f027fe5a3841f478",
      "new_mode": 33261,
      "new_path": ".agents/skills/buildkite-retry-job/scripts/retry_buildkite_jobs.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8f6429d7cef9994b5b7fe1ab3890f16400d357da",
      "new_mode": 33188,
      "new_path": ".agents/skills/monitor-ci-results/SKILL.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fc1f8955d3f258c4abfa82973ef909e67384ea08",
      "new_mode": 33261,
      "new_path": ".agents/skills/monitor-ci-results/scripts/monitor_remote_ci.py"
    },
    {
      "type": "modify",
      "old_id": "8f784e4c2b247b31672e02ad5db102e000433460",
      "old_mode": 33188,
      "old_path": ".bazelrc",
      "new_id": "044990fdb1bd0883a068c4873f0b5aa240076239",
      "new_mode": 33188,
      "new_path": ".bazelrc"
    },
    {
      "type": "modify",
      "old_id": "9905cbfacb95b88401f01aea12c71b72e64a1e5a",
      "old_mode": 33188,
      "old_path": ".gitattributes",
      "new_id": "fafafd001bc906825d662f1c00aa1c556b2e491d",
      "new_mode": 33188,
      "new_path": ".gitattributes"
    },
    {
      "type": "modify",
      "old_id": "cada605a2685c5d398b30d2729ad44c4c8806cf5",
      "old_mode": 33188,
      "old_path": ".pre-commit-config.yaml",
      "new_id": "e4d65c8bb62aa751075ddb4b51f1be6793075275",
      "new_mode": 33188,
      "new_path": ".pre-commit-config.yaml"
    },
    {
      "type": "modify",
      "old_id": "4e1e88aeac8c562e6a387457bf90b27d4f964119",
      "old_mode": 33188,
      "old_path": "AGENTS.md",
      "new_id": "e6e1733c1d664adb0cec01648bffc8bff8ed5030",
      "new_mode": 33188,
      "new_path": "AGENTS.md"
    },
    {
      "type": "modify",
      "old_id": "978464f9dbff12e154159aecb1fa180aebffd2be",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "0fa832e8fc20c5e4ae237358968fa97d0d58c7b3",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "a978fb89b903e9052938983d54883b30e2df67e8",
      "old_mode": 33188,
      "old_path": "downloader_config.cfg",
      "new_id": "3fa6264eda269aacdcc4a424a57ffd1354f2b884",
      "new_mode": 33188,
      "new_path": "downloader_config.cfg"
    },
    {
      "type": "modify",
      "old_id": "bdb29d5bc3c21dbb3df4a42c281d408714eaf31c",
      "old_mode": 33188,
      "old_path": "gazelle/.bazelrc",
      "new_id": "e30216814a55a43745bba156942ed2a1a21dbfda",
      "new_mode": 33188,
      "new_path": "gazelle/.bazelrc"
    },
    {
      "type": "modify",
      "old_id": "a978fb89b903e9052938983d54883b30e2df67e8",
      "old_mode": 33188,
      "old_path": "gazelle/downloader_config.cfg",
      "new_id": "3fa6264eda269aacdcc4a424a57ffd1354f2b884",
      "new_mode": 33188,
      "new_path": "gazelle/downloader_config.cfg"
    },
    {
      "type": "modify",
      "old_id": "50277ad4ad312ac31c34761cd2f5b13a00eeaeaf",
      "old_mode": 33188,
      "old_path": "internal_dev_deps.bzl",
      "new_id": "7ab47172363a6ab1d5b8400fcb96540a9c069ed4",
      "new_mode": 33188,
      "new_path": "internal_dev_deps.bzl"
    },
    {
      "type": "modify",
      "old_id": "90b2225ab55913cba1c9179447898de06d62fb0f",
      "old_mode": 33188,
      "old_path": "python/BUILD.bazel",
      "new_id": "e940e9e94b155ba36176fdc90f7d937c7c99d4d4",
      "new_mode": 33188,
      "new_path": "python/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "b54c198069ceae230535bb5cc52ce4dbe2406afa",
      "old_mode": 33188,
      "old_path": "python/private/BUILD.bazel",
      "new_id": "e4b38c2d1da13bd23812d4153bcd63c912ab0d94",
      "new_mode": 33188,
      "new_path": "python/private/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "aea1eee773197ce42915466641cd8a2fa21b78ca",
      "old_mode": 33188,
      "old_path": "python/private/internal_config_repo.bzl",
      "new_id": "72970cf1009755096b32205fa0aa8ac394c5a700",
      "new_mode": 33188,
      "new_path": "python/private/internal_config_repo.bzl"
    },
    {
      "type": "modify",
      "old_id": "e343a802b302afab49d6af76a3e83b6101c31ff3",
      "old_mode": 33188,
      "old_path": "python/private/pbs_manifest.bzl",
      "new_id": "86434dc0ea9e45e37a897a07c09ced31ef5f14b0",
      "new_mode": 33188,
      "new_path": "python/private/pbs_manifest.bzl"
    },
    {
      "type": "delete",
      "old_id": "b4fa400221c5665725114362a3d5ed4692b09d19",
      "old_mode": 33188,
      "old_path": "python/private/print_toolchain_checksums.bzl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "73b2d19839fe9bc421f8869d6f3d99ca0ece475f",
      "old_mode": 33188,
      "old_path": "python/private/python.bzl",
      "new_id": "ac8d1111fb4d82530e1c39aa06c371e427b23ec3",
      "new_mode": 33188,
      "new_path": "python/private/python.bzl"
    },
    {
      "type": "modify",
      "old_id": "3b92902c7e4cc434b866ad83798b2f3791452500",
      "old_mode": 33188,
      "old_path": "python/private/python_register_toolchains.bzl",
      "new_id": "5a2f96857b82c0a20b83a9f87df19c2dbd1d1764",
      "new_mode": 33188,
      "new_path": "python/private/python_register_toolchains.bzl"
    },
    {
      "type": "modify",
      "old_id": "cc25b4ba1d4e572eab67b5deb16a4199e7bb8a93",
      "old_mode": 33188,
      "old_path": "python/private/pythons_hub.bzl",
      "new_id": "173c811da677ee47ecab205dd25d41994e835012",
      "new_mode": 33188,
      "new_path": "python/private/pythons_hub.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "df02a3049cf8f6e3adced0eb0109ecb6199e8294",
      "new_mode": 33261,
      "new_path": "python/private/runtimes_manifest.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c2da00ac46dcca8f4ef29b56649a96848e19e7d8",
      "new_mode": 33188,
      "new_path": "python/private/runtimes_manifest_workspace.bzl"
    },
    {
      "type": "modify",
      "old_id": "eaccadf970bb26857f2280fd6f7079aa91ef638d",
      "old_mode": 33188,
      "old_path": "python/private/text_util.bzl",
      "new_id": "f72519597897beed5839de6bed640e8295a6a17d",
      "new_mode": 33188,
      "new_path": "python/private/text_util.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "41bf4181e527448969304e00f097e0e1776aed39",
      "new_mode": 33261,
      "new_path": "python/private/tools/sort_manifest.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "450358542a1183e760e68904d39b7b855dc9764d",
      "new_mode": 33261,
      "new_path": "python/private/tools/sync_runtimes_manifest_workspace.py"
    },
    {
      "type": "modify",
      "old_id": "ed819e6b345ea860bbec4a6d512468fb5531763e",
      "old_mode": 33188,
      "old_path": "python/versions.bzl",
      "new_id": "6e3efb34d6da7c4710f59da051982c3c391849e4",
      "new_mode": 33188,
      "new_path": "python/versions.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dd9b67e93e9726faec8a4d0c6dfe5c4273ae9a7f",
      "new_mode": 33261,
      "new_path": "replicate_ci"
    },
    {
      "type": "modify",
      "old_id": "acff835394f142f7d3e6c306084c753130762844",
      "old_mode": 33188,
      "old_path": "sphinxdocs/.bazelrc",
      "new_id": "65c996c678730d972e2bba659c678bce7a60fdc9",
      "new_mode": 33188,
      "new_path": "sphinxdocs/.bazelrc"
    },
    {
      "type": "modify",
      "old_id": "a978fb89b903e9052938983d54883b30e2df67e8",
      "old_mode": 33188,
      "old_path": "sphinxdocs/downloader_config.cfg",
      "new_id": "3fa6264eda269aacdcc4a424a57ffd1354f2b884",
      "new_mode": 33188,
      "new_path": "sphinxdocs/downloader_config.cfg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bdc99a290cfe796fbc9fa00c36078f5d3a73f154",
      "new_mode": 33188,
      "new_path": "tests/docs/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "c810489c924d4e8668c711dd73c87fa19ca80f1d",
      "old_mode": 33188,
      "old_path": "tests/get_release_info/get_release_info_tests.bzl",
      "new_id": "0b1b60adc354f99d5497753a956deff5bb09f282",
      "new_mode": 33188,
      "new_path": "tests/get_release_info/get_release_info_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "d21fec2d7dad1aeab07f57a7bc26430fc7cec724",
      "old_mode": 33188,
      "old_path": "tests/integration/bzlmod_lockfile/MODULE.bazel.lock",
      "new_id": "2a0bc7d76bd4e26e4130a29f818c567985083294",
      "new_mode": 33188,
      "new_path": "tests/integration/bzlmod_lockfile/MODULE.bazel.lock"
    },
    {
      "type": "modify",
      "old_id": "cd7383942c0ff0c0080b6e135b7c92ab4eeaa6d9",
      "old_mode": 33188,
      "old_path": "tests/python/python_tests.bzl",
      "new_id": "cbef5637fdc9277ce12e94c537fd3cb08a2a3768",
      "new_mode": 33188,
      "new_path": "tests/python/python_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "0add4e7690dff30570da0bd6379ca35c3bcd447c",
      "old_mode": 33188,
      "old_path": "tests/python_bzlmod_ext/BUILD.bazel",
      "new_id": "e266c01b9ca6341aa1ce5c88e689ef6b23054efb",
      "new_mode": 33188,
      "new_path": "tests/python_bzlmod_ext/BUILD.bazel"
    },
    {
      "type": "rename",
      "old_id": "4ddcdcc46e96afb6c8666c0d5f551934db61cf26",
      "old_mode": 33188,
      "old_path": "tests/python_bzlmod_ext/parse_sha_manifest_tests.bzl",
      "new_id": "449357614747cf1fffb0e2fc7a6b8f710cb5b331",
      "new_mode": 33188,
      "new_path": "tests/python_bzlmod_ext/parse_runtime_manifest_tests.bzl",
      "score": 91
    },
    {
      "type": "modify",
      "old_id": "c46cab1958d54337af10b201234b877c37a1728b",
      "old_mode": 33188,
      "old_path": "tests/python_bzlmod_ext/runtime_manifests_tests.bzl",
      "new_id": "6de0ff93c2d39555af59d9d390dc75c00be86a36",
      "new_mode": 33188,
      "new_path": "tests/python_bzlmod_ext/runtime_manifests_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "f6c177650a19c000ed44b02b7c37cd67e60f7068",
      "old_mode": 33188,
      "old_path": "tests/python_bzlmod_ext/test_helpers.bzl",
      "new_id": "78ad57c110e392a4eac15e03fc66571d83121b2a",
      "new_mode": 33188,
      "new_path": "tests/python_bzlmod_ext/test_helpers.bzl"
    },
    {
      "type": "modify",
      "old_id": "48f8f95830f9554f34d79e9fd81bac6bda474b84",
      "old_mode": 33188,
      "old_path": "tests/support/mocks/mocks.bzl",
      "new_id": "84d39fa6e2db672f8fc05ed2eb0b3d7701395400",
      "new_mode": 33188,
      "new_path": "tests/support/mocks/mocks.bzl"
    },
    {
      "type": "modify",
      "old_id": "f7b5b0ee02538d0f4a2caf665ef039743816166a",
      "old_mode": 33188,
      "old_path": "tests/support/mocks/python_ext.bzl",
      "new_id": "dc3ac41f8d44556a07302e516f5c32431812c0c2",
      "new_mode": 33188,
      "new_path": "tests/support/mocks/python_ext.bzl"
    },
    {
      "type": "modify",
      "old_id": "f32ab6f056e93aec33ad850c1435603a391e774b",
      "old_mode": 33188,
      "old_path": "tests/toolchains/BUILD.bazel",
      "new_id": "b336a0626912dfa9f839c79bb48f16a2c1aeb105",
      "new_mode": 33188,
      "new_path": "tests/toolchains/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "0cd79b373be5e8a869d20d813ea17f9171b26ea4",
      "old_mode": 33188,
      "old_path": "tests/toolchains/transitions/transitions_tests.bzl",
      "new_id": "81ce1e68cc810d114879b63186f260e869f7cf5d",
      "new_mode": 33188,
      "new_path": "tests/toolchains/transitions/transitions_tests.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7e8527b989b05dd2be5117b34168158442a944e1",
      "new_mode": 33261,
      "new_path": "tools/private/sync_downloader_configs.py"
    }
  ]
}
