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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions