ci: Add Python 3.13t and 3.14t (free-threaded) to testing matrix - #817
ci: Add Python 3.13t and 3.14t (free-threaded) to testing matrix#817xsub wants to merge 1 commit into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@## develop #817 +/- ##
===========================================
- Coverage 99.85% 99.84% -0.02%
===========================================
Files 95 102 +7 Lines 27784 32034 +4250 Branches 2908 3096 +188 ===========================================
+ Hits 27743 31983 +4240 - Misses 38 45 +7 - Partials 3 6 +3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
ronf
commented
Jul 6, 2026
Looks like all of the new tests failed, but on Ubuntu and Windows they failed very early, when trying to find the right Python environment. It looks like macOS got a bit further and began running the tests, but there were crashes. |
Hi @ronf, thanks for looking into this so quickly! The behaviors you're seeing match the current state of the broader PEP 703 migration ecosystem:
Since we know this is currently blocked at the upstream extension level (specifically We can leave it open as an automated tracker. Once What do you think about that? |
ronf
commented
Jul 6, 2026
That sounds good to me... I'm fine with keeping this open in the meantime. I've gone ahead and made this into a Draft. Thanks for submitting this. I have seen comments about the free-threading work, but haven't tracked it closely. |
This PR adds Python 3.13t and 3.14t (the experimental free-threaded builds) to the testing matrix.
Since Python 3.13, PEP 703 introduces a GIL-less build. Adding this to the CI early helps uncover hidden data-races and ensures thread-safety without the GIL. The
actions/setup-pythonaction supports3.13tout of the box.Note: asyncssh relies on
cryptography, which currently lacks full free-threaded ABI support (see pyca/cryptography#15063). This CI run will track upstream compatibility and serve as a baseline diagnostic.If the tests pass without the GIL, the project is safely compatible with the free-threaded ecosystem. If they fail, this run provides high-value logs regarding global mutable state or dependency blockers.