)]}'
{
  "commit": "4cb8412dbb5d2df5b91d3e3102d210be6d8b8d6f",
  "tree": "d0cbb98e17290d5e77bdfe93d67bb0f60750fe06",
  "parents": [
    "52712b9279d2ab77e33ad43a65eba546bbd17ef3"
  ],
  "author": {
    "name": "Ignas Anikevicius",
    "email": "240938+aignas@users.noreply.github.com",
    "time": "Tue Mar 11 16:41:16 2025 +0900"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Mar 11 07:41:16 2025 +0000"
  },
  "message": "feat(uv): parse the dist-manifest.json to not hardcode sha256 in rules_python (#2578)\n\nFinalize the `uv` extension interface employing a builder pattern so\nthat the users can specify the exact version that needs to be\nregistered.\nThis also moves the registration of the actual toolchain to\n`rules_python`\nitself and ensures that an incompatible noop toolchain is registered if\nnothing is configured. This ensures that the\n`register_toolchains(\"@uv//:all\")`\nnever fails.\n\nIf the `url/sha256` values are not specified, this is falling back to\nusing the `dist-manifest.json` on the GH releases page so that\nwe can get the expected `sha256` value of each available file and\ndownload all of the usable archives. This means that `rules_python` no\nlonger needs to be updated for `uv` version bumps.\n\nThe remaining bits for closing the ticket:\n- [ ] Finalize the `lock` interface.\n- [ ] Add the locking target to the `pip.parse` hub repo if\n`pyproject.toml`\n    is passed in.\n- [ ] Add a rule/target for `venv` creation.\n\nWork towards #1975.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d7ae4bf0a7a689fbf73c2de092543d2a98e38f5f",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "413442eb99c7c1e9018c1bcc4a0bdb0e2c187365",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "3d7c3042a53af74163385fd71f2ba8c67089edf6",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "dc2193cec21335ce16d1a1414b2713894cc40b2f",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "eaed078d6359935ce5cc2670638d93346480f03c",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/MODULE.bazel",
      "new_id": "69e384e42b5c9b481b410709644968406600837f",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "006c856d022a27bb39b1ae8902d88815140a9215",
      "old_mode": 33188,
      "old_path": "python/uv/private/BUILD.bazel",
      "new_id": "acf2a9c1f727fdd670c93cfed07755661176f2a3",
      "new_mode": 33188,
      "new_path": "python/uv/private/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "e0491b282c2a66783848d5c026c3ffaa4a34c5b4",
      "old_mode": 33188,
      "old_path": "python/uv/private/lock.bzl",
      "new_id": "9378f180db9220e9f4ebf3164c40f095bfc10d5f",
      "new_mode": 33188,
      "new_path": "python/uv/private/lock.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b39d84f0c2dcc2f52c9305e87a50409cf63dff40",
      "new_mode": 33188,
      "new_path": "python/uv/private/toolchains_hub.bzl"
    },
    {
      "type": "modify",
      "old_id": "886e7fe748eb834234e9a5c097da6328d9d717a9",
      "old_mode": 33188,
      "old_path": "python/uv/private/uv.bzl",
      "new_id": "55a05be03231d5f8812d70706534c494954639f9",
      "new_mode": 33188,
      "new_path": "python/uv/private/uv.bzl"
    },
    {
      "type": "delete",
      "old_id": "24fb9c24477937428bc1593574407c7529e30102",
      "old_mode": 33188,
      "old_path": "python/uv/private/uv_repositories.bzl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ba7d2a766cd034af297679e4534dc954c3401526",
      "new_mode": 33188,
      "new_path": "python/uv/private/uv_repository.bzl"
    },
    {
      "type": "modify",
      "old_id": "3b51f5f533db10e694daac94578558f290066556",
      "old_mode": 33188,
      "old_path": "python/uv/private/uv_toolchain.bzl",
      "new_id": "b740fc304dfe06af14cacd7f25f278ea4480c4f5",
      "new_mode": 33188,
      "new_path": "python/uv/private/uv_toolchain.bzl"
    },
    {
      "type": "modify",
      "old_id": "ac1ef310ea1019d89bd3f3b5b98ec752022b48e4",
      "old_mode": 33188,
      "old_path": "python/uv/private/uv_toolchain_info.bzl",
      "new_id": "5d70766e7f0b0bca8db9bb03500693cf7ad3a533",
      "new_mode": 33188,
      "new_path": "python/uv/private/uv_toolchain_info.bzl"
    },
    {
      "type": "modify",
      "old_id": "9a8858f1b0f7ed2ce58140f84a23ce59c9e654f3",
      "old_mode": 33188,
      "old_path": "python/uv/private/uv_toolchains_repo.bzl",
      "new_id": "7e11e0adb6b33586e207bcf22863efe8ad0d5d96",
      "new_mode": 33188,
      "new_path": "python/uv/private/uv_toolchains_repo.bzl"
    },
    {
      "type": "delete",
      "old_id": "1d68302c742148652a7628b7db796393630ceaa6",
      "old_mode": 33188,
      "old_path": "python/uv/private/versions.bzl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "tests/uv/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e1535ab5d8aa9ab3b1433cada74c75ad31d61b55",
      "new_mode": 33188,
      "new_path": "tests/uv/uv/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bf0deefa888260426eebd7c0e4a58689455f01de",
      "new_mode": 33188,
      "new_path": "tests/uv/uv/uv_tests.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4e2a12dcae944ef6751e1294fc9c6d4119f44c0b",
      "new_mode": 33188,
      "new_path": "tests/uv/uv_toolchains/BUILD.bazel"
    }
  ]
}
