pycapnp
pycapnp copied to clipboard
Update to manylinux2014 and add aarch64
PEP 571 defined manylinux2010_x86_64 and manylinux2010_i686 platform tags and the wheels were built on Centos6. Centos6 reached End of Life (EOL) on November 30th, 2020.
So it's time to move to manylinux2014: https://github.com/pypa/manylinux
One of the big changes with manylinux2014 are the number of architectures available (beyond i686 and x86_64). We should add as many as we can (with a few that need to be added).
- x86_64 (required)
- i686 (required)
- aaarch64 (required)
Other architectures are available, but we should wait until there are requests until attempting to add them.
- armv7l (no docker image available)
- ppc64
- ppc64le
- s390x
One big caveat here is that GitHub Actions don't have arch support for anything other than x86. So something like https://github.com/marketplace/actions/run-on-architecture might end up being more useful (but we'll need to see if manylinux2014 can be made to work with it to maximize wheel compatibility).
https://github.com/dockcross/dockcross has manylinux2014 images which could produce aaarch64
A build of pycapnp on https://github.com/marketplace/actions/run-on-architecture aarch64 took ~5h25m until when it needed Python.h https://github.com/jayvdb/pycapnp/runs/2723686224?check_suite_focus=true
I've kicked off a new build with pythonX.Y-devel, but my guess is this will reach the 6hr maximum for GitHub Actions. No doubt it can be optimised a bit, and could be seriously reduced if using a capnproto-devel
prebuilt distro package is acceptable. Unfortunately on CentOS 7, the prebuilt capnproto-devel
is v 0.5.3.1 . Likely we can find/create a later version for CentOS 7, but simplicity is being lost.
Failed at 6h https://github.com/jayvdb/pycapnp/runs/2725144360?check_suite_focus=true
Unfortunately I dont see any suitable "cross compile" github actions.
Yeah, I think we can leave this for when the infrastructure catches up.