)]}'
{
  "commit": "36e59d54f374da3e3f6c75cbd372b215fde76e7d",
  "tree": "4cab1df4b6d22377e169f514d4754ce07b20c1c3",
  "parents": [
    "ca69bd81c66cae53f30ea24eb1aff664ba2bec9d"
  ],
  "author": {
    "name": "James Sharpe",
    "email": "mail@jsharpe.net",
    "time": "Wed Feb 11 00:32:38 2026 +0000"
  },
  "committer": {
    "name": "Richard Levasseur",
    "email": "rlevasseur@google.com",
    "time": "Sun Feb 22 16:53:15 2026 -0800"
  },
  "message": "fix(pip): preserve PEP 508 URL-based requirements when extract_url_srcs\u003dFalse (#3582)\n\npip_parse (via pip_repository) passes extract_url_srcs\u003dFalse to\nparse_requirements. The _package_srcs() function silently dropped PEP\n508 URL-based requirements (pkg @ https://...) in this mode because\n_add_dists() returns can_fallback\u003dFalse for URL requirements, causing\nthem to fall through to the `continue` statement.\n\nFix the elif condition to also accept the case where extract_url_srcs is\nFalse but a valid URL dist exists, falling back to pip to handle the URL\nrequirement directly.\n\nCo-authored-by: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n(cherry picked from commit 9dcbabb3fafe847291850ff9a249e46f6fca5ef4)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f397c82ac394f140f3a4e763b2cda9a058d263da",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "81ca1099bcc643803fbde308497f0eefce5bf834",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "5c05c753fde88985481a6b77b586ea7c69886297",
      "old_mode": 33188,
      "old_path": "python/private/pypi/parse_requirements.bzl",
      "new_id": "760bf5a9e86f85502d2d64f32fa193b6954acb65",
      "new_mode": 33188,
      "new_path": "python/private/pypi/parse_requirements.bzl"
    },
    {
      "type": "modify",
      "old_id": "63755d2eddcfff5bfd92c501ca6b37759e0d73e5",
      "old_mode": 33188,
      "old_path": "tests/pypi/parse_requirements/parse_requirements_tests.bzl",
      "new_id": "a2efe91d99a4dda2fc11a7fd80b8af2aeee5ac63",
      "new_mode": 33188,
      "new_path": "tests/pypi/parse_requirements/parse_requirements_tests.bzl"
    }
  ]
}
