Add support for PEP 730 iOS packaging#12962
Conversation
|
The vendoring CI check is failing because of the applied patch, which isn't surprising. The developer guide suggests there might be a way to specifically include patches; but if so, it's not clear how to set this up. Alternatively, I guess we have to wait until pypa/packaging#832 (or a variant of it) is merged, then update the vendor file. |
uranusjr
left a comment
There was a problem hiding this comment.
The non-vendor parts look good to me. Let’s wait for packaging to respond first; we can react later as needed.
| # make pip to fail and get an error message | ||
| # by running "pip install -r file:nonexistent_file" | ||
| proc = script.pip("install", "-r", "file:unexistent_file", expect_error=True) | ||
| proc = script.pip("install", "-r", "file:///unexistent_file", expect_error=True) |
There was a problem hiding this comment.
This change has been submitted separately as #12964; it's included here to prove CI isn't failing because of this patch.
|
Status update: pypa/packaging#832 has been merged; there's an additional vendored library change (pypa/distlib#231) that is awaiting review. |
|
@uranusjr Both upstream patches have now been accepted and merged into their respective mainlines. |
|
The test failures on macOS-12 appear related to #12951. |
|
This will need another merge with #12951 to get past CI. |
|
Were these changes pre-emptively vendored because otherwise pip would not be able to help support PEP 730 in its next release? I ask because this seems at odds with the vendoring policy, maybe the policy should be loosened a bit to describe what exceptions are now expected? |
|
The changes that were vendored were all in aid of supporting PEP 730 tags; they've all been accepted upstream, and will form part of the upstream packages in their next release. Whether that violates (or suggests a need for a change to) the vendoring policy is for someone higher than my pay grade to decide. |
|
We did have precedence to apply a merged but unreleased patch in a vendored package so a feature can be released in pip before the upstream can make a release. It’s fine IMO considering packaging is a PyPA project and its maintainers have close(-ish) contact with pip’s. |
|
Heads-up here. This is causing some complaining with folks who devendor. Any opinion on that? #13053 |
Adds support for PEP 730 iOS wheels. It will match any iOS wheel with the same multiarch configuration (i.e,
arm64_iphoneos); it also matches any iOS minor version from iOS 12.0 (the first iOS version known to support all of CPython) to the version requested by the--platformargument.This includes a patch to the vendored
packaginglibrary; this patch has been submitted upstream as pypa/packaging#832.It also includes a patch to the vendored
distliblibrary; this patch has been submitted upstream as pypa/distlib#231Fixes #12961.