The cibuildwheel documentation has a note about this
(https://cibuildwheel.readthedocs.io/en/stable/faq/#universal2),
quoting:

> The dual-architecture universal2 has a few benefits, but a key benefit to
> a universal wheel is that a user can bundle these wheels into an application
> and ship a single binary.
>
> However, if you have a large library, then you might prefer to ship the two
> single-arch wheels instead - x86_64 and arm64. In rare cases, you might want
> to build all three, but in that case, pip will not download the universal 
> wheels,
> because it prefers the most specific wheel available.

So given that we are in the situation of having a large library, and
already do provide the separate x86_64 and arm64 wheels (and thus pip
will actually never use the universal2 wheel by default), I think it
seems fine to drop the universal2 wheels.

Joris


On Thu, 27 Oct 2022 at 10:05, Antoine Pitrou <anto...@python.org> wrote:
>
>
> Hello,
>
> Currently, for macOS we're publishing both arm64, x86_64 *and*
> universal2 binary wheels (the latter contain both arm64 and x86_64 code
> in a single binary).
>
> Here are some observations from me:
>
> * Producing universal2 wheels is more complex than producing
> single-architecture wheels (we actually have to build for both
> architectures separately, then merge the results); it's also one more
> CI/packaging configuration to look after
>
> * x86-64 Macs are legacy and are gradually disappearing (especially for
> high-performance applications where ARM Macs are massively faster)
>
> * Numpy publishes only architecture-specific wheels, while Pandas
> publishes both architecture-specific and universal wheels
>
> * Size-wise, a universal wheel is not much smaller than the sum of
> architecture-specific wheels (for example, 43.7 MB for
> pyarrow-9.0.0-cp310-cp310, vs. 24.0 MB + 21.6 MB)
>
> Is there any reason why we should continue publishing universal wheels
> for macOS?
>
> Regards
>
> Antoine.

Reply via email to