Skip to content

CI: add CPython 3.15 and 3.15t wheel builds - #346

Open
honglei wants to merge 2 commits into
python-lz4:masterfrom
honglei:prepare/python315-support
Open

CI: add CPython 3.15 and 3.15t wheel builds#346
honglei wants to merge 2 commits into
python-lz4:masterfrom
honglei:prepare/python315-support

Conversation

@honglei

@honglei honglei commented Aug 20, 2026

Copy link
Copy Markdown

Summary

  • add CPython 3.15 and 3.15 free-threaded wheel builds
  • keep cp314t in the matrix and advertise Python 3.15 in package classifiers
  • upgrade to cibuildwheel 4.2.0, which includes ABI-stable CPython 3.15.0rc1 builders and no longer needs the removed cpython-freethreading opt-in
  • clarify the no-GIL concurrency contract: stateless operations and separate contexts may run concurrently; one incremental frame or stream context must be externally serialized

cp313t release boundary

cp313t is deliberately no longer produced for new releases. CPython 3.13t was an experimental transition build; manylinux and cibuildwheel have removed its builder, and current ecosystem matrices such as SciPy have moved to cp314t+. Existing published cp313t wheels remain available, and this change does not add a source-level rejection of Python 3.13t.

Validation

Validated on 10.2 using /opt Python 3.14.7t, 3.15.0b3, and 3.15.0rc1t:

  • complete block/frame suite: 19,804 passed on each runtime before this documentation/test follow-up
  • free-threaded runs used pytest-run-parallel
  • the new barrier-based independent-frame-context test passed under /opt/python314t through pytest and under both /opt/python314t and /opt/python315t as a direct isolated run
  • locally built cp315 and cp315t wheels installed into fresh environments and passed block/frame round-trip smoke tests

The GitHub Actions matrix remains the acceptance gate for manylinux repair and macOS, Windows, i686, and aarch64 wheels.

Release request

After CI is green and this is merged, please create a new release/tag to trigger the existing PyPI publish job. PyPI 4.4.5 predates the already-merged cp314t work, and this PR adds cp315/cp315t; without a new release, users cannot install these wheels from PyPI.

Add CPython 3.15 and free-threaded 3.15 wheel builds, and advertise Python 3.15 in the package classifiers. Keep cp314t in the matrix.

cibuildwheel 4.2.0 includes ABI-stable CPython 3.15.0rc1 builders and builds 3.14+ free-threaded interpreters without the removed cpython-freethreading opt-in.

cp313t is no longer produced for new releases. It was an experimental transition build; manylinux and cibuildwheel have removed its builder, and current ecosystem matrices such as SciPy have moved to cp314t+. Existing published cp313t wheels remain available, and this does not add a source-level rejection of Python 3.13t.
Document that stateless operations and separate frame contexts may run concurrently, while incremental frame and stream contexts require caller-side serialization. Add a barrier-based regression test for concurrent independent frame contexts.
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