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]

Reply via email to