Commit dfb64be
committed
ci(release-readiness): static abi3 audit on every wheel
## Purpose
The wheel is built `cp310-abi3`, promising it uses only CPython's stable
ABI (PEP 384) and works on any CPython 3.10+. If a Rust dependency or
PyO3 macro accidentally pulls in a non-stable-ABI symbol, the wheel
imports fine on the Python it was built against but breaks at runtime on
other 3.x versions. This catches that before a release.
## Solution
Added an `abi3audit` step to every leg of `cross-platform-build`,
running immediately after `Validate wheel built`. Uses `python -m abi3audit
--strict --report dist/*.whl` with the `--strict` flag so any non-stable-
ABI symbol is a hard failure. Uses `python` (not `python3`) for Windows
compatibility. Runs unconditionally on all 7 build targets since
abi3audit reads any wheel format (ELF/Mach-O/PE) regardless of the host OS.
## Follow-ups
Manual trigger required to verify all 7 legs pass (CI-0025 step 6):
`gh workflow run "Release Readiness" --ref main --field skip_integration=true`1 parent 703b688 commit dfb64be
1 file changed
Lines changed: 13 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
399 | 399 | | |
400 | 400 | | |
401 | 401 | | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
402 | 415 | | |
403 | 416 | | |
404 | 417 | | |
| |||
0 commit comments