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:
|
|
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? |
|
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.