Skip to content

pyslang: Add version 12.0.0 - #2522

Merged
luhenry merged 2 commits into
mainfrom
github-actions/nightly-upgrade/pyslang
Oct 12, 2026
Merged

luhenry merged 2 commits into
mainfrom
github-actions/nightly-upgrade/pyslang

Conversation

@riseproject-dev

Copy link
Copy Markdown
Contributor

Automatically generated by the nightly check_versions.py run.

pyslang v11.0.0 -> v12.0.0

Every - version: entry added to docs/packages/pyslang.yaml is built by this PR's own build-pyslang.yml run; merging publishes the wheels.

Signed-off-by: riseproject-dev[bot] <330740410+riseproject-dev[bot]@users.noreply.github.com>
@riseproject-dev
riseproject-dev Bot requested a review from luhenry September 30, 2026 08:10
@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://riseproject-dev.github.io/python-wheels/pr-preview/pr-2522/

Built to branch gh-pages at 2026-10-10 21:14 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

luhenry commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

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:

  1. cp312/cp313/cp314 now build a single stable-ABI wheel. The build itself succeeds on all three (confirmed: tests pass, wheel is produced), but it's tagged pyslang-12.0.0-cp311-abi3-manylinux_2_39_riscv64.whl with pyslang/pyslang.abi3.so inside — not the per-interpreter pyslang.cpython-<tag>-riscv64-linux-gnu.so this repo's own post-build check script (Check wheel contents step in build-pyslang.yml) still asserts. All three jobs build the same abi3 wheel redundantly and then fail that outdated assertion.
  2. cp314t (free-threaded) now needs nanobind-backend>=1.0 (pulled in via scikit-build-core, presumably for a nanobind-based free-threaded-only binding path, since pybind11 doesn't support free-threading here). That's a real, unrelated-to-us gap: nanobind-backend 1.0.0 on PyPI ships wheels for cp310-cp315 and cp315t, but not cp314t - and it has no sdist, so there's nothing to build from source either. This specific combination can't be built anywhere right now, not just on riscv64.

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 cp311 entry, which would also affect the publish step's artifact pattern/dedup) and drops cp314t until upstream's nanobind-backend catches up - decisions I'd rather flag than guess at blindly. Minimal path, if someone wants to unblock this without redesigning the matrix: update the check script's assertion to accept pyslang.abi3.so, and drop cp314t from the matrix with a comment citing the missing nanobind-backend wheel.

@luhenry
luhenry force-pushed the main branch 3 times, most recently from 39fb7ba to a75cf68 Compare October 1, 2026 15:22
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.
@luhenry
luhenry marked this pull request as ready for review October 11, 2026 00:24
@luhenry
luhenry merged commit f321ed5 into main Oct 12, 2026
9 checks passed
@luhenry
luhenry deleted the github-actions/nightly-upgrade/pyslang branch October 12, 2026 12:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant