)]}'
{
  "commit": "2cb920c1e52a85239d6bcc38919fbf143b514dac",
  "tree": "df3b7608853401bf9c5120c8751a75f3f0b51c9b",
  "parents": [
    "aa0d16c1463e4e26f6ed633ae83d9785a2ea9dfa"
  ],
  "author": {
    "name": "Ignas Anikevicius",
    "email": "240938+aignas@users.noreply.github.com",
    "time": "Mon Apr 14 08:32:10 2025 +0900"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Apr 13 23:32:10 2025 +0000"
  },
  "message": "refactor(pypi): translate wheel METADATA parsing to starlark (#2629)\n\nThis PR starts using the newly introduced (#2692) PEP508 compliant\nrequirement marker parser in starlark and moves the dependency\ngeneration from the Python language (`whl_installer`) to the Starlark\nin the `whl_library` repository rule.\n\nThis PR is (almost) a pure refactor where no bugs are fixed, but this is\nfoundational work that also adds notes on how things will be moved\nto macros (i.e. analysis phase) so that we can fix a few long standing\nbugs and prepare for stabilizing the `experimental_index_url` (#260).\n\nRefactor:\n* I have migrated all of the unit tests from Python to starlark for deps\n  generation from METADATA `Requires-Dist` fields.\n* Read the `METADATA` file itself in Starlark.\n\nWork towards #260, #2319, #2241\nFixes #2423",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e0a2f20c14129851ed2a1103814ead8ffa8d1dd6",
      "old_mode": 33188,
      "old_path": "python/private/pypi/BUILD.bazel",
      "new_id": "7297238cb4306f5d7795aafe574ad9fb8798a4b3",
      "new_mode": 33188,
      "new_path": "python/private/pypi/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "af0a75362b50db9f96e0d7654c8f6ae4e0a9c5e5",
      "new_mode": 33188,
      "new_path": "python/private/pypi/pep508_deps.bzl"
    },
    {
      "type": "modify",
      "old_id": "f45eb75cdb21650a7f3bbe395291453dea33f2c2",
      "old_mode": 33188,
      "old_path": "python/private/pypi/pep508_evaluate.bzl",
      "new_id": "f8ef5530341486dd56293a4321e5b698685a9202",
      "new_mode": 33188,
      "new_path": "python/private/pypi/pep508_evaluate.bzl"
    },
    {
      "type": "modify",
      "old_id": "5fb617004da4a93744e7501e92db111781779d00",
      "old_mode": 33188,
      "old_path": "python/private/pypi/whl_installer/BUILD.bazel",
      "new_id": "49f1a119c1cde3006aaa76db25cc916fed4bf9e9",
      "new_mode": 33188,
      "new_path": "python/private/pypi/whl_installer/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "29bea8026eae88933826c129e24ff64addee1323",
      "old_mode": 33188,
      "old_path": "python/private/pypi/whl_installer/arguments.py",
      "new_id": "bb841ea9ab51a0c3fa382cf579669ce6f4b44c19",
      "new_mode": 33188,
      "new_path": "python/private/pypi/whl_installer/arguments.py"
    },
    {
      "type": "delete",
      "old_id": "11dd6e37ab95a54d4c1469e1f21c6aee485042db",
      "old_mode": 33188,
      "old_path": "python/private/pypi/whl_installer/platform.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "d95b33a194541221a9af1008bc4bb3aad6e379b9",
      "old_mode": 33188,
      "old_path": "python/private/pypi/whl_installer/wheel.py",
      "new_id": "da81b5ea9fdc3c309e1ff96cd9d719310ca7f5cd",
      "new_mode": 33188,
      "new_path": "python/private/pypi/whl_installer/wheel.py"
    },
    {
      "type": "modify",
      "old_id": "ef8181c30db60382b724e0981e1be87197f7f5db",
      "old_mode": 33188,
      "old_path": "python/private/pypi/whl_installer/wheel_installer.py",
      "new_id": "c7695d92e8772145f8df68cd2e349d44dd58031e",
      "new_mode": 33188,
      "new_path": "python/private/pypi/whl_installer/wheel_installer.py"
    },
    {
      "type": "modify",
      "old_id": "493f11353e77add8729493de95f2fc2352a6c8dc",
      "old_mode": 33188,
      "old_path": "python/private/pypi/whl_library.bzl",
      "new_id": "54f9ff390975974c85913ed13f9a2f569b28448c",
      "new_mode": 33188,
      "new_path": "python/private/pypi/whl_library.bzl"
    },
    {
      "type": "modify",
      "old_id": "95031e6181f8a66165d95a0902b9070091ec53bb",
      "old_mode": 33188,
      "old_path": "python/private/pypi/whl_library_targets.bzl",
      "new_id": "d32746b60408a4aeec8dad97a6a632ef71bc4a78",
      "new_mode": 33188,
      "new_path": "python/private/pypi/whl_library_targets.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8a86ffbff1d41905d72ac29fe0fab9a1570af4fc",
      "new_mode": 33188,
      "new_path": "python/private/pypi/whl_metadata.bzl"
    },
    {
      "type": "modify",
      "old_id": "575f28ada62cae2b7733deaf0902e43d978a880f",
      "old_mode": 33188,
      "old_path": "tests/pypi/pep508/BUILD.bazel",
      "new_id": "7eab2e096ac0a41de2a9cdbaf85081a72bed28f4",
      "new_mode": 33188,
      "new_path": "tests/pypi/pep508/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "44031ab6a5bed3b922fe4903b773e0a1cf938488",
      "new_mode": 33188,
      "new_path": "tests/pypi/pep508/deps_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "80b70f4dad73c1bea13269a3ed1ac09471a3ad71",
      "old_mode": 33188,
      "old_path": "tests/pypi/pep508/evaluate_tests.bzl",
      "new_id": "14e5e40b434a4e9ef8240a6db550a004753e73da",
      "new_mode": 33188,
      "new_path": "tests/pypi/pep508/evaluate_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "040e4d765f3874bb3ad3af310c046344ba74f355",
      "old_mode": 33188,
      "old_path": "tests/pypi/whl_installer/BUILD.bazel",
      "new_id": "fea6a46d01c96ffacc256bf461bfa1f806b74cbb",
      "new_mode": 33188,
      "new_path": "tests/pypi/whl_installer/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "5538054a598f8634d704e3f3cbdeeb0f21803da0",
      "old_mode": 33188,
      "old_path": "tests/pypi/whl_installer/arguments_test.py",
      "new_id": "9f73ae96a93ae86144596e8b759f1f2fdb1b4842",
      "new_mode": 33188,
      "new_path": "tests/pypi/whl_installer/arguments_test.py"
    },
    {
      "type": "delete",
      "old_id": "2aeb4caa6943d3165e2e0058755ed43fc4e2329a",
      "old_mode": 33188,
      "old_path": "tests/pypi/whl_installer/platform_test.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "7139779c3efc96dfc70c6bcfd585ddc58fd0e911",
      "old_mode": 33188,
      "old_path": "tests/pypi/whl_installer/wheel_installer_test.py",
      "new_id": "3c118af3c4085f9a2987db78c508be82fa300083",
      "new_mode": 33188,
      "new_path": "tests/pypi/whl_installer/wheel_installer_test.py"
    },
    {
      "type": "delete",
      "old_id": "404218e12b64b85c92f788921bee41ac88c1e9bc",
      "old_mode": 33188,
      "old_path": "tests/pypi/whl_installer/wheel_test.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3f1d665dd278edac4b051158b39881d4ca47f1f4",
      "new_mode": 33188,
      "new_path": "tests/pypi/whl_metadata/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4acbc9213d776915f24fcc42f4af5afd0736ba3b",
      "new_mode": 33188,
      "new_path": "tests/pypi/whl_metadata/whl_metadata_tests.bzl"
    }
  ]
}
