-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Description
Pip on Apple Silicon does not consider a properly named Universal2 wheel macosx_10_9_universal2 as a valid candidate; the only universal wheel it will consider valid is macosx_11_0_universal2, which mostly defeats the purpose of being universal (especially for uses like bundling resources for executable packages). This is due to a bug in Packaging reported mid December pypa/packaging#379, that was quickly fixed pypa/packaging#380 and then merged at the beginning of the year.
I have opened an issue with packaging asking for a new release two weeks ago, pypa/packaging#385, but they wanted to wait till just before a Pip release so they wouldn't have to release twice (I think). Pip just released 21 and 20.3.4 without a new release of packaging, so this is still broken. I was asked to open an issue with Pip asking for the new release of Packaging (I think, I'm getting confused at this point...)
cibuildwheel is hoping to ship ARM/Universal2 support soon pypa/cibuildwheel#484, and the wheels produced will either have to be manually renamed with dual identifiers (macosx_10_9_universal2.macosx_11_0_universal2 ) as a hack, or they will not be downloadable on Apple Silicon with Pip.
Ideally, I think it would be nice to have a 20.3.5 and 21.0.1 with this fix, since cibuildwheel ships get-pip.py that then runs the pinned dependencies, and it supports the same set of Python that manylinux supports, so we would either have to ship two versions of get-pip (which is already large), or we'd have to do some sort of trickery on apple silicon to ensure user pins can access Universal wheels whenever ARM runners show up but still also have the option to pin Pip itself. (So no rush at all on the 20.3.5 ;) )