Build linux/macos arm64/aarch64 wheels on native runners - #1308
Conversation
4601fd8 to
69bca59
Compare
05c8e87 to
d22a029
Compare
setuptools 82.0.0 removed pkg_resources, breaking the build. Use packaging.requirements.Requirement instead, and switch the Cython dependency string to PEP 508 format (no parentheses).
- Switch to official PyPA build frontend for sdist ref https://pypi.org/project/build/ - Cancel running jobs when a new commit is pushed to a PR ref https://stackoverflow.com/questions/66335225#comment133398800_72408109 - Switch from setup-python to setup-uv ref https://github.com/astral-sh/setup-uv
5be2c72 to
dafc5bb
Compare
| # github does not provide 3.9 cpython for arm64 runners | ||
| - python-version: "3.9" | ||
| os: macos-15 |
There was a problem hiding this comment.
fyi Python 3.9 is EOL since 31 Oct 2025, can consider dropping support
2403b7b to
434ebc2
Compare
ref https://github.com/MagicStack/asyncpg/actions/runs/22286259051/job/64465189709?pr=1308 failed with: ====================================================================== ERROR: test_tls_version (test_connect.TestSSLConnection) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/runner/work/asyncpg/asyncpg/asyncpg/_testbase/__init__.py", line 92, in wrapper self.loop.run_until_complete(coro) File "/Applications/Xcode_16.4.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete return future.result() File "/Users/runner/work/asyncpg/asyncpg/tests/test_connect.py", line 2024, in test_tls_version await self.connect( File "/Users/runner/work/asyncpg/asyncpg/asyncpg/connection.py", line 2443, in connect return await connect_utils._connect( File "/Users/runner/work/asyncpg/asyncpg/asyncpg/connect_utils.py", line 1209, in _connect addrs, params, config = _parse_connect_arguments(**kwargs) File "/Users/runner/work/asyncpg/asyncpg/asyncpg/connect_utils.py", line 893, in _parse_connect_arguments addrs, params = _parse_connect_dsn_and_args( File "/Users/runner/work/asyncpg/asyncpg/asyncpg/connect_utils.py", line 798, in _parse_connect_dsn_and_args ssl.minimum_version = _parse_tls_version( File "/Applications/Xcode_16.4.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/ssl.py", line 586, in minimum_version super(SSLContext, SSLContext).minimum_version.__set__(self, value) ValueError: Unsupported protocol version 0x304
434ebc2 to
613099e
Compare
|
@elprans this should fix the failing CI on master |
|
@elprans can i support in getting this merged? |
|
if uvloop doesnt have 3.15 wheels yet and we depend on it in our suite, i would wait for upstream support. happy to make the supported range in this PR 3.10-3.15 per your and my comment, but i would wait for the complete suite here to go green (when upstream has support) before merging. |
|
Edit for lineage: GitHub cannot restore the comment I deleted, so the
That suggestion is withdrawn. I reconsidered the scope and opened #1352 as a I also checked the current upstream state: uvloop 0.22.1 has no Sorry for deleting the earlier comment instead of editing it. I will preserve |
|
please dont delete your github comments, edit them instead. deleting is bad for lineage and future reference |
hi @elprans 👋
I did the initial implementation of the parallel
release.ymlin #954 and I'm providing some maintenance here :)This PR contains the following commits:
pkg_resourcesthe runner changes avoid emulation (qemu on linux, rosetta on macos), mainly for speedup (e.g. linux aarch64 wheel build is currently taking 30+ mins vs. 4 mins for x86). i left the
setup-qemustep in place in case you want to add more wheel architectures for which no native runners exist