)]}'
{
  "commit": "aa602298a8bc2945ebf42d0820ec30bc974c9216",
  "tree": "970d264b54fb85436a4d41f4913d150f1f1100b8",
  "parents": [
    "004be45d2bf9924fc6805445d34885b0e1d6283d"
  ],
  "author": {
    "name": "Jaemin Choi",
    "email": "1dotolee@gmail.com",
    "time": "Mon Jul 21 23:01:30 2025 +0900"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jul 21 14:01:30 2025 +0000"
  },
  "message": "fix(pypi): expose pypi packages only common to all python versions (#3107)\n\nCloses #2921\n\nFor a single pypi repo with multiple python versions, `all_requirements`\nfail when a pypi package supports Python version A but not version B. In\nthis case, the pypi package would be included only in requirements lock\nfile for version A, not in one for version B. However, the failure\noccurs since the package is included in `all_requirements` even for\nPython version B.\n(Minimal reproduction:\nhttps://github.com/dotoleeoak/rules-python-2921-repro)\n\nThis happens since `packages` parameter for `hub_repository` targets are\nincluding all packages across all requirement lock files. Instead of\nunion of packages, intersection of packages for requirement files should\nbe passed to `packages` and exposed to `all_requirements` macro, so that\nthose packages are compatible with all Python versions.\n\n---------\n\nCo-authored-by: Ignas Anikevicius \u003c240938+aignas@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d54d3a888114397f601b63ff519ce14f379edcf6",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "74a4409cbb99b1260b9807f852ad8626be142cfe",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "2c1528e18d15c05e56a09e4661d2911ba69dd5a6",
      "old_mode": 33188,
      "old_path": "python/private/pypi/extension.bzl",
      "new_id": "096256e4be5d95b9e5cc2eea89571964892fbb12",
      "new_mode": 33188,
      "new_path": "python/private/pypi/extension.bzl"
    },
    {
      "type": "modify",
      "old_id": "0303843e80baf9f1084ac230acbc2e09951c8e39",
      "old_mode": 33188,
      "old_path": "tests/pypi/extension/extension_tests.bzl",
      "new_id": "52e0e29cb0e8b420d4f9501c30bdb11c508d81b4",
      "new_mode": 33188,
      "new_path": "tests/pypi/extension/extension_tests.bzl"
    }
  ]
}
