You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add a free-threaded 3.15t entry to the test matrix #223
Now that 3.15.0 has shipped, free-threaded 3.15 is worth its own entry. It is not simply "3.14t but newer": 3.15 is the first release with PEP 803's abi3t stable ABI, so code paths that branch on Py_GIL_DISABLEDtogether with a 3.15-or-newer check cannot be reached by either existing job. 3.14t is free-threaded but too old; 3.15 is new enough but has the GIL.
This showed up concretely downstream in setuptools. pypa/setuptools#5193 adds abi3t wheel tagging and reported green CI while carrying a latent failure: the vendored packaging at the time could not emit an abi3t tag at all, so the PR's supported-tag assertion could never have held on a free-threaded 3.15. Nothing caught it, because nothing ran there. (That has since been fixed by pypa/setuptools#5361, but only the missing dependency — not the missing coverage.)
A 3.15t entry alongside the existing 3.15 one would close the gap for every skeleton-based project at once, rather than each repo adding it separately.
One caution from the downstream experience: free-threaded entries here have a history of dependency trouble. setuptools still carries a commented-out 3.13t entry noting "cffi (required by PyNaCl) doesn't support free-threaded CPython 3.13t", and pyobjc had issues on 3.15 (ronaldoussoren/pyobjc#671) that made 3.15 coverage Linux-only in practice. So it may be worth confirming the job can actually be green before adding it — an added-but-red matrix entry is worse than a missing one, since it makes every PR's CI unreadable.
Activity