Skip to content

[FEATURE] Publish free-threaded (no-GIL) CPython 3.14 wheels (cp314t) #1903

Description

@oberstet

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

  • 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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions