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's Py_mod_gil / the CFFI equivalent). Confirm
sys._is_gil_enabled() stays False after import autobahn.nvx….
- Decide and document the support level (experimental vs supported).
Tasks
Related
Note: This work was drafted with AI assistance (Claude Code). Initiated and reviewed by me.
Checklist
Follow-up to #1875 (Part 2). #1875 fixed the GIL
cp314wheel (the aarch64 slot wasaccidentally shipping
cp314t), added a reservedcpy314tenv spec (cpython-3.14t), acreate-recipe PATH fix, and a build-time ABI guard (_check-venv-abi). This issuetracks intentionally building and publishing free-threaded
cp314twheels as adeliberate, supported variant.
Scope
Publish
cp314-cp314twheels alongside the GILcp314wheels on all platforms(Linux x86_64 / aarch64 manylinux, macOS arm64, Windows amd64).
Prerequisite: free-threading safety (do NOT skip)
Building a
cp314twheel merely declares free-threading support; it does not make theextension safe. Before publishing
cp314tas supported:_utf8validator,_xormasker) for free-threading(no-GIL) safety — shared/global state, any implicit GIL assumptions, re-entrancy.
the GIL on import (CPython's
Py_mod_gil/ the CFFI equivalent). Confirmsys._is_gil_enabled()staysFalseafterimport autobahn.nvx….Tasks
cpy314tto the build matrix (ENVS/ the wheels workflows). The_get-specmapping
cpy314t -> cpython-3.14tis already in place from [FEATURE] Publish CPython 3.14 wheels for both free-threaded (no-GIL) and regular (GIL) builds on all platforms #1875, and_check-venv-abialready validates the ABI (expects free-threaded for
*tenvs).cp314ton all four platforms; publish alongsidecp314.cpy314t-<platform>-<arch>targets to thecheck-release-filesettargetsinrelease.yml(the shared action supports the314ttoken via wamp-cicd WS settings page #11).docs/releases.rstwheel matrix and note the free-threading support level.Related
cpy314tspec +_check-venv-abiguard + PATH fix).cp314andcp314tslots are distinct).Note: This work was drafted with AI assistance (Claude Code). Initiated and reviewed by me.
Checklist