Repository navigation
pyslang: Add version 12.0.0 - #2522
Conversation
Signed-off-by: riseproject-dev[bot] <330740410+riseproject-dev[bot]@users.noreply.github.com>
|
|
Root-caused, not fixed yet — this needs a workflow redesign decision, not a one-line patch. Upstream slang v12.0 changed its Python bindings' build in two ways at once:
This isn't a safe one-line fix because it changes the shape of the build matrix (cp312/cp313/cp314 redundantly producing one identical abi3 wheel each raises a real question about whether to collapse them to a single |
39fb7ba to
a75cf68
Compare
v12.0.0 moved bindings/CMakeLists.txt from pybind11 to nanobind's split
mode (nanobind_add_module(... BACKEND_MODULE nanobind_backend
STABLE_ABI_VERSION 3.11)), so pyproject.toml now sets
`wheel.py-api = "cp311"` and upstream's own python-dist.yml builds one
cp311-abi3 wheel per OS with no interpreter matrix at all (gotcha 11).
All four matrix legs were failing:
- cp312/cp313/cp314 built and tested fine, but "Check wheel contents"
still expected the old pybind11-era per-interpreter filename
(pyslang.cpython-<tag>-riscv64-linux-gnu.so); the actual extension is
now the abi3-tagged pyslang.abi3.so.
- cp314t failed earlier, at the build-dependency resolution step: pip
cannot find any nanobind-backend wheel for cp313t/cp314t ("from
versions: none"). nanobind-backend only ships cp310-cp315 and
cp315t on PyPI, with no cp313t/cp314t wheel on any platform, so this
is an upstream gap, not an riscv64-specific one.
Build once on cp311, the floor the abi3 tag actually promises, instead
of on cp312+ as the old per-interpreter matrix did -- building a wheel
tagged cp311-abi3 against newer-than-3.11 headers risks shipping one
that is broken on 3.11 while claiming to support it (gotcha 96). Drop
the cp314t leg entirely: with no nanobind-backend wheel to build
against, pyslang ships no free-threaded wheel upstream either (the
abi3-only, no-cp314t-variant shape of gotcha 11).
Fix the wheel-contents check for the new abi3 filename and update the
job name, cibuildwheel `only` selector and artifact name accordingly.
Automatically generated by the nightly
check_versions.pyrun.pyslang v11.0.0 -> v12.0.0
Every
- version:entry added todocs/packages/pyslang.yamlis built by this PR's ownbuild-pyslang.ymlrun; merging publishes the wheels.