)]}'
{
  "commit": "ae0aeff673c89fbd6340cd0823d0325511aea40f",
  "tree": "c5c29bee2af214038db0d68d6b45e9be9033f020",
  "parents": [
    "3367f82e9174edccbb093d2c3159ad6c16faf583"
  ],
  "author": {
    "name": "Ignas Anikevicius",
    "email": "240938+aignas@users.noreply.github.com",
    "time": "Mon Nov 04 09:43:35 2024 +0900"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Nov 04 00:43:35 2024 +0000"
  },
  "message": "fix(pypi): use local version specifiers for patched whl output (#2365)\n\nBefore this change the installation of the patched wheels using `uv` or\nsimilar would break. This change fixes that by using local version\nspecifier, which is better than using a build tag when installing the\nwheels.\n\nBefore the change:\n```console\n$ cd examples/bzlmod\n$ bazel build @pip//requests:whl\n$ uv pip install \u003cpath to requests wheel in the example\u003e\nerror: The wheel filename \"requests-2.25.1-patched-py2.py3-none-any.whl\" has an invalid build tag: must start with a digit\n```\n\nAfter:\n```\n$ uv pip install \u003cpath to requests wheel in the example\u003e\nResolved 5 packages in 288ms\nPrepared 5 packages in 152ms\nInstalled 5 packages in 13ms\n + certifi\u003d\u003d2024.8.30\n + chardet\u003d\u003d4.0.0\n + idna\u003d\u003d2.10\n + requests\u003d\u003d2.25.1+patched (from file:///home/aignas/src/github/aignas/rules_python/examples/bzlmod/bazel-bzlmod/external/rules_python~~pip~pip_39_requests_py2_none_any_c210084e/requests-2.25.1+patched-py2.py3-none-any.whl)\n + urllib3\u003d\u003d1.26.20\n```",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "95d1dc8530d621e1b9f9d5753cc4819c251ce653",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "f21f9bb3cc8b8afe9695c8f933b8381cf075f616",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "6e7d780a267c876d1cfe387f229f867e8f12f76b",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/MODULE.bazel.lock",
      "new_id": "d34f4ecb738d2782f47ff5e20dd31a6c025a4794",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/MODULE.bazel.lock"
    },
    {
      "type": "modify",
      "old_id": "74cd890bad62d2a1ee3dd460a4b4100e0be72de4",
      "old_mode": 33188,
      "old_path": "python/private/pypi/patch_whl.bzl",
      "new_id": "a7da22432168c2012543c0daf11aea78333e455a",
      "new_mode": 33188,
      "new_path": "python/private/pypi/patch_whl.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d6c4f47b362f80b3e41e08609aa30874fda08789",
      "new_mode": 33188,
      "new_path": "tests/pypi/patch_whl/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f93fe459c98590e12b7edc5b0914789c2033cd1c",
      "new_mode": 33188,
      "new_path": "tests/pypi/patch_whl/patch_whl_tests.bzl"
    }
  ]
}
