From 67a24f4bd236a648a8c29edf376abe9509745900 Mon Sep 17 00:00:00 2001 From: Aqeel AlShafei Date: Tue, 24 Feb 2026 14:03:19 +0000 Subject: [PATCH 01/10] Update python.yml with latest version maturin action v5 from v4 --- .github/workflows/python.yml | 70 +++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 29 deletions(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 8d7a3c7..221ca34 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -1,9 +1,9 @@ -# This file is autogenerated by maturin v1.7.4 +# This file is autogenerated by maturin v1.12.0 # To update, run # # maturin generate-ci github --platform manylinux windows macos --zig -o ../.github/workflows/maturin.yml # -name: PyO3 build and publish to PyPi +name: CI on: push: @@ -40,8 +40,8 @@ jobs: - runner: ubuntu-latest target: ppc64le steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 with: python-version: 3.x - name: Build wheels @@ -52,37 +52,49 @@ jobs: sccache: 'true' manylinux: auto - name: Upload wheels - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: wheels-linux-${{ matrix.platform.target }} path: dist windows: runs-on: ${{ matrix.platform.runner }} - defaults: - run: - working-directory: ./pyreccaster strategy: matrix: platform: - runner: windows-latest target: x64 + python_arch: x64 - runner: windows-latest target: x86 + python_arch: x86 + - runner: windows-11-arm + target: aarch64 + python_arch: arm64 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 with: - python-version: 3.x - architecture: ${{ matrix.platform.target }} + python-version: 3.13 + architecture: ${{ matrix.platform.python_arch }} - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --manifest-path pyreccaster/Cargo.toml --release --out dist - sccache: 'true' + args: --release --out dist + sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} + - uses: actions/setup-python@v6 + with: + python-version: 3.14t + architecture: ${{ matrix.platform.python_arch }} + - name: Build free-threaded wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: --release --out dist -i python3.14t + sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - name: Upload wheels - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: wheels-windows-${{ matrix.platform.target }} path: dist @@ -97,11 +109,11 @@ jobs: platform: - runner: macos-latest target: x86_64 - - runner: macos-14 + - runner: macos-latest target: aarch64 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 with: python-version: 3.x - name: Build wheels @@ -111,7 +123,7 @@ jobs: args: --manifest-path pyreccaster/Cargo.toml --release --out dist sccache: 'true' - name: Upload wheels - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: wheels-macos-${{ matrix.platform.target }} path: dist @@ -122,14 +134,14 @@ jobs: run: working-directory: ./pyreccaster steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Build sdist uses: PyO3/maturin-action@v1 with: command: sdist args: --manifest-path pyreccaster/Cargo.toml --out dist - name: Upload sdist - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: wheels-sdist path: dist @@ -147,16 +159,16 @@ jobs: # Used to generate artifact attestation attestations: write steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v6 - name: Generate artifact attestation - uses: actions/attest-build-provenance@v1 + uses: actions/attest-build-provenance@v3 with: subject-path: 'wheels-*/*' + - name: Install uv + if: ${{ startsWith(github.ref, 'refs/tags/') }} + uses: astral-sh/setup-uv@v7 - name: Publish to PyPI - if: "startsWith(github.ref, 'refs/tags/')" - uses: PyO3/maturin-action@v1 + if: ${{ startsWith(github.ref, 'refs/tags/') }} + run: uv publish 'wheels-*/*' env: - MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} - with: - command: upload - args: --non-interactive --skip-existing wheels-*/* + UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }} From 6eeb38dfa4267508ffd0c5cb96b5b716103b38a1 Mon Sep 17 00:00:00 2001 From: Aqeel AlShafei Date: Wed, 25 Feb 2026 09:10:45 +0000 Subject: [PATCH 02/10] Fix windows python workflow target not finding pyreccaster --- .github/workflows/python.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 221ca34..4512d66 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -81,7 +81,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist + args: --manifest-path pyreccaster/Cargo.toml --release --out dist sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - uses: actions/setup-python@v6 with: From 9912907cf5fb3a5e84eb58811542e7ab1fa26a84 Mon Sep 17 00:00:00 2001 From: Aqeel AlShafei Date: Wed, 25 Feb 2026 10:10:12 +0000 Subject: [PATCH 03/10] Add missing pyreccaster path in python windows arm target workflow --- .github/workflows/python.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 4512d66..63d31be 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -91,7 +91,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist -i python3.14t + args: --manifest-path pyreccaster/Cargo.toml --release --out dist -i python3.14t sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - name: Upload wheels uses: actions/upload-artifact@v5 From 21c7d03dd3f9e4528357ba9f36aabc9559eb17e4 Mon Sep 17 00:00:00 2001 From: Aqeel AlShafei Date: Wed, 25 Feb 2026 13:32:16 +0000 Subject: [PATCH 04/10] Add workflow_dispatch rule to python workflow release step --- .github/workflows/python.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 63d31be..017d8d4 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -165,10 +165,10 @@ jobs: with: subject-path: 'wheels-*/*' - name: Install uv - if: ${{ startsWith(github.ref, 'refs/tags/') }} + if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }} uses: astral-sh/setup-uv@v7 - name: Publish to PyPI - if: ${{ startsWith(github.ref, 'refs/tags/') }} + if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }} run: uv publish 'wheels-*/*' env: UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }} From 9d813ba9482c44c564b496fe7abd6915329c4534 Mon Sep 17 00:00:00 2001 From: Aqeel AlShafei Date: Wed, 25 Feb 2026 14:56:46 +0000 Subject: [PATCH 05/10] Remove s390x linux python workflow target --- .github/workflows/python.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 017d8d4..859057d 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -35,8 +35,6 @@ jobs: target: aarch64 - runner: ubuntu-latest target: armv7 - - runner: ubuntu-latest - target: s390x - runner: ubuntu-latest target: ppc64le steps: From fa5fc8d7a67841647daebe3a8e3b0c13cc0a6b31 Mon Sep 17 00:00:00 2001 From: Aqeel AlShafei Date: Wed, 25 Feb 2026 16:41:28 +0000 Subject: [PATCH 06/10] Add pypi compatibility flag --- .github/workflows/python.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 859057d..063af39 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -37,6 +37,8 @@ jobs: target: armv7 - runner: ubuntu-latest target: ppc64le + - runner: ubuntu-latest + target: s390x steps: - uses: actions/checkout@v6 - uses: actions/setup-python@v6 @@ -46,7 +48,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --manifest-path pyreccaster/Cargo.toml --release --out dist --zig + args: --manifest-path pyreccaster/Cargo.toml --release --out dist --zig --compatibility pypi sccache: 'true' manylinux: auto - name: Upload wheels @@ -79,7 +81,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --manifest-path pyreccaster/Cargo.toml --release --out dist + args: --manifest-path pyreccaster/Cargo.toml --release --out dist --compatibility pypi sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - uses: actions/setup-python@v6 with: @@ -89,7 +91,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --manifest-path pyreccaster/Cargo.toml --release --out dist -i python3.14t + args: --manifest-path pyreccaster/Cargo.toml --release --out dist -i python3.14t --compatibility pypi sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - name: Upload wheels uses: actions/upload-artifact@v5 @@ -118,7 +120,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --manifest-path pyreccaster/Cargo.toml --release --out dist + args: --manifest-path pyreccaster/Cargo.toml --release --out dist --compatibility pypi sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@v5 @@ -137,7 +139,7 @@ jobs: uses: PyO3/maturin-action@v1 with: command: sdist - args: --manifest-path pyreccaster/Cargo.toml --out dist + args: --manifest-path pyreccaster/Cargo.toml --out dist --compatibility pypi - name: Upload sdist uses: actions/upload-artifact@v5 with: From 84935fe4773d0e7614a4cd95d24197d3d1e516fa Mon Sep 17 00:00:00 2001 From: Aqeel AlShafei Date: Wed, 25 Feb 2026 16:47:36 +0000 Subject: [PATCH 07/10] Fix sdis commmand by removing --compatibility flag --- .github/workflows/python.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 063af39..930493a 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -139,7 +139,7 @@ jobs: uses: PyO3/maturin-action@v1 with: command: sdist - args: --manifest-path pyreccaster/Cargo.toml --out dist --compatibility pypi + args: --manifest-path pyreccaster/Cargo.toml --out dist - name: Upload sdist uses: actions/upload-artifact@v5 with: From ac381159b647816fa0da46c36aa61b28e8b1f622 Mon Sep 17 00:00:00 2001 From: Aqeel AlShafei Date: Thu, 26 Feb 2026 12:12:43 +0000 Subject: [PATCH 08/10] Remove compatibility flag in the python windows target workflow --- .github/workflows/python.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 930493a..eae1675 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -81,7 +81,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --manifest-path pyreccaster/Cargo.toml --release --out dist --compatibility pypi + args: --manifest-path pyreccaster/Cargo.toml --release --out dist sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - uses: actions/setup-python@v6 with: @@ -91,7 +91,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --manifest-path pyreccaster/Cargo.toml --release --out dist -i python3.14t --compatibility pypi + args: --manifest-path pyreccaster/Cargo.toml --release --out dist -i python3.14t sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - name: Upload wheels uses: actions/upload-artifact@v5 From b06699bad481cb52c91a02ac47ad4ccd6569e02f Mon Sep 17 00:00:00 2001 From: Aqeel AlShafei Date: Thu, 26 Feb 2026 12:54:44 +0000 Subject: [PATCH 09/10] Change version for pypi to accept the whl file --- pyreccaster/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyreccaster/Cargo.toml b/pyreccaster/Cargo.toml index 71f71f1..ee7d373 100644 --- a/pyreccaster/Cargo.toml +++ b/pyreccaster/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyreccaster" -version = "0.1.0" +version = "0.1.1" edition = "2021" authors = ["Aqeel AlShafei "] license = "MIT AND BSD-3-Clause" From 78399bf3773783038979c5266449311b62a65a78 Mon Sep 17 00:00:00 2001 From: Sky Brewer Date: Thu, 26 Feb 2026 13:34:48 +0000 Subject: [PATCH 10/10] fix pre-commit --- Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 1670c8b..dfc91c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -428,7 +428,7 @@ dependencies = [ [[package]] name = "pyreccaster" -version = "0.1.0" +version = "0.1.1" dependencies = [ "pyo3", "pyo3-async-runtimes",