Skip to content

Fix abi3 wheel producing version-specific tags for CPython below minimum#3061

Merged
messense merged 1 commit into
PyO3:mainfrom
messense:fix/abi3-interp-filtering-main
Mar 3, 2026
Merged

Fix abi3 wheel producing version-specific tags for CPython below minimum#3061
messense merged 1 commit into
PyO3:mainfrom
messense:fix/abi3-interp-filtering-main

Conversation

@messense

@messense messense commented Mar 3, 2026

Copy link
Copy Markdown
Member

When abi3 has a fixed minimum version (e.g. abi3-py39), CPython interpreters below that version (e.g. 3.8) were incorrectly routed to the non-abi3 wheel build path, producing cp38-cp38 wheels instead of the correct cp39-abi3 wheel.

Only interpreters that inherently lack stable ABI support (PyPy, GraalPy, free-threaded CPython) should get version-specific wheels.

Fixes #3059

When abi3 has a fixed minimum version (e.g. abi3-py39), CPython
interpreters below that version (e.g. 3.8) were incorrectly routed
to the non-abi3 wheel build path, producing cp38-cp38 wheels instead
of the correct cp39-abi3 wheel.

Only interpreters that inherently lack stable ABI support (PyPy,
GraalPy, free-threaded CPython) should get version-specific wheels.

Fixes PyO3#3059
@messense messense merged commit 8a11d42 into PyO3:main Mar 3, 2026
45 checks passed
@messense messense deleted the fix/abi3-interp-filtering-main branch March 3, 2026 00:44
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Apr 14, 2026
https://build.opensuse.org/request/show/1346282
by user mia + dimstar_suse
- Update to version 1.13.1
  * fix: fall back to placeholder for abi3 when found interpreters
    are too old
    gh#PyO3/maturin#3126
- Changes in version 1.13.0:
  * Sync legacy_py.rs with upstream PyPI warehouse legacy.py
    gh#PyO3/maturin#3053
  * Fix --strip conflicting with --include-debuginfo in develop
    gh#PyO3/maturin#3057
  * Fix abi3 wheel producing version-specific tags for CPython
    below minimum
    gh#PyO3/maturin#3061
  * Fix data symlink permission handling
    gh#PyO3/maturin#3069
  * fix: correct bugs in audit.rs typo and module_writer
    gh#PyO3/maturin#3070
  * perf: use lazy-initialized regexes instead of per-call
    compilation
    gh#PyO3/maturin#3071
  * fix: skip legacy manylinux aliases not in PyPI allow-list
    gh#PyO3/maturin#3078
  * fix: auto-generat
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.

maturin producing cp38 wheel names when abi3 requested

1 participant