cyx-6 opened a new pull request, #672:
URL: https://github.com/apache/tvm-ffi/pull/672
## Problem
The `mainline-only` CI workflow has been failing on every push to `main`
since PR #593 merged — all **Build wheels** jobs fail (Linux x86_64/aarch64,
macOS arm64, Windows) at the final `abi3audit --strict` step:
```
...cp312-abi3-manylinux2014_x86_64.whl:
3 extensions scanned; 0 ABI version mismatches and 27 ABI violations found
Audit command failed with exit code 1
```
## Root cause
PR #593 intentionally moved the `core` extension off the limited/abi3 API to
the **full per-version Python C API** (`WITH_SOABI` in `CMakeLists.txt`; it
needs `Py_IncRef`, `PyObject_GC_Del`, atomic header reads for PyObject-tying).
It updated CMake and the `[tool.cibuildwheel]` build list accordingly, but left
one stale line in `pyproject.toml`:
```toml
[tool.scikit-build]
wheel.py-api = "cp312" # still forces the abi3 wheel tag
```
So the binary is genuinely per-version, but the wheel is still tagged
`cp312-abi3`. `abi3audit --strict` correctly rejects it: the `.so` references
27 non-limited-API symbols (`_PyType_Lookup`, `PyUnicode_New`, …) while the tag
claims abi3 forward-compat. This isn't only a CI nuisance — such a wheel would
install on 3.13+ and fail to import.
This was invisible on the original PR because `abi3audit`/`cibuildwheel`
only run in `ci_mainline_only.yml`, which triggers **only on push to `main`**
(the PR `ci_test.yml` uses editable installs).
## Fix
Remove the stale `wheel.py-api = "cp312"` so wheels tag per-version
(`cp312-cp312`, …), matching the built binary. Once wheels are no longer
abi3-tagged, cibuildwheel skips `abi3audit` entirely.
## Verification
Second commit temporarily adds a `pull_request` trigger to
`ci_mainline_only.yml` so the Build wheels + abi3audit matrix runs on this PR.
**It will be reverted before merge** once CI is green.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]