Skip to content

fix: enforce Linux cp311 ABI3 release wheels - #63

Merged
parthozyy merged 2 commits into
mainfrom
fix/linux-abi3-packaging
Sep 9, 2026
Merged

fix: enforce Linux cp311 ABI3 release wheels#63
parthozyy merged 2 commits into
mainfrom
fix/linux-abi3-packaging

Conversation

@parthdongre

Copy link
Copy Markdown
Owner

Summary

Hardens native-wheel packaging after the v0.3.0 public smoke exposed a Linux manylinux interpreter mismatch.

Root cause

maturin-action runs Linux manylinux builds inside its container. The release workflow passed --interpreter python, which resolved to CPython 3.9 inside that container. Maturin correctly detected the crate's abi3-py311 floor, warned that CPython 3.9 was too old for that ABI3 target, and emitted a version-specific cp39-cp39 Linux wheel instead.

Fix

  • use python3.11 explicitly for the Linux manylinux release build;
  • keep host python for macOS/Windows builds provisioned by actions/setup-python;
  • fail each native release job unless its wheel is tagged cp311-abi3;
  • fail the final release payload validation unless all four native wheels use cp311-abi3 and exactly one Linux x86_64 manylinux wheel is present;
  • make the regular Package workflow assert its native artifact is also cp311-abi3 before running the pip-preference smoke.

A separate exact-v0.3.0 diagnostic build is validating the corrected Linux invocation on Python 3.12 before the missing Linux ABI3 file is added to the existing PyPI 0.3.0 release.

No runtime APIs or package version are changed.

@parthozyy
parthozyy merged commit 2a051f1 into main Sep 9, 2026
12 checks passed
@parthozyy
parthozyy deleted the fix/linux-abi3-packaging branch September 9, 2026 04:01
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.

2 participants