Description
Sorry if this is a duplicate of anything that has been requested or noted before. Please close this if that is the case.
Manylinux makes compiling for many linuxes very simple. However, it does not make it super simple to make wheels available for aarch64 and other non-x86 platforms. To build for another platform currently requires either:
- A build service that supports it
- Not all architectures supported by all platforms (GitHub Actions doesn't yet have hosted ARM runners, probably will never have i686)
- Travis is no longer completely free
- Splitting between multiple build platforms is tedious
- Your own device
- Not everyone has a Raspberry Pi (or other) to build on
- People submitting pull requests can't easily ensure everything still builds
- Setting up self-hosted runner is tedious and requires maintaining your own build platform
- If you are trying to support devices like the older Pis, building can take a very very long time
Cross-compiling is difficult, but manylinux could provide a very simple end-user solution to developers who just want to make working wheels without the hassle. If users could compile for i686, ARM, and PPC from additional x86_64 Docker images, then it would be much easier to support these platforms. And as noted before, in most cases the readily available x86_64 runners are much more powerful than the ARM runners, so they build faster. Additionally, whenever a new platform becomes popular (inevitable with ARM) it will be trivial for an end-user to begin producing wheels for it.
The only caveat is that running tests on the cross-compiled wheels would still not be possible, but this still seems like a net-positive.