capnproto / pycapnp

Cap'n Proto serialization/RPC system - Python bindings
BSD 2-Clause "Simplified" License
470 stars 123 forks source link

Update to manylinux2014 and add aarch64 #265

Closed haata closed 7 months ago

haata commented 3 years ago

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).

Other architectures are available, but we should wait until there are requests until attempting to add them.

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).

jayvdb commented 3 years ago

https://github.com/dockcross/dockcross has manylinux2014 images which could produce aaarch64

jayvdb commented 3 years ago

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.

jayvdb commented 3 years ago

Failed at 6h https://github.com/jayvdb/pycapnp/runs/2725144360?check_suite_focus=true

Unfortunately I dont see any suitable "cross compile" github actions.

haata commented 3 years ago

Yeah, I think we can leave this for when the infrastructure catches up.

haata commented 7 months ago

I think we can close this for now after using cibuildwheel https://github.com/capnproto/pycapnp/commit/6d5ee1c6f26a4e0ca7c7e75e1335555e4cc7e7aa