This is an automated email from the ASF dual-hosted git repository.

tqchen pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm-ffi.git


The following commit(s) were added to refs/heads/main by this push:
     new 21e30c3b fix(packaging): tag core wheels per-version instead of abi3 
(#672)
21e30c3b is described below

commit 21e30c3b1d4421f95fd69a6ba3fd0285c7b69e9c
Author: Yaxing Cai <[email protected]>
AuthorDate: Thu Jul 16 16:49:02 2026 +0800

    fix(packaging): tag core wheels per-version instead of abi3 (#672)
    
    Fixes the `mainline-only` CI, failing on every push to `main` since
    #593. Two one-line changes in `pyproject.toml`:
    
    **1. Wheel tag** — #593 moved `core` off abi3 to the per-version C API
    (`WITH_SOABI`) but left `wheel.py-api = "cp312"`, so wheels were still
    tagged `cp312-abi3`. `abi3audit --strict` rejected them (27
    non-limited-API symbols). Dropped the stale setting so wheels tag
    per-version.
    
    **2. cp313 aarch64 test** — with the audit fixed, the test phase ran and
    hit a second issue: torch ships no cp313 aarch64 wheel for
    `manylinux2014` (`manylinux_2_17`), so its test install is
    unsatisfiable. Added `cp313-*aarch64` to `test-skip` (cp313 x86_64 and
    cp313 aarch64 on `manylinux_2_28` still tested).
    
    Verified green across the full `mainline-only` wheel matrix (all 6 build
    jobs + clang-tidy) via a temporary PR trigger, now removed.
---
 pyproject.toml | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/pyproject.toml b/pyproject.toml
index 50b0f904..d044ca41 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -115,7 +115,9 @@ build-backend = "scikit_build_core.build"
 
 [tool.scikit-build]
 metadata.version.provider = "scikit_build_core.metadata.setuptools_scm"
-wheel.py-api = "cp312"
+# Per-Python-version wheels (no abi3 / limited API): the core extension builds
+# against the full per-version Python C API (WITH_SOABI in CMakeLists.txt), so 
the
+# wheel must be tagged per-version (cp312-cp312, ...) rather than cp312-abi3.
 minimum-version = "build-system.requires"
 ninja.version = ">=1.11"
 ninja.make-fallback = false
@@ -250,8 +252,9 @@ build-verbosity = 1
 # Per-Python-version wheels (no abi3 / limited API).
 build = ["cp39-*", "cp310-*", "cp311-*", "cp312-*", "cp313-*", "cp314t-*"]
 skip = ["*musllinux*"]
-# we only need to test on cp312
-test-skip = ["cp39-*", "cp310-*", "cp311-*"]
+# cp39-cp311 are covered by the cp312 test run. cp313 aarch64 is skipped 
because torch
+# ships no cp313 aarch64 wheel for the manylinux2014 image, so its test-phase 
install fails.
+test-skip = ["cp39-*", "cp310-*", "cp311-*", "cp313-*aarch64"]
 build-frontend = "build[uv]"
 test-command = "pytest {package}/tests/python -vvs"
 test-groups = ["test"]

Reply via email to