Follow-up to #124 (Part 2) — the zlmdb mirror of autobahn-python #1875 Part 2. #124
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. zlmdb wraps LMDB via the py-lmdb CFFI wrapper, so before publishing
cp314t as supported:
- Assess the LMDB CFFI layer for free-threading (no-GIL) safety — LMDB transaction/cursor
thread-affinity rules, the py-lmdb wrapper's shared state, and any implicit GIL
assumptions in the CFFI glue.
- 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 importing zlmdb.
- Decide and document the support level (experimental vs supported). Given LMDB's strict
threading model, experimental is the likely honest starting point.
Tasks
Related
Note: This work was drafted with AI assistance (Claude Code). Initiated and reviewed by me.
Checklist
Follow-up to #124 (Part 2) — the zlmdb mirror of autobahn-python #1875 Part 2. #124
fixed the GIL
cp314wheel (the aarch64 slot was accidentally shippingcp314t), added areserved
cpy314tenv spec (cpython-3.14t), acreate-recipe PATH fix, and abuild-time ABI guard (
_check-venv-abi). This issue tracks intentionally building andpublishing free-threaded
cp314twheels as a deliberate, 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. zlmdb wraps LMDB via the py-lmdb CFFI wrapper, so before publishing
cp314tas supported:thread-affinity rules, the py-lmdb wrapper's shared state, and any implicit GIL
assumptions in the CFFI glue.
the GIL on import (CPython's
Py_mod_gil/ the CFFI equivalent). Confirmsys._is_gil_enabled()staysFalseafter importing zlmdb.threading model,
experimentalis the likely honest starting point.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 #124, and_check-venv-abialready validates the ABI.
cp314ton all four platforms; publish alongsidecp314.cpy314t-<platform>-<arch>targets to thecheck-release-filesettargetsinrelease.yml(the shared action supports the314ttoken via wamp-cicd use txaio.time_ns and txaio.perf_counter_ns #11).docs/releases.rstwheel matrix and note the free-threading support level.Related
cpy314tspec +_check-venv-abiguard + PATH fix).Note: This work was drafted with AI assistance (Claude Code). Initiated and reviewed by me.
Checklist