crossbario / crossbario/autobahn-python
[FEATURE] Publish free-threaded (no-GIL) CPython 3.14 wheels (cp314t)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2.5k
- Forks
- 768
- PR merge metrics
- No merged PRs in 30d
Description
Follow-up to #1875 (Part 2). #1875 fixed the GIL cp314 wheel (the aarch64 slot was
accidentally shipping cp314t), added a reserved cpy314t env spec (cpython-3.14t), a
create-recipe PATH fix, and a build-time ABI guard (_check-venv-abi). This issue
tracks intentionally building and publishing free-threaded cp314t wheels as a
deliberate, supported variant.
Scope
Publish cp314-cp314t wheels alongside the GIL cp314 wheels on all platforms
(Linux x86_64 / aarch64 manylinux, macOS arm64, Windows amd64).
Prerequisite: free-threading safety (do NOT skip)
Building a cp314t wheel merely declares free-threading support; it does not make the
extension safe. Before publishing cp314t as supported:
- Assess the NVX CFFI extensions (
_utf8validator,_xormasker) for free-threading
(no-GIL) safety — shared/global state, any implicit GIL assumptions, re-entrancy. - Add the free-threaded module declaration so the interpreter does not silently re-enable
the GIL on import (CPython'sPy_mod_gil/ the CFFI equivalent). Confirm
sys._is_gil_enabled()staysFalseafterimport autobahn.nvx…. - Decide and document the support level (experimental vs supported).
Tasks
- Add
cpy314tto the build matrix (ENVS/ the wheels workflows). The_get-spec
mappingcpy314t -> cpython-3.14tis already in place from #1875, and_check-venv-abi
already validates the ABI (expects free-threaded for*tenvs). - Build
cp314ton all four platforms; publish alongsidecp314. - Add
cpy314t-<platform>-<arch>targets to thecheck-release-filesettargetsin
release.yml(the shared action supports the314ttoken via wamp-cicd #11). - Update
docs/releases.rstwheel matrix and note the free-threading support level.
Related
- #1875 (GIL fix + reserved
cpy314tspec +_check-venv-abiguard + PATH fix). - wamp-cicd #11 (exact ABI-tag matching, so
cp314andcp314tslots are distinct). - zlmdb # (the mirror for zlmdb; LMDB/CFFI free-threading assessment).
Note: This work was drafted with AI assistance (Claude Code). Initiated and reviewed by me.
Checklist
- I have searched existing issues to avoid duplicates
- I have described the problem clearly
- I have provided use cases
- I have considered alternatives
- I have assessed impact and breaking changes
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the ENVS and wheels workflows, then inspect the NVX CFFI extensions _utf8validator and _xormasker for free-threading safety and module declarations. Update release.yml targets and docs/releases.rst after confirming sys._is_gil_enabled() remains False on import. Done means cp314t wheels are built and published for all four platforms, with the support level documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, release
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100