Skip to content

Re-enable aarch64 CI and cut wheel count 20 to 10 - #13

Closed
borco wants to merge 3 commits into
masterfrom
issue/10/reenable-aarch64-ci
Closed

borco wants to merge 3 commits into
masterfrom
issue/10/reenable-aarch64-ci

Conversation

@borco

@borco borco commented Jul 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • ref Re-enable aarch64 CI once pyside6-scintilla ships an aarch64 wheel #10: pyside6-scintilla's aarch64 wheel (Linux aarch64 wheels scintilla-py#4) shipped in 5.6.3.6, unblocking the ubuntu-24.04-arm CI job that was disabled for lacking one -- re-enabled it and dropped the now-unneeded cibuildwheel test-skip for manylinux_aarch64 wheels.
  • Mirrors pyside6-scintilla's move to a single abi3 wheel per platform (its issue Re-enable aarch64 CI and cut wheel count 20 to 10 #13), but nanobind's STABLE_ABI mode hard-requires CPython >=3.12 (unlike shiboken6's FORCE_LIMITED_API, which floats down to 3.11) -- so a single wheel covering 3.11+ isn't possible here. Ships a version-specific cp311 wheel plus a cp312-abi3 wheel (forward-compatible with 3.13, 3.14, etc. without a rebuild) per platform instead: 10 wheels per release instead of 20, while keeping the 3.11 floor.

Test plan

  • uv run pytest passes locally (cp312 stable-ABI build)
  • uv run ruff check . / ruff format --check . / check_docs_sync.py / pyright all pass
  • Built once against Python 3.12 and loaded the same _lexilla.pyd, unmodified, under 3.13 and 3.14 -- confirms true forward compatibility of the abi3 build
  • CI green on the PR (aarch64 + wheels matrix)

borco added 3 commits July 14, 2026 16:45
borco/scintilla-py#4 shipped in 5.6.3.6 (manylinux_2_38_aarch64
wheel), unblocking the CI job disabled for lacking one -- `uv sync`'s
dev-group pyside6-scintilla dependency no longer needs to build from
sdist (which failed for lacking a Qt6 SDK on the arm runner). The
cibuildwheel test-skip for manylinux_aarch64 wheels is lifted for the
same reason.
Mirrors pyside6-scintilla's move to a single abi3 wheel per platform
(its issue #13), but nanobind's STABLE_ABI mode hard-requires CPython
>=3.12 (unlike shiboken6's FORCE_LIMITED_API, which can float the
stable-ABI down to 3.11) -- so a single wheel covering 3.11+ isn't
possible here. Ships a version-specific cp311 wheel plus a cp312-abi3
wheel (forward-compatible with 3.13, 3.14, etc. without a rebuild)
per platform instead, keeping the 3.11 floor while still cutting the
wheel count in half.

Verified locally: built once against Python 3.12 and loaded that same
binary, unmodified, under 3.13 and 3.14.
The lockfile was still pinned to 5.6.3.3, which predates the aarch64
wheel -- `uv sync` on the just-reenabled ubuntu-24.04-arm CI job fell
back to building it from sdist and failed for lacking a Qt6 SDK, the
same failure the aarch64 job was originally disabled for.
@borco

borco commented Jul 14, 2026

Copy link
Copy Markdown
Owner Author

Closing — merging locally with --no-ff instead, per this repo's usual workflow.

@borco borco closed this Jul 14, 2026
@borco
borco deleted the issue/10/reenable-aarch64-ci branch July 14, 2026 14:00
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