)]}'
{
  "commit": "7de43d1ea6d03e1c21e864a8249c40aaeb9aaf93",
  "tree": "91014cbfdb13c29f7f3c15d9fef03ed55fb4a45c",
  "parents": [
    "e42f8f4811e57b8c3d19aeaab8f02f9d6a3fd13b"
  ],
  "author": {
    "name": "Ignas Anikevicius",
    "email": "240938+aignas@users.noreply.github.com",
    "time": "Thu Jun 06 17:20:01 2024 +0900"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Jun 06 08:20:01 2024 +0000"
  },
  "message": "feat(bzlmod): support cross-platform whl setups within the main hub repo (#1837)\n\nWith this change we add support for platform-specific wheel registration\nand\ndoing the selection of which wheel is used at build time.\n\nThis supports:\n- Different package versions for different platforms.\n- Use string_flags to configure what to fetch/select:\n    - only whls, only sdist or auto mode.\n    - libc version and `musl` vs `glibc` selection.\n    - universal2 vs arch wheels for mac.\n    - target osx version selection.\n\nSummary of changes:\n- The `uv pip install` would only warn the user of yanked packages but\n  would not refuse to install them. Update our implementation to better\n  match the same behaviour.\n- A previous PR has added the support for passing it in the\n`requirements_by_platform` and this just add the necessary code to make\n  sure that we can also do the dependency management when parsing the\n  `whl` `METADATA` files.\n- Only configure `dev_pip` deps for `linux` and `osx` platforms to not\nraise\n  issues later.\n- Add a function for generating a `whl_library` name from a `filename`.\n- Add a macro for generating all config settings for a particular set of\nparameters.\n- Update `render_pkg_aliases` to also use those config settings.\n- Update the toolchain selection `target_settings` to use the\n`py_linux_libc`\nconfig setting. With this the user can register a `musl` linux toolchain\nif\n  needed. We can also use similar `flag_values` to resolve #1876.\n- Integrate everything in the `pip` extension and setup cross-platform\n  select statements.\n\nWork towards #1357, #260\n\nStacked on #1937",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0720a36a597ddfc9bff9a0d9f29311d1d860c406",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "81340160a592a00a7174861117e064c8c802a955",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "38ee678015594d35041ba0c4f7fce173bd2713a4",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "7e86bda9b83314f489d71ddf56857bd199171a5e",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "29779fd813a01912a5c92a486cd1974488dd86ea",
      "old_mode": 33188,
      "old_path": "docs/sphinx/api/python/config_settings/index.md",
      "new_id": "8c23bf6855ed61e321c028cb7e763f0c75e616e1",
      "new_mode": 33188,
      "new_path": "docs/sphinx/api/python/config_settings/index.md"
    },
    {
      "type": "modify",
      "old_id": "fc29e41b5e6a3d77a13ed15c4854d2343b6368cb",
      "old_mode": 33188,
      "old_path": "docs/sphinx/pip.md",
      "new_id": "43d8fc49780166bf68c3f267b401bb32680a4f73",
      "new_mode": 33188,
      "new_path": "docs/sphinx/pip.md"
    },
    {
      "type": "modify",
      "old_id": "f08f7fb7a7b1c4be8d9c82dacbcd19b0b2175959",
      "old_mode": 33188,
      "old_path": "docs/sphinx/pypi-dependencies.md",
      "new_id": "db017d249f8b7c38d1bbca1d95758ad85bc3fe29",
      "new_mode": 33188,
      "new_path": "docs/sphinx/pypi-dependencies.md"
    },
    {
      "type": "modify",
      "old_id": "8ce96ea207db7156c64355eeb3363af5dee8a66b",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/libs/my_lib/__init__.py",
      "new_id": "271e933417ce389091b16cca85d5b0ee72efe7bb",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/libs/my_lib/__init__.py"
    },
    {
      "type": "modify",
      "old_id": "9dab53c039b3c2c763913b1753768727e48772b5",
      "old_mode": 33188,
      "old_path": "python/config_settings/BUILD.bazel",
      "new_id": "e2d2608c7c1a66794c9637ccf3dfee5a34880835",
      "new_mode": 33188,
      "new_path": "python/config_settings/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "cd54b2195622a32bdd5080e2f79e4d66731f33f6",
      "old_mode": 33188,
      "old_path": "python/config_settings/transition.bzl",
      "new_id": "48b0447ededc7f1f4e3a9a0d2f6a6c48db8b568e",
      "new_mode": 33188,
      "new_path": "python/config_settings/transition.bzl"
    },
    {
      "type": "modify",
      "old_id": "b84c21401854ba646154b0531abbf8dcbd6d8fdc",
      "old_mode": 33188,
      "old_path": "python/pip_install/tools/wheel_installer/wheel.py",
      "new_id": "3d6780de9afabac4d4d4105a741c81d147b84b11",
      "new_mode": 33188,
      "new_path": "python/pip_install/tools/wheel_installer/wheel.py"
    },
    {
      "type": "modify",
      "old_id": "acf2315ee9774680a3d87ec0129a31f8be7607f2",
      "old_mode": 33188,
      "old_path": "python/pip_install/tools/wheel_installer/wheel_test.py",
      "new_id": "3ddfaf7f2ed69137a2d2b98c64db42388b6096c0",
      "new_mode": 33188,
      "new_path": "python/pip_install/tools/wheel_installer/wheel_test.py"
    },
    {
      "type": "modify",
      "old_id": "ab077c6f59883970eb1fb45874e2cf9d222940bd",
      "old_mode": 33188,
      "old_path": "python/private/BUILD.bazel",
      "new_id": "d73cee8ae47c4deaf4ac5395da3e71847d52f083",
      "new_mode": 33188,
      "new_path": "python/private/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "2eab575726f17a780c04efc804f10770b08fa95d",
      "old_mode": 33188,
      "old_path": "python/private/bzlmod/BUILD.bazel",
      "new_id": "3362f34ffd78162f9af3f801adfeee73d1003ce8",
      "new_mode": 33188,
      "new_path": "python/private/bzlmod/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "8702f1fbe7aa243777f05f745e4a46ed957eaef8",
      "old_mode": 33188,
      "old_path": "python/private/bzlmod/pip.bzl",
      "new_id": "122debd2a20b718e2d3f7e5c4f0d3c2d3f07f49c",
      "new_mode": 33188,
      "new_path": "python/private/bzlmod/pip.bzl"
    },
    {
      "type": "modify",
      "old_id": "3a09766f65ad9a4d4c4fdd75f19698291ba389fa",
      "old_mode": 33188,
      "old_path": "python/private/bzlmod/pip_repository.bzl",
      "new_id": "0f962031d66cb3576745d561a3b69dec9fb3290a",
      "new_mode": 33188,
      "new_path": "python/private/bzlmod/pip_repository.bzl"
    },
    {
      "type": "modify",
      "old_id": "75f88de4ace407db396dc2d2fc815ddd7e2db191",
      "old_mode": 33188,
      "old_path": "python/private/config_settings.bzl",
      "new_id": "92b96b326496eee5b9d2c281e7c21298272571db",
      "new_mode": 33188,
      "new_path": "python/private/config_settings.bzl"
    },
    {
      "type": "modify",
      "old_id": "c6a498539f4d3fe6b18b681982fd22556a457379",
      "old_mode": 33188,
      "old_path": "python/private/parse_requirements.bzl",
      "new_id": "cb5024c8412fa7728299085e0b265d36fb7f0540",
      "new_mode": 33188,
      "new_path": "python/private/parse_requirements.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2fe3c87a1015f146de56f2a81a87fa10ecdca4df",
      "new_mode": 33188,
      "new_path": "python/private/pip_config_settings.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c8154ff38380f2ea923351ffaed4a35a95ed7226",
      "new_mode": 33188,
      "new_path": "python/private/pip_flags.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bef4304e15e4e813b5573324ce37bb508b81351a",
      "new_mode": 33188,
      "new_path": "python/private/pip_repo_name.bzl"
    },
    {
      "type": "modify",
      "old_id": "9971a8a4c33008642f50482c132fcbb47a3d0b7f",
      "old_mode": 33188,
      "old_path": "python/private/py_toolchain_suite.bzl",
      "new_id": "174c36f7827f1f399dcfa2093a9057e6d43d147f",
      "new_mode": 33188,
      "new_path": "python/private/py_toolchain_suite.bzl"
    },
    {
      "type": "modify",
      "old_id": "bc1bab20497fe739fc5041d4d3fe41e81e66bea1",
      "old_mode": 33188,
      "old_path": "python/private/render_pkg_aliases.bzl",
      "new_id": "a37c32882e51dc81cd0a1991878a334832e19d05",
      "new_mode": 33188,
      "new_path": "python/private/render_pkg_aliases.bzl"
    },
    {
      "type": "modify",
      "old_id": "018c4433ed869b9decf1bb45a599d00dce91690d",
      "old_mode": 33188,
      "old_path": "python/private/toolchains_repo.bzl",
      "new_id": "dd59e477d8db28eab624dc2e065fe2736d055b5c",
      "new_mode": 33188,
      "new_path": "python/private/toolchains_repo.bzl"
    },
    {
      "type": "modify",
      "old_id": "678c841feb1a9ddc6ab39a6747a6f7239e83403a",
      "old_mode": 33188,
      "old_path": "python/private/whl_target_platforms.bzl",
      "new_id": "08177ca1b363a572f54860e586f1452ddc305fc0",
      "new_mode": 33188,
      "new_path": "python/private/whl_target_platforms.bzl"
    },
    {
      "type": "modify",
      "old_id": "08882d3ade6540f1a4d17f971c01e96870247c9a",
      "old_mode": 33188,
      "old_path": "python/versions.bzl",
      "new_id": "26b975d068484ff2fd289a65034dab6988c81b34",
      "new_mode": 33188,
      "new_path": "python/versions.bzl"
    },
    {
      "type": "modify",
      "old_id": "32f7209c9f081db469352084d5b721d6bce89f15",
      "old_mode": 33188,
      "old_path": "tests/config_settings/transition/multi_version_tests.bzl",
      "new_id": "f3707dba206159d60f94342a13f84f3bff71a6f6",
      "new_mode": 33188,
      "new_path": "tests/config_settings/transition/multi_version_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "a38d6579623d350b500fd53aac4324f90f850d3e",
      "old_mode": 33188,
      "old_path": "tests/pip_hub_repository/render_pkg_aliases/render_pkg_aliases_test.bzl",
      "new_id": "a0689f70b98b1241dec2dbf04e94deab132ab2f6",
      "new_mode": 33188,
      "new_path": "tests/pip_hub_repository/render_pkg_aliases/render_pkg_aliases_test.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c3752e0ac34dc6e549e147e07714d1653b6516d7",
      "new_mode": 33188,
      "new_path": "tests/private/pip_config_settings/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a66e7f47d5a89515bd1de72aa9ab135f1a2c5003",
      "new_mode": 33188,
      "new_path": "tests/private/pip_config_settings/pip_config_settings_tests.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7c6782daaf5e8cfdfe3ebbec4ee82f0bcff5fb39",
      "new_mode": 33188,
      "new_path": "tests/private/pip_repo_name/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "574d55827725c92061f59971dba73a4ab69f58ef",
      "new_mode": 33188,
      "new_path": "tests/private/pip_repo_name/pip_repo_name_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "a06147b946f6d3d32dbb78dd277e6d82abe74bab",
      "old_mode": 33188,
      "old_path": "tests/private/whl_target_platforms/whl_target_platforms_tests.bzl",
      "new_id": "07f3158b314a57ad375fde2ab2ea7e469712e1a5",
      "new_mode": 33188,
      "new_path": "tests/private/whl_target_platforms/whl_target_platforms_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "3b77cde0c5c8e47f202210bc62d8775a4978c58f",
      "old_mode": 33188,
      "old_path": "tests/support/BUILD.bazel",
      "new_id": "e5d5189a3b52c225918496f17f94b67239759508",
      "new_mode": 33188,
      "new_path": "tests/support/BUILD.bazel"
    }
  ]
}
