From 3697468fa0682aaf524fe0800b30a04c5f83a185 Mon Sep 17 00:00:00 2001 From: Bryant Date: Sun, 12 Jul 2026 12:14:10 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20(ci):=20Build=20cp313/cp314=20wh?= =?UTF-8?q?eels=20in=20the=20release=20matrix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 4 platform wheel jobs each passed the scalar PYTHON_VERSION (3.12) as maturin's sole --interpreter, so PyPI only ever received cp312 wheels even though pyproject declares requires-python >=3.12,<4.0 and classifiers for 3.13/3.14. On a 3.13/3.14 interpreter pip/uv found no matching wheel and built the hatchling sdist, which has no maturin hook — producing a py3-none-any wheel with no agent_assembly._core, so agent registration silently no-ops (AAASM-4446). Build a wheel for every supported CPython (3.12/3.13/3.14) on all four platform targets. Linux uses the manylinux image's bundled CPythons; the two macOS jobs install each interpreter via multi-version setup-python first, since macOS runners ship no manylinux image. Refs AAASM-4446 --- .github/workflows/release-python.yml | 43 ++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release-python.yml b/.github/workflows/release-python.yml index 171f9f52..ec4d5502 100644 --- a/.github/workflows/release-python.yml +++ b/.github/workflows/release-python.yml @@ -274,7 +274,11 @@ jobs: with: target: x86_64-unknown-linux-gnu command: build - args: --release --out dist --interpreter ${{ env.PYTHON_VERSION }} + # Build a wheel for every supported CPython so no supported interpreter + # silently falls back to the native-core-less hatchling sdist + # (AAASM-4446). The manylinux image ships all CPythons; maturin resolves + # each X.Y tag to the matching /opt/python interpreter in-image. + args: --release --out dist --interpreter 3.12 3.13 3.14 manylinux: auto # The manylinux2014 image (CentOS 7-based) lacks protoc; aa-proto's # build.rs needs it via prost-build for proto3 syntax. The yum/dnf @@ -366,7 +370,10 @@ jobs: with: target: aarch64-unknown-linux-gnu command: build - args: --release --out dist --interpreter ${{ env.PYTHON_VERSION }} + # See linux-x86_64 above: build one wheel per supported CPython so no + # supported interpreter falls back to the native-core-less sdist + # (AAASM-4446). manylinux ships all CPythons; maturin resolves each tag. + args: --release --out dist --interpreter 3.12 3.13 3.14 manylinux: auto # See linux-x86_64 above for rationale + security model. Same # SHA-verified protoc binary download. @@ -400,7 +407,15 @@ jobs: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6 with: - python-version: ${{ env.PYTHON_VERSION }} + # macOS runners have no manylinux image bundling every CPython, so + # each interpreter the Build wheel step targets below must be installed + # here first — otherwise maturin finds only the runner's default python + # and the wheel ships for that single version, the AAASM-4446 gap. + # Keep this list in lockstep with the --interpreter list below. + python-version: | + 3.12 + 3.13 + 3.14 - name: Stage aasm sidecar binary env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -452,7 +467,11 @@ jobs: with: target: aarch64-apple-darwin command: build - args: --release --out dist --interpreter ${{ env.PYTHON_VERSION }} + # See linux-x86_64 above: build one wheel per supported CPython so no + # supported interpreter falls back to the native-core-less sdist + # (AAASM-4446). Each X.Y here is provided by the multi-version + # setup-python step above (macOS has no manylinux image). + args: --release --out dist --interpreter 3.12 3.13 3.14 - name: Upload wheel artifact uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: @@ -467,7 +486,15 @@ jobs: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6 with: - python-version: ${{ env.PYTHON_VERSION }} + # macOS runners have no manylinux image bundling every CPython, so + # each interpreter the Build wheel step targets below must be installed + # here first — otherwise maturin finds only the runner's default python + # and the wheel ships for that single version, the AAASM-4446 gap. + # Keep this list in lockstep with the --interpreter list below. + python-version: | + 3.12 + 3.13 + 3.14 - name: Stage aasm sidecar binary env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -519,7 +546,11 @@ jobs: with: target: x86_64-apple-darwin command: build - args: --release --out dist --interpreter ${{ env.PYTHON_VERSION }} + # See linux-x86_64 above: build one wheel per supported CPython so no + # supported interpreter falls back to the native-core-less sdist + # (AAASM-4446). Each X.Y here is provided by the multi-version + # setup-python step above (macOS has no manylinux image). + args: --release --out dist --interpreter 3.12 3.13 3.14 - name: Upload wheel artifact uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: