From 073c656403c4f5057c6fd0ea15e928d4cd4b9873 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 08:35:19 -0300 Subject: [PATCH 01/55] Update maturin_upload_pypi.yml --- .github/workflows/maturin_upload_pypi.yml | 111 ++++++++++++---------- 1 file changed, 59 insertions(+), 52 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index a9f0587..cd360f3 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -1,4 +1,4 @@ -# This file is autogenerated by maturin v1.9.6 +# This file is autogenerated by maturin v1.11.4 # To update, run # # maturin generate-ci github @@ -35,20 +35,20 @@ jobs: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: | - 3.8 - 3.14 - 3.x - pypy3.8 - pypy3.9 - pypy3.10 - pypy3.11 + python-version: 3.x - name: Build wheels uses: PyO3/maturin-action@v1 - env: - PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist --find-interpreter + args: --release --out ../dist + sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} + manylinux: auto + working-directory: lib/ + - 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/') }} manylinux: auto working-directory: lib/ @@ -76,20 +76,20 @@ jobs: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: | - 3.8 - 3.14 - 3.x - pypy3.8 - pypy3.9 - pypy3.10 - pypy3.11 + python-version: 3.x - name: Build wheels uses: PyO3/maturin-action@v1 - env: - PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist --find-interpreter + args: --release --out ../dist + sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} + manylinux: musllinux_1_2 + working-directory: lib/ + - 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/') }} manylinux: musllinux_1_2 working-directory: lib/ @@ -107,26 +107,35 @@ jobs: 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@main - uses: actions/setup-python@v6 with: - # We can't use pypy3.8 nor pypy3.11 in CI - python-version: | - 3.8 - 3.14 - 3.x - pypy3.9 - pypy3.10 - architecture: ${{ matrix.platform.target }} + python-version: 3.13 + architecture: ${{ matrix.platform.python_arch }} - name: Build wheels uses: PyO3/maturin-action@v1 - env: - PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist --find-interpreter + args: --release --out ../dist + sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} + working-directory: lib/ + - 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/') }} working-directory: lib/ - name: Upload wheels @@ -143,26 +152,25 @@ jobs: platform: - runner: macos-15-intel target: x86_64 - - runner: macos-14 + - runner: macos-latest target: aarch64 steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - # We can't use pypy3.8 in CI - python-version: | - 3.8 - 3.14 - 3.x - pypy3.9 - pypy3.10 - pypy3.11 + python-version: 3.x - name: Build wheels uses: PyO3/maturin-action@v1 - env: - PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist --find-interpreter + args: --release --out ../dist + sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} + working-directory: lib/ + - 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/') }} working-directory: lib/ - name: Upload wheels @@ -178,8 +186,6 @@ jobs: - uses: actions/checkout@main - name: Build sdist uses: PyO3/maturin-action@v1 - env: - PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1 with: command: sdist args: --out ../dist @@ -223,17 +229,18 @@ 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@v2 + uses: actions/attest-build-provenance@v3 with: subject-path: 'wheels-*/*' + - name: Install uv + uses: astral-sh/setup-uv@v7 + - name: Publish to PyPI (dry-run) + if: ${{ !startsWith(github.ref, 'refs/tags/') }} + run: uv publish 'wheels-*/*' --dry-run - name: Publish to PyPI if: ${{ startsWith(github.ref, 'refs/tags/') }} - uses: PyO3/maturin-action@v1 + run: uv publish 'wheels-*/*' env: - PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1 - MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_PASSWORD }} - with: - command: upload - args: --non-interactive --skip-existing wheels-*/* + UV_PUBLISH_TOKEN: ${{ secrets.PYPI_PASSWORD }} From 02cc5d261c6334b3102951a8396316359ed4d056 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 08:51:40 -0300 Subject: [PATCH 02/55] Add --find-interpreter to linux to try to fix ci --- .github/workflows/maturin_upload_pypi.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index cd360f3..3bec4e3 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -40,7 +40,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist + args: --release --out ../dist --find-interpreter sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} manylinux: auto working-directory: lib/ @@ -81,7 +81,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist + args: --release --out ../dist --find-interpreter sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} manylinux: musllinux_1_2 working-directory: lib/ From b9dc0924f36274615e977a6a3dfa17ad08cd5d29 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 14:04:17 -0300 Subject: [PATCH 03/55] Check wheels are installable in older python versions in CI --- .github/workflows/maturin_upload_pypi.yml | 44 +++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 3bec4e3..067ad1b 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -59,6 +59,17 @@ jobs: path: dist if-no-files-found: error + - name: Install uv + uses: astral-sh/setup-uv@v7 + - name: Test wheels + # Check the built wheel is installable on the oldest Python supported + run: + find -name "./dist/crunch64-*-abi3-*" + uv venv --no-project-p 3.8 + source .venv/bin/activate + uv pip install $(find -name "./dist/crunch64-*-abi3-*") + uvx python -c "import crunch64; print(crunch64.__version__)" + musllinux: runs-on: ${{ matrix.platform.runner }} strategy: @@ -100,6 +111,17 @@ jobs: path: dist if-no-files-found: error + - name: Install uv + uses: astral-sh/setup-uv@v7 + - name: Test wheels + # Check the built wheel is installable on the oldest Python supported + run: + find -name "./dist/crunch64-*-abi3-*" + uv venv --no-project-p 3.8 + source .venv/bin/activate + uv pip install $(find -name "./dist/crunch64-*-abi3-*") + uvx python -c "import crunch64; print(crunch64.__version__)" + windows: runs-on: ${{ matrix.platform.runner }} strategy: @@ -145,6 +167,17 @@ jobs: path: dist if-no-files-found: error + - name: Install uv + uses: astral-sh/setup-uv@v7 + - name: Test wheels + # Check the built wheel is installable on the oldest Python supported + run: + find -name "./dist/crunch64-*-abi3-*" + uv venv --no-project-p 3.8 + source .venv/Scripts/Activate.ps1 + uv pip install $(find -name "./dist/crunch64-*-abi3-*") + uvx python -c "import crunch64; print(crunch64.__version__)" + macos: runs-on: ${{ matrix.platform.runner }} strategy: @@ -180,6 +213,17 @@ jobs: path: dist if-no-files-found: error + - name: Install uv + uses: astral-sh/setup-uv@v7 + - name: Test wheels + # Check the built wheel is installable on the oldest Python supported + run: + find -name "./dist/crunch64-*-abi3-*" + uv venv --no-project-p 3.8 + source .venv/bin/activate + uv pip install $(find -name "./dist/crunch64-*-abi3-*") + uvx python -c "import crunch64; print(crunch64.__version__)" + sdist: runs-on: ubuntu-latest steps: From 537d100e41103b3664a8a3f3d5ceb4575cc178f4 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 14:10:50 -0300 Subject: [PATCH 04/55] fix, hopefully --- .github/workflows/maturin_upload_pypi.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 067ad1b..2a09880 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -63,7 +63,7 @@ jobs: uses: astral-sh/setup-uv@v7 - name: Test wheels # Check the built wheel is installable on the oldest Python supported - run: + run: | find -name "./dist/crunch64-*-abi3-*" uv venv --no-project-p 3.8 source .venv/bin/activate @@ -115,7 +115,7 @@ jobs: uses: astral-sh/setup-uv@v7 - name: Test wheels # Check the built wheel is installable on the oldest Python supported - run: + run: | find -name "./dist/crunch64-*-abi3-*" uv venv --no-project-p 3.8 source .venv/bin/activate @@ -171,7 +171,7 @@ jobs: uses: astral-sh/setup-uv@v7 - name: Test wheels # Check the built wheel is installable on the oldest Python supported - run: + run: | find -name "./dist/crunch64-*-abi3-*" uv venv --no-project-p 3.8 source .venv/Scripts/Activate.ps1 @@ -217,7 +217,7 @@ jobs: uses: astral-sh/setup-uv@v7 - name: Test wheels # Check the built wheel is installable on the oldest Python supported - run: + run: | find -name "./dist/crunch64-*-abi3-*" uv venv --no-project-p 3.8 source .venv/bin/activate From 8977da6351cc6a90f41fa9356f386ab4f30d2bcd Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 15:12:49 -0300 Subject: [PATCH 05/55] whoops --- .github/workflows/maturin_upload_pypi.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 2a09880..4778a24 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -65,7 +65,7 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | find -name "./dist/crunch64-*-abi3-*" - uv venv --no-project-p 3.8 + uv venv --no-project -p 3.8 source .venv/bin/activate uv pip install $(find -name "./dist/crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" @@ -117,7 +117,7 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | find -name "./dist/crunch64-*-abi3-*" - uv venv --no-project-p 3.8 + uv venv --no-project -p 3.8 source .venv/bin/activate uv pip install $(find -name "./dist/crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" @@ -173,7 +173,7 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | find -name "./dist/crunch64-*-abi3-*" - uv venv --no-project-p 3.8 + uv venv --no-project -p 3.8 source .venv/Scripts/Activate.ps1 uv pip install $(find -name "./dist/crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" @@ -219,7 +219,7 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | find -name "./dist/crunch64-*-abi3-*" - uv venv --no-project-p 3.8 + uv venv --no-project -p 3.8 source .venv/bin/activate uv pip install $(find -name "./dist/crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" From 4a8e8530bd59ec322c0594bf792f38ddeda7136a Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 15:27:04 -0300 Subject: [PATCH 06/55] bleh --- .github/workflows/maturin_upload_pypi.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 4778a24..bb6190f 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -65,7 +65,7 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | find -name "./dist/crunch64-*-abi3-*" - uv venv --no-project -p 3.8 + uv venv -p 3.8 source .venv/bin/activate uv pip install $(find -name "./dist/crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" @@ -117,7 +117,7 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | find -name "./dist/crunch64-*-abi3-*" - uv venv --no-project -p 3.8 + uv venv -p 3.8 source .venv/bin/activate uv pip install $(find -name "./dist/crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" @@ -173,7 +173,7 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | find -name "./dist/crunch64-*-abi3-*" - uv venv --no-project -p 3.8 + uv venv -p 3.8 source .venv/Scripts/Activate.ps1 uv pip install $(find -name "./dist/crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" @@ -219,7 +219,7 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | find -name "./dist/crunch64-*-abi3-*" - uv venv --no-project -p 3.8 + uv venv -p 3.8 source .venv/bin/activate uv pip install $(find -name "./dist/crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" From f9e619fb78d5f09c105afda35d63c9d2faa30c50 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 21:40:03 -0300 Subject: [PATCH 07/55] testing --- .github/workflows/maturin_upload_pypi.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index bb6190f..52580a5 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -215,10 +215,14 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v7 + - name: Print + run: | + find -name "./dist/crunch64-*-abi3-*" - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | find -name "./dist/crunch64-*-abi3-*" + tree ./dist uv venv -p 3.8 source .venv/bin/activate uv pip install $(find -name "./dist/crunch64-*-abi3-*") From 4ca364e5f3f542d8895704b477b61ca43971c15c Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 21:43:47 -0300 Subject: [PATCH 08/55] bruh --- .github/workflows/maturin_upload_pypi.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 52580a5..73b733d 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -61,6 +61,9 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v7 + - name: Print + run: | + find -name "./dist/crunch64-*-abi3-*" - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | From 976615c1f70509b81b8d5885ec7a7f847b865843 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 21:47:17 -0300 Subject: [PATCH 09/55] print2 --- .github/workflows/maturin_upload_pypi.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 73b733d..09a1225 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -64,6 +64,9 @@ jobs: - name: Print run: | find -name "./dist/crunch64-*-abi3-*" + - name: Print 2 + run: | + tree "./dist/" - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | From 67b8b073d78b2257665583dc31bed20a4a4e160c Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 22:13:36 -0300 Subject: [PATCH 10/55] change order of flags --- .github/workflows/maturin_upload_pypi.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 09a1225..7b7de8a 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -63,17 +63,17 @@ jobs: uses: astral-sh/setup-uv@v7 - name: Print run: | - find -name "./dist/crunch64-*-abi3-*" + find "./dist/crunch64-*-abi3-*" -wholename - name: Print 2 run: | tree "./dist/" - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | - find -name "./dist/crunch64-*-abi3-*" + find "./dist/crunch64-*-abi3-*" -wholename uv venv -p 3.8 source .venv/bin/activate - uv pip install $(find -name "./dist/crunch64-*-abi3-*") + uv pip install $(find "./dist/crunch64-*-abi3-*" -wholename) uvx python -c "import crunch64; print(crunch64.__version__)" musllinux: @@ -122,10 +122,10 @@ jobs: - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | - find -name "./dist/crunch64-*-abi3-*" + find "./dist/crunch64-*-abi3-*" -wholename uv venv -p 3.8 source .venv/bin/activate - uv pip install $(find -name "./dist/crunch64-*-abi3-*") + uv pip install $(find "./dist/crunch64-*-abi3-*" -wholename) uvx python -c "import crunch64; print(crunch64.__version__)" windows: @@ -178,10 +178,10 @@ jobs: - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | - find -name "./dist/crunch64-*-abi3-*" + find "./dist/crunch64-*-abi3-*" -wholename uv venv -p 3.8 source .venv/Scripts/Activate.ps1 - uv pip install $(find -name "./dist/crunch64-*-abi3-*") + uv pip install $(find "./dist/crunch64-*-abi3-*" -wholename) uvx python -c "import crunch64; print(crunch64.__version__)" macos: @@ -223,15 +223,15 @@ jobs: uses: astral-sh/setup-uv@v7 - name: Print run: | - find -name "./dist/crunch64-*-abi3-*" + find "./dist/crunch64-*-abi3-*" -wholename - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | - find -name "./dist/crunch64-*-abi3-*" + find "./dist/crunch64-*-abi3-*" -wholename tree ./dist uv venv -p 3.8 source .venv/bin/activate - uv pip install $(find -name "./dist/crunch64-*-abi3-*") + uv pip install $(find "./dist/crunch64-*-abi3-*" -wholename) uvx python -c "import crunch64; print(crunch64.__version__)" sdist: From c9d93a4920f3b6f00a4cd0fe93c276d4843300ad Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 22:16:28 -0300 Subject: [PATCH 11/55] more stuff --- .github/workflows/maturin_upload_pypi.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 7b7de8a..acdd333 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -63,17 +63,17 @@ jobs: uses: astral-sh/setup-uv@v7 - name: Print run: | - find "./dist/crunch64-*-abi3-*" -wholename + find ./dist/ -wholename "crunch64-*-abi3-*" - name: Print 2 run: | tree "./dist/" - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | - find "./dist/crunch64-*-abi3-*" -wholename + find ./dist/ -wholename "crunch64-*-abi3-*" uv venv -p 3.8 source .venv/bin/activate - uv pip install $(find "./dist/crunch64-*-abi3-*" -wholename) + uv pip install $(find ./dist/ -wholename "crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" musllinux: @@ -122,10 +122,10 @@ jobs: - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | - find "./dist/crunch64-*-abi3-*" -wholename + find ./dist/ -wholename "crunch64-*-abi3-*" uv venv -p 3.8 source .venv/bin/activate - uv pip install $(find "./dist/crunch64-*-abi3-*" -wholename) + uv pip install $(find ./dist/ -wholename "crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" windows: @@ -178,10 +178,10 @@ jobs: - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | - find "./dist/crunch64-*-abi3-*" -wholename + find ./dist/ -wholename "crunch64-*-abi3-*" uv venv -p 3.8 source .venv/Scripts/Activate.ps1 - uv pip install $(find "./dist/crunch64-*-abi3-*" -wholename) + uv pip install $(find ./dist/ -wholename "crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" macos: @@ -223,15 +223,15 @@ jobs: uses: astral-sh/setup-uv@v7 - name: Print run: | - find "./dist/crunch64-*-abi3-*" -wholename + find ./dist/ -wholename "crunch64-*-abi3-*" - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | - find "./dist/crunch64-*-abi3-*" -wholename + find ./dist/ -wholename "crunch64-*-abi3-*" tree ./dist uv venv -p 3.8 source .venv/bin/activate - uv pip install $(find "./dist/crunch64-*-abi3-*" -wholename) + uv pip install $(find ./dist/ -wholename "crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" sdist: From b089696766558c84b1ebf9a8f30b4e39b7d1ac18 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 22:20:43 -0300 Subject: [PATCH 12/55] ??? --- .github/workflows/maturin_upload_pypi.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index acdd333..965cd5b 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -63,17 +63,17 @@ jobs: uses: astral-sh/setup-uv@v7 - name: Print run: | - find ./dist/ -wholename "crunch64-*-abi3-*" + find ./dist/ -name "crunch64-*-abi3-*" - name: Print 2 run: | tree "./dist/" - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | - find ./dist/ -wholename "crunch64-*-abi3-*" + find ./dist/ -name "crunch64-*-abi3-*" uv venv -p 3.8 source .venv/bin/activate - uv pip install $(find ./dist/ -wholename "crunch64-*-abi3-*") + uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" musllinux: @@ -122,10 +122,10 @@ jobs: - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | - find ./dist/ -wholename "crunch64-*-abi3-*" + find ./dist/ -name "crunch64-*-abi3-*" uv venv -p 3.8 source .venv/bin/activate - uv pip install $(find ./dist/ -wholename "crunch64-*-abi3-*") + uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" windows: @@ -178,10 +178,10 @@ jobs: - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | - find ./dist/ -wholename "crunch64-*-abi3-*" + find ./dist/ -name "crunch64-*-abi3-*" uv venv -p 3.8 source .venv/Scripts/Activate.ps1 - uv pip install $(find ./dist/ -wholename "crunch64-*-abi3-*") + uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" macos: @@ -223,15 +223,15 @@ jobs: uses: astral-sh/setup-uv@v7 - name: Print run: | - find ./dist/ -wholename "crunch64-*-abi3-*" + find ./dist/ -name "crunch64-*-abi3-*" - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | - find ./dist/ -wholename "crunch64-*-abi3-*" + find ./dist/ -name "crunch64-*-abi3-*" tree ./dist uv venv -p 3.8 source .venv/bin/activate - uv pip install $(find ./dist/ -wholename "crunch64-*-abi3-*") + uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") uvx python -c "import crunch64; print(crunch64.__version__)" sdist: From 7cda093e8be190b0ecac1fca3cc865d518cc0596 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 22:29:05 -0300 Subject: [PATCH 13/55] =?UTF-8?q?=C2=BF=C2=BF=C2=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/maturin_upload_pypi.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 965cd5b..4e61129 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -69,6 +69,7 @@ jobs: tree "./dist/" - name: Test wheels # Check the built wheel is installable on the oldest Python supported + if: ${{ matrix.platform.target == "x86_64" }} run: | find ./dist/ -name "crunch64-*-abi3-*" uv venv -p 3.8 From ec35ef569604fb7bcc25eda6f3c66148410a5261 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 22:30:01 -0300 Subject: [PATCH 14/55] ''''' --- .github/workflows/maturin_upload_pypi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 4e61129..b624c66 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -69,7 +69,7 @@ jobs: tree "./dist/" - name: Test wheels # Check the built wheel is installable on the oldest Python supported - if: ${{ matrix.platform.target == "x86_64" }} + if: ${{ matrix.platform.target }} == "x86_64" run: | find ./dist/ -name "crunch64-*-abi3-*" uv venv -p 3.8 From d98136cb5e60a0c15a13d37ec04d0b1789b9e006 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 22:41:00 -0300 Subject: [PATCH 15/55] maybe this could work? --- .github/workflows/maturin_upload_pypi.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index b624c66..2dbddee 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -75,7 +75,7 @@ jobs: uv venv -p 3.8 source .venv/bin/activate uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") - uvx python -c "import crunch64; print(crunch64.__version__)" + uv run python -c "import crunch64; print(crunch64.__version__)" musllinux: runs-on: ${{ matrix.platform.runner }} @@ -127,7 +127,7 @@ jobs: uv venv -p 3.8 source .venv/bin/activate uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") - uvx python -c "import crunch64; print(crunch64.__version__)" + uv run python -c "import crunch64; print(crunch64.__version__)" windows: runs-on: ${{ matrix.platform.runner }} @@ -183,7 +183,7 @@ jobs: uv venv -p 3.8 source .venv/Scripts/Activate.ps1 uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") - uvx python -c "import crunch64; print(crunch64.__version__)" + uv run python -c "import crunch64; print(crunch64.__version__)" macos: runs-on: ${{ matrix.platform.runner }} @@ -229,11 +229,10 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | find ./dist/ -name "crunch64-*-abi3-*" - tree ./dist uv venv -p 3.8 source .venv/bin/activate uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") - uvx python -c "import crunch64; print(crunch64.__version__)" + uv run python -c "import crunch64; print(crunch64.__version__)" sdist: runs-on: ubuntu-latest From 18fe3f9f2943d2435e808e26c21b5519c593438e Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 22:48:40 -0300 Subject: [PATCH 16/55] fix check --- .github/workflows/maturin_upload_pypi.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 2dbddee..de1cb17 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -69,7 +69,7 @@ jobs: tree "./dist/" - name: Test wheels # Check the built wheel is installable on the oldest Python supported - if: ${{ matrix.platform.target }} == "x86_64" + if: ${{ matrix.platform.target == 'x86_64' }} run: | find ./dist/ -name "crunch64-*-abi3-*" uv venv -p 3.8 @@ -122,6 +122,7 @@ jobs: uses: astral-sh/setup-uv@v7 - name: Test wheels # Check the built wheel is installable on the oldest Python supported + if: ${{ matrix.platform.target == 'x86_64' }} run: | find ./dist/ -name "crunch64-*-abi3-*" uv venv -p 3.8 From ab271b6a076c9da585287da80d4f3d1de9d3e279 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 22:56:42 -0300 Subject: [PATCH 17/55] do no test on musllinux and try to fix macos and windows --- .github/workflows/maturin_upload_pypi.yml | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index de1cb17..4221014 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -118,17 +118,7 @@ jobs: path: dist if-no-files-found: error - - name: Install uv - uses: astral-sh/setup-uv@v7 - - name: Test wheels - # Check the built wheel is installable on the oldest Python supported - if: ${{ matrix.platform.target == 'x86_64' }} - run: | - find ./dist/ -name "crunch64-*-abi3-*" - uv venv -p 3.8 - source .venv/bin/activate - uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") - uv run python -c "import crunch64; print(crunch64.__version__)" + # We can't test musllinux wheels on manylinux runners windows: runs-on: ${{ matrix.platform.runner }} @@ -182,7 +172,7 @@ jobs: run: | find ./dist/ -name "crunch64-*-abi3-*" uv venv -p 3.8 - source .venv/Scripts/Activate.ps1 + .venv/Scripts/Activate.ps1 uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" @@ -204,7 +194,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist + args: --release --out ../dist --find-interpreter sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} working-directory: lib/ - name: Build free-threaded wheels From 051a963ac646f4fc433d55fa30013d4336a5e9e4 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 23:08:26 -0300 Subject: [PATCH 18/55] Fix find command on windows and try to fix macos again --- .github/workflows/maturin_upload_pypi.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 4221014..33fabfd 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -138,7 +138,7 @@ jobs: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: 3.13 + python-version: 3.8 architecture: ${{ matrix.platform.python_arch }} - name: Build wheels uses: PyO3/maturin-action@v1 @@ -170,10 +170,10 @@ jobs: - name: Test wheels # Check the built wheel is installable on the oldest Python supported run: | - find ./dist/ -name "crunch64-*-abi3-*" + Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" uv venv -p 3.8 .venv/Scripts/Activate.ps1 - uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") + uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" macos: @@ -189,7 +189,7 @@ jobs: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: 3.x + python-version: 3.8 - name: Build wheels uses: PyO3/maturin-action@v1 with: From 941f48e77eb06f99d9b86ba382eedbcf8a7f8d42 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 23:11:48 -0300 Subject: [PATCH 19/55] version --- .github/workflows/maturin_upload_pypi.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 33fabfd..a29237e 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -128,17 +128,20 @@ jobs: - runner: windows-latest target: x64 python_arch: x64 + python_version: 3.8 - runner: windows-latest target: x86 python_arch: x86 + python_version: 3.8 - runner: windows-11-arm target: aarch64 python_arch: arm64 + python_version: 3.9 steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: 3.8 + python-version: ${{ matrix.platform.python_version }} architecture: ${{ matrix.platform.python_arch }} - name: Build wheels uses: PyO3/maturin-action@v1 From 972e12f20fc3cd0411c428cf7cff62439a681e78 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 23:19:28 -0300 Subject: [PATCH 20/55] a --- .github/workflows/maturin_upload_pypi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index a29237e..112a842 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -136,7 +136,7 @@ jobs: - runner: windows-11-arm target: aarch64 python_arch: arm64 - python_version: 3.9 + python_version: 3.10 steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 From dfad07a35a855e94ecef26e04cef28659d918fda Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 23:21:13 -0300 Subject: [PATCH 21/55] silly yaml --- .github/workflows/maturin_upload_pypi.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 112a842..16d9843 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -128,15 +128,15 @@ jobs: - runner: windows-latest target: x64 python_arch: x64 - python_version: 3.8 + python_version: '3.8' - runner: windows-latest target: x86 python_arch: x86 - python_version: 3.8 + python_version: '3.8' - runner: windows-11-arm target: aarch64 python_arch: arm64 - python_version: 3.10 + python_version: '3.10' steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 From 97639e478fcc07cee009b9b40b24a9405bda9a70 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 23:22:05 -0300 Subject: [PATCH 22/55] 3.11 --- .github/workflows/maturin_upload_pypi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 16d9843..4282d6c 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -136,7 +136,7 @@ jobs: - runner: windows-11-arm target: aarch64 python_arch: arm64 - python_version: '3.10' + python_version: '3.11' steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 From 1f06da2fd7e07cd0261247a340fe4a383fc37d5f Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 9 Jan 2026 23:29:32 -0300 Subject: [PATCH 23/55] windows arm sillines --- .github/workflows/maturin_upload_pypi.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 4282d6c..be7617c 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -128,20 +128,20 @@ jobs: - runner: windows-latest target: x64 python_arch: x64 - python_version: '3.8' + python_version_min: '3.8' - runner: windows-latest target: x86 python_arch: x86 - python_version: '3.8' + python_version_min: '3.8' - runner: windows-11-arm target: aarch64 python_arch: arm64 - python_version: '3.11' + python_version_min: '3.11' steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: ${{ matrix.platform.python_version }} + python-version: ${{ matrix.platform.python_version_min }} architecture: ${{ matrix.platform.python_arch }} - name: Build wheels uses: PyO3/maturin-action@v1 @@ -174,7 +174,7 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" - uv venv -p 3.8 + uv venv -p ${{ matrix.platform.python_arch }} .venv/Scripts/Activate.ps1 uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" From e55efdf2799d3789cfed7a0b43121d747cfc7e9f Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 08:20:30 -0300 Subject: [PATCH 24/55] only check x64 windows builds --- .github/workflows/maturin_upload_pypi.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index be7617c..9a1e427 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -68,8 +68,8 @@ jobs: run: | tree "./dist/" - name: Test wheels - # Check the built wheel is installable on the oldest Python supported if: ${{ matrix.platform.target == 'x86_64' }} + # Check the built wheel is installable on the oldest Python supported run: | find ./dist/ -name "crunch64-*-abi3-*" uv venv -p 3.8 @@ -171,6 +171,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v7 - name: Test wheels + if: ${{ matrix.platform.target == 'x64' }} # Check the built wheel is installable on the oldest Python supported run: | Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" From 9952592fc2cf74c05e387fa74061308edc6a656f Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 08:26:11 -0300 Subject: [PATCH 25/55] typo --- .github/workflows/maturin_upload_pypi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 9a1e427..b6655ec 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -175,7 +175,7 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" - uv venv -p ${{ matrix.platform.python_arch }} + uv venv -p ${{ matrix.platform.python_version_min }} .venv/Scripts/Activate.ps1 uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" From f6b0a343ebfb91d6c0de2bb972937c93dc724d11 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 09:13:28 -0300 Subject: [PATCH 26/55] Be explicit about minimal version also test the same wheel works with the latest version lower min version to 3.7 --- .github/workflows/maturin_upload_pypi.yml | 79 ++++++++++++++++++----- 1 file changed, 64 insertions(+), 15 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index b6655ec..5bd9b44 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -17,25 +17,38 @@ jobs: linux: runs-on: ${{ matrix.platform.runner }} strategy: + fail-fast: false matrix: platform: - runner: ubuntu-22.04 target: x86_64 + python_version_min: '3.7' + python_version_max: '3.14' - runner: ubuntu-22.04 target: x86 + python_version_min: '3.7' + python_version_max: '3.14' - runner: ubuntu-22.04 target: aarch64 + python_version_min: '3.7' + python_version_max: '3.14' - runner: ubuntu-22.04 target: armv7 + python_version_min: '3.7' + python_version_max: '3.14' - runner: ubuntu-22.04 target: s390x + python_version_min: '3.7' + python_version_max: '3.14' - runner: ubuntu-22.04 target: ppc64le + python_version_min: '3.7' + python_version_max: '3.14' steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: 3.x + python-version: ${{ matrix.platform.python_version_min }} - name: Build wheels uses: PyO3/maturin-action@v1 with: @@ -61,18 +74,22 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v7 - - name: Print + - name: Test wheels with min version (${{ matrix.platform.python_version_min }}) + if: ${{ matrix.platform.target == 'x86_64' }} + # Check the built wheel is installable on the oldest Python supported run: | find ./dist/ -name "crunch64-*-abi3-*" - - name: Print 2 - run: | - tree "./dist/" - - name: Test wheels + uv venv -p ${{ matrix.platform.python_version_min }} + source .venv/bin/activate + uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") + uv run python -c "import crunch64; print(crunch64.__version__)" + - name: Test wheels with max version (${{ matrix.platform.python_version_max }}) if: ${{ matrix.platform.target == 'x86_64' }} # Check the built wheel is installable on the oldest Python supported run: | find ./dist/ -name "crunch64-*-abi3-*" - uv venv -p 3.8 + rm -rf .venv + uv venv .venv -p ${{ matrix.platform.python_version_max }} source .venv/bin/activate uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" @@ -80,21 +97,26 @@ jobs: musllinux: runs-on: ${{ matrix.platform.runner }} strategy: + fail-fast: false matrix: platform: - runner: ubuntu-22.04 target: x86_64 + python_version_min: '3.7' - runner: ubuntu-22.04 target: x86 + python_version_min: '3.7' - runner: ubuntu-22.04 target: aarch64 + python_version_min: '3.7' - runner: ubuntu-22.04 target: armv7 + python_version_min: '3.7' steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: 3.x + python-version: ${{ matrix.platform.python_version_min }} - name: Build wheels uses: PyO3/maturin-action@v1 with: @@ -123,20 +145,24 @@ jobs: windows: runs-on: ${{ matrix.platform.runner }} strategy: + fail-fast: false matrix: platform: - runner: windows-latest target: x64 python_arch: x64 - python_version_min: '3.8' + python_version_min: '3.7' + python_version_max: '3.14' - runner: windows-latest target: x86 python_arch: x86 - python_version_min: '3.8' + python_version_min: '3.7' + python_version_max: '3.14' - runner: windows-11-arm target: aarch64 python_arch: arm64 python_version_min: '3.11' + python_version_max: '3.14' steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 @@ -170,30 +196,46 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v7 - - name: Test wheels + - name: Test wheels with min version (${{ matrix.platform.python_version_min }}) if: ${{ matrix.platform.target == 'x64' }} # Check the built wheel is installable on the oldest Python supported run: | Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" uv venv -p ${{ matrix.platform.python_version_min }} .venv/Scripts/Activate.ps1 + uv run python --version + uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") + uv run python -c "import crunch64; print(crunch64.__version__)" + - name: Test wheels with max version (${{ matrix.platform.python_version_max }}) + if: ${{ matrix.platform.target == 'x64' }} + run: | + Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" + rm -rf .venv + uv venv .venv -p ${{ matrix.platform.python_version_max }} + .venv/Scripts/Activate.ps1 + uv run python --version uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" macos: runs-on: ${{ matrix.platform.runner }} strategy: + fail-fast: false matrix: platform: - runner: macos-15-intel target: x86_64 + python_version_min: '3.7' + python_version_max: '3.14' - runner: macos-latest target: aarch64 + python_version_min: '3.7' + python_version_max: '3.14' steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: 3.8 + python-version: ${{ matrix.platform.python_version_min }} - name: Build wheels uses: PyO3/maturin-action@v1 with: @@ -217,15 +259,22 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v7 - - name: Print + - name: Test wheels with min version (${{ matrix.platform.python_version_min }}) + # Check the built wheel is installable on the oldest Python supported run: | find ./dist/ -name "crunch64-*-abi3-*" - - name: Test wheels + uv venv -p ${{ matrix.platform.python_version_min }} + source .venv/bin/activate + uv run python --version + uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") + uv run python -c "import crunch64; print(crunch64.__version__)" + - name: Test wheels with max version (${{ matrix.platform.python_version_max }}) # Check the built wheel is installable on the oldest Python supported run: | find ./dist/ -name "crunch64-*-abi3-*" - uv venv -p 3.8 + uv venv .venv -p ${{ matrix.platform.python_version_max }} source .venv/bin/activate + uv run python --version uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" From a73863d6c93df1bfd9c88bf7d0fe028f678c7283 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 09:28:22 -0300 Subject: [PATCH 27/55] More version tweaking and try to fix linux again --- .github/workflows/maturin_upload_pypi.yml | 47 +++++++++++++++-------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 5bd9b44..284b371 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -22,27 +22,27 @@ jobs: platform: - runner: ubuntu-22.04 target: x86_64 - python_version_min: '3.7' + python_version_min: '3.0' python_version_max: '3.14' - runner: ubuntu-22.04 target: x86 - python_version_min: '3.7' + python_version_min: '3.0' python_version_max: '3.14' - runner: ubuntu-22.04 target: aarch64 - python_version_min: '3.7' + python_version_min: '3.0' python_version_max: '3.14' - runner: ubuntu-22.04 target: armv7 - python_version_min: '3.7' + python_version_min: '3.0' python_version_max: '3.14' - runner: ubuntu-22.04 target: s390x - python_version_min: '3.7' + python_version_min: '3.0' python_version_max: '3.14' - runner: ubuntu-22.04 target: ppc64le - python_version_min: '3.7' + python_version_min: '3.0' python_version_max: '3.14' steps: - uses: actions/checkout@main @@ -51,9 +51,12 @@ jobs: python-version: ${{ matrix.platform.python_version_min }} - name: Build wheels uses: PyO3/maturin-action@v1 + # There's some silly behavior on linux runs of maturin-action and the + # python version. Because of it we need to be explicit about the python + # version we want, while we don't need this on macos nor windows with: target: ${{ matrix.platform.target }} - args: --release --out ../dist --find-interpreter + args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} manylinux: auto working-directory: lib/ @@ -72,6 +75,16 @@ jobs: path: dist if-no-files-found: error + # Test the built wheels are installable in the min and max Python + # versions we are about. + # We do this by installing the Python version in a venv using uv, + # installing the built wheel into the venv and running some simple + # command like printing the crunch64 version from within Python. + # We need to do a not-great `find` command to find the wheel because + # we don't know the specific name of the wheel file (it can be affected + # by package version, arch, etc). + # We can only test the wheels that matches the architecture of the runner + # so we hope the other built wheels will just work, hopefully. - name: Install uv uses: astral-sh/setup-uv@v7 - name: Test wheels with min version (${{ matrix.platform.python_version_min }}) @@ -102,16 +115,16 @@ jobs: platform: - runner: ubuntu-22.04 target: x86_64 - python_version_min: '3.7' + python_version_min: '3.0' - runner: ubuntu-22.04 target: x86 - python_version_min: '3.7' + python_version_min: '3.0' - runner: ubuntu-22.04 target: aarch64 - python_version_min: '3.7' + python_version_min: '3.0' - runner: ubuntu-22.04 target: armv7 - python_version_min: '3.7' + python_version_min: '3.0' steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 @@ -121,7 +134,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist --find-interpreter + args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} manylinux: musllinux_1_2 working-directory: lib/ @@ -151,12 +164,12 @@ jobs: - runner: windows-latest target: x64 python_arch: x64 - python_version_min: '3.7' + python_version_min: '3.0' python_version_max: '3.14' - runner: windows-latest target: x86 python_arch: x86 - python_version_min: '3.7' + python_version_min: '3.0' python_version_max: '3.14' - runner: windows-11-arm target: aarch64 @@ -210,7 +223,7 @@ jobs: if: ${{ matrix.platform.target == 'x64' }} run: | Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" - rm -rf .venv + Remove-Item -r .venv uv venv .venv -p ${{ matrix.platform.python_version_max }} .venv/Scripts/Activate.ps1 uv run python --version @@ -225,11 +238,11 @@ jobs: platform: - runner: macos-15-intel target: x86_64 - python_version_min: '3.7' + python_version_min: '3.0' python_version_max: '3.14' - runner: macos-latest target: aarch64 - python_version_min: '3.7' + python_version_min: '3.8' python_version_max: '3.14' steps: - uses: actions/checkout@main From 8296fe482f94c0d96e20a5ca8ca0d104830b177c Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 09:34:56 -0300 Subject: [PATCH 28/55] maybe? --- .github/workflows/maturin_upload_pypi.yml | 26 +++++++++++------------ 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 284b371..3318939 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -22,27 +22,27 @@ jobs: platform: - runner: ubuntu-22.04 target: x86_64 - python_version_min: '3.0' + python_version_min: '3.3' python_version_max: '3.14' - runner: ubuntu-22.04 target: x86 - python_version_min: '3.0' + python_version_min: '3.3' python_version_max: '3.14' - runner: ubuntu-22.04 target: aarch64 - python_version_min: '3.0' + python_version_min: '3.3' python_version_max: '3.14' - runner: ubuntu-22.04 target: armv7 - python_version_min: '3.0' + python_version_min: '3.3' python_version_max: '3.14' - runner: ubuntu-22.04 target: s390x - python_version_min: '3.0' + python_version_min: '3.3' python_version_max: '3.14' - runner: ubuntu-22.04 target: ppc64le - python_version_min: '3.0' + python_version_min: '3.3' python_version_max: '3.14' steps: - uses: actions/checkout@main @@ -115,16 +115,16 @@ jobs: platform: - runner: ubuntu-22.04 target: x86_64 - python_version_min: '3.0' + python_version_min: '3.3' - runner: ubuntu-22.04 target: x86 - python_version_min: '3.0' + python_version_min: '3.3' - runner: ubuntu-22.04 target: aarch64 - python_version_min: '3.0' + python_version_min: '3.3' - runner: ubuntu-22.04 target: armv7 - python_version_min: '3.0' + python_version_min: '3.3' steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 @@ -164,12 +164,12 @@ jobs: - runner: windows-latest target: x64 python_arch: x64 - python_version_min: '3.0' + python_version_min: '3.3' python_version_max: '3.14' - runner: windows-latest target: x86 python_arch: x86 - python_version_min: '3.0' + python_version_min: '3.3' python_version_max: '3.14' - runner: windows-11-arm target: aarch64 @@ -238,7 +238,7 @@ jobs: platform: - runner: macos-15-intel target: x86_64 - python_version_min: '3.0' + python_version_min: '3.3' python_version_max: '3.14' - runner: macos-latest target: aarch64 From 481146446a9241155a9d28ee065d26d29371f737 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 09:38:42 -0300 Subject: [PATCH 29/55] maybe now --- .github/workflows/maturin_upload_pypi.yml | 26 +++++++++++------------ 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 3318939..6991541 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -22,27 +22,27 @@ jobs: platform: - runner: ubuntu-22.04 target: x86_64 - python_version_min: '3.3' + python_version_min: '3.5' python_version_max: '3.14' - runner: ubuntu-22.04 target: x86 - python_version_min: '3.3' + python_version_min: '3.5' python_version_max: '3.14' - runner: ubuntu-22.04 target: aarch64 - python_version_min: '3.3' + python_version_min: '3.5' python_version_max: '3.14' - runner: ubuntu-22.04 target: armv7 - python_version_min: '3.3' + python_version_min: '3.5' python_version_max: '3.14' - runner: ubuntu-22.04 target: s390x - python_version_min: '3.3' + python_version_min: '3.5' python_version_max: '3.14' - runner: ubuntu-22.04 target: ppc64le - python_version_min: '3.3' + python_version_min: '3.5' python_version_max: '3.14' steps: - uses: actions/checkout@main @@ -115,16 +115,16 @@ jobs: platform: - runner: ubuntu-22.04 target: x86_64 - python_version_min: '3.3' + python_version_min: '3.5' - runner: ubuntu-22.04 target: x86 - python_version_min: '3.3' + python_version_min: '3.5' - runner: ubuntu-22.04 target: aarch64 - python_version_min: '3.3' + python_version_min: '3.5' - runner: ubuntu-22.04 target: armv7 - python_version_min: '3.3' + python_version_min: '3.5' steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 @@ -164,12 +164,12 @@ jobs: - runner: windows-latest target: x64 python_arch: x64 - python_version_min: '3.3' + python_version_min: '3.5' python_version_max: '3.14' - runner: windows-latest target: x86 python_arch: x86 - python_version_min: '3.3' + python_version_min: '3.5' python_version_max: '3.14' - runner: windows-11-arm target: aarch64 @@ -238,7 +238,7 @@ jobs: platform: - runner: macos-15-intel target: x86_64 - python_version_min: '3.3' + python_version_min: '3.5' python_version_max: '3.14' - runner: macos-latest target: aarch64 From 27bed70cb92e334e50bd7a717a9a8c25369567da Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 09:49:34 -0300 Subject: [PATCH 30/55] Go to 3.7 because that's the minimal version supported by pyo3 --- .github/workflows/maturin_upload_pypi.yml | 36 +++++++++++------------ lib/pyproject.toml | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 6991541..a9a925b 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -13,6 +13,9 @@ on: permissions: contents: read +# At the time of writing, PyO3 has a hard minimal Python version of 3.7, so +# there's no use trying to go any lower than that. + jobs: linux: runs-on: ${{ matrix.platform.runner }} @@ -22,27 +25,27 @@ jobs: platform: - runner: ubuntu-22.04 target: x86_64 - python_version_min: '3.5' + python_version_min: '3.7' python_version_max: '3.14' - runner: ubuntu-22.04 target: x86 - python_version_min: '3.5' + python_version_min: '3.7' python_version_max: '3.14' - runner: ubuntu-22.04 target: aarch64 - python_version_min: '3.5' + python_version_min: '3.7' python_version_max: '3.14' - runner: ubuntu-22.04 target: armv7 - python_version_min: '3.5' + python_version_min: '3.7' python_version_max: '3.14' - runner: ubuntu-22.04 target: s390x - python_version_min: '3.5' + python_version_min: '3.7' python_version_max: '3.14' - runner: ubuntu-22.04 target: ppc64le - python_version_min: '3.5' + python_version_min: '3.7' python_version_max: '3.14' steps: - uses: actions/checkout@main @@ -51,9 +54,6 @@ jobs: python-version: ${{ matrix.platform.python_version_min }} - name: Build wheels uses: PyO3/maturin-action@v1 - # There's some silly behavior on linux runs of maturin-action and the - # python version. Because of it we need to be explicit about the python - # version we want, while we don't need this on macos nor windows with: target: ${{ matrix.platform.target }} args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} @@ -115,16 +115,16 @@ jobs: platform: - runner: ubuntu-22.04 target: x86_64 - python_version_min: '3.5' + python_version_min: '3.7' - runner: ubuntu-22.04 target: x86 - python_version_min: '3.5' + python_version_min: '3.7' - runner: ubuntu-22.04 target: aarch64 - python_version_min: '3.5' + python_version_min: '3.7' - runner: ubuntu-22.04 target: armv7 - python_version_min: '3.5' + python_version_min: '3.7' steps: - uses: actions/checkout@main - uses: actions/setup-python@v6 @@ -164,12 +164,12 @@ jobs: - runner: windows-latest target: x64 python_arch: x64 - python_version_min: '3.5' + python_version_min: '3.7' python_version_max: '3.14' - runner: windows-latest target: x86 python_arch: x86 - python_version_min: '3.5' + python_version_min: '3.7' python_version_max: '3.14' - runner: windows-11-arm target: aarch64 @@ -186,7 +186,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist + args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} working-directory: lib/ - uses: actions/setup-python@v6 @@ -238,7 +238,7 @@ jobs: platform: - runner: macos-15-intel target: x86_64 - python_version_min: '3.5' + python_version_min: '3.7' python_version_max: '3.14' - runner: macos-latest target: aarch64 @@ -253,7 +253,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist --find-interpreter + args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} working-directory: lib/ - name: Build free-threaded wheels diff --git a/lib/pyproject.toml b/lib/pyproject.toml index 4d1be01..d0f6bf8 100644 --- a/lib/pyproject.toml +++ b/lib/pyproject.toml @@ -3,7 +3,7 @@ name = "crunch64" # Version should be synced with lib/Cargo.toml and lib/crunch64/__init__.py version = "0.6.0" description = "A library for handling common compression formats for N64 games" -requires-python = ">=3.0" +requires-python = ">=3.7" dependencies = [ ] classifiers = [ From dac8f433313070ca578104d3a69fce7423f17b1c Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 09:57:20 -0300 Subject: [PATCH 31/55] Windows is being silly and doesnt want to play nice --- .github/workflows/maturin_upload_pypi.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index a9a925b..c884b88 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -94,6 +94,7 @@ jobs: find ./dist/ -name "crunch64-*-abi3-*" uv venv -p ${{ matrix.platform.python_version_min }} source .venv/bin/activate + uv run python --version uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" - name: Test wheels with max version (${{ matrix.platform.python_version_max }}) @@ -104,6 +105,7 @@ jobs: rm -rf .venv uv venv .venv -p ${{ matrix.platform.python_version_max }} source .venv/bin/activate + uv run python --version uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" @@ -164,12 +166,12 @@ jobs: - runner: windows-latest target: x64 python_arch: x64 - python_version_min: '3.7' + python_version_min: '3.8' python_version_max: '3.14' - runner: windows-latest target: x86 python_arch: x86 - python_version_min: '3.7' + python_version_min: '3.8' python_version_max: '3.14' - runner: windows-11-arm target: aarch64 From 6598c0f9a2aad0a400fa6c6b0b96d60092f3e118 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 10:12:34 -0300 Subject: [PATCH 32/55] Windows really doesn't want to cooperate --- .github/workflows/maturin_upload_pypi.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index c884b88..eb81323 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -166,12 +166,12 @@ jobs: - runner: windows-latest target: x64 python_arch: x64 - python_version_min: '3.8' + python_version_min: '3.7' python_version_max: '3.14' - runner: windows-latest target: x86 python_arch: x86 - python_version_min: '3.8' + python_version_min: '3.7' python_version_max: '3.14' - runner: windows-11-arm target: aarch64 @@ -188,7 +188,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} + args: --release --out ../dist sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} working-directory: lib/ - uses: actions/setup-python@v6 From f7583af09c7ad246aa85c81c658ca12aa7cae48a Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 10:54:49 -0300 Subject: [PATCH 33/55] version bump --- .github/workflows/python_bindings.yml | 1 + CHANGELOG.md | 19 +++++++++++++++++-- Cargo.lock | 4 ++-- Cargo.toml | 2 +- cli/Cargo.toml | 2 +- lib/crunch64/__init__.py | 2 +- lib/pyproject.toml | 2 +- lib/src/lib.rs | 2 +- 8 files changed, 25 insertions(+), 9 deletions(-) diff --git a/.github/workflows/python_bindings.yml b/.github/workflows/python_bindings.yml index 46473e2..9277b4e 100644 --- a/.github/workflows/python_bindings.yml +++ b/.github/workflows/python_bindings.yml @@ -11,6 +11,7 @@ jobs: fail-fast: false matrix: py_version: + - '3.7' - '3.8' - '3.9' - '3.10' diff --git a/CHANGELOG.md b/CHANGELOG.md index 262d353..d8a4016 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -## [0.6.0] - 2026-12-01 +## [0.6.1] - 2026-01-10 + +### Added + +- CI now checks wheels are being installable in the oldest and newest Python versions supported. + - Only the wheels built for the architectures of the CI runner are actually tested, this currently means Windows x64, Linux x86_64, MacOS x86_64 and MacOS aarch64. +- Prebuilt wheels for freethreaded Python 3.14. + +### Fixed + +- Fix prebuilt binaries not being compatible with older Python versions. + - CI now uses the oldest available Python version for each arch/os combination, so users don't have to build the project themselves. + - Wheels should all support the Python `abi3`, meaning they should be future proof and installable by future Python versions. + +## [0.6.0] - 2026-01-01 ### Added @@ -121,7 +135,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Python bindings. - C bindings. -[unreleased]: https://github.com/decompals/crunch64/compare/0.6.0...HEAD +[unreleased]: https://github.com/decompals/crunch64/compare/0.6.1...HEAD +[0.6.1]: https://github.com/decompals/crunch64/compare/0.6.0...0.6.1 [0.6.0]: https://github.com/decompals/crunch64/compare/0.5.4...0.6.0 [0.5.4]: https://github.com/decompals/crunch64/compare/0.5.3...0.5.4 [0.5.3]: https://github.com/decompals/crunch64/compare/0.5.2...0.5.3 diff --git a/Cargo.lock b/Cargo.lock index b8cd98b..87a0700 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -130,7 +130,7 @@ dependencies = [ [[package]] name = "crunch64" -version = "0.6.0" +version = "0.6.1" dependencies = [ "crc32fast", "pyo3", @@ -140,7 +140,7 @@ dependencies = [ [[package]] name = "crunch64-cli" -version = "0.6.0" +version = "0.6.1" dependencies = [ "clap", "crunch64", diff --git a/Cargo.toml b/Cargo.toml index b95e8ad..527dc33 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ resolver = "2" [workspace.package] # Version should be synced with lib/pyproject.toml and lib/crunch64/__init__.py -version = "0.6.0" +version = "0.6.1" edition = "2021" repository = "https://github.com/decompals/crunch64" license = "MIT" diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 46579a6..1adc0b4 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -12,5 +12,5 @@ name = "crunch64" path = "src/main.rs" [dependencies] -crunch64 = { version = "0.6.0", path = "../lib" } +crunch64 = { version = "0.6.1", path = "../lib" } clap = { version = "4.4.11", features = ["derive"] } diff --git a/lib/crunch64/__init__.py b/lib/crunch64/__init__.py index 3362a43..8330fc7 100644 --- a/lib/crunch64/__init__.py +++ b/lib/crunch64/__init__.py @@ -3,7 +3,7 @@ from __future__ import annotations # Version should be synced with lib/Cargo.toml and lib/pyproject.toml -__version_info__ = (0, 6, 0) +__version_info__ = (0, 6, 1) __version__ = ".".join(map(str, __version_info__)) __author__ = "decompals" diff --git a/lib/pyproject.toml b/lib/pyproject.toml index d0f6bf8..e1af3b3 100644 --- a/lib/pyproject.toml +++ b/lib/pyproject.toml @@ -3,7 +3,7 @@ name = "crunch64" # Version should be synced with lib/Cargo.toml and lib/crunch64/__init__.py version = "0.6.0" description = "A library for handling common compression formats for N64 games" -requires-python = ">=3.7" +requires-python = ">=3.7" # Required by PyO3 dependencies = [ ] classifiers = [ diff --git a/lib/src/lib.rs b/lib/src/lib.rs index bb38bd1..7b04297 100644 --- a/lib/src/lib.rs +++ b/lib/src/lib.rs @@ -51,7 +51,7 @@ impl std::convert::From for PyErr { } #[cfg(feature = "python_bindings")] -#[pymodule] +#[pymodule(gil_used = false)] fn crunch64(_py: Python<'_>, m: &Bound<'_, PyModule>) -> PyResult<()> { m.add_function(wrap_pyfunction!(yay0::python_bindings::decompress_yay0, m)?)?; m.add_function(wrap_pyfunction!(yay0::python_bindings::compress_yay0, m)?)?; From c311e3cc8daee771890d7791e1c061dbcc88002e Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 11:39:28 -0300 Subject: [PATCH 34/55] Try to add support for pypy again --- .github/workflows/maturin_upload_pypi.yml | 38 +++++++++++++++++++++++ .github/workflows/python_bindings.yml | 2 +- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index eb81323..5a3eedd 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -109,6 +109,44 @@ jobs: uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" + linux_pypy: + runs-on: ${{ matrix.platform.runner }} + strategy: + fail-fast: false + matrix: + platform: + - runner: ubuntu-22.04 + target: x86_64 + - runner: ubuntu-22.04 + target: x86 + - runner: ubuntu-22.04 + target: aarch64 + - runner: ubuntu-22.04 + target: armv7 + - runner: ubuntu-22.04 + target: s390x + - runner: ubuntu-22.04 + target: ppc64le + steps: + - uses: actions/checkout@main + - uses: actions/setup-python@v6 + with: + python-version: pypy3.7 + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: --release --out ../dist -i pypy3.7 + sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} + manylinux: auto + working-directory: lib/ + - name: Upload wheels + uses: actions/upload-artifact@main + with: + name: wheels-linux-pypy-${{ matrix.platform.target }} + path: dist + if-no-files-found: error + musllinux: runs-on: ${{ matrix.platform.runner }} strategy: diff --git a/.github/workflows/python_bindings.yml b/.github/workflows/python_bindings.yml index 9277b4e..9d8f8c6 100644 --- a/.github/workflows/python_bindings.yml +++ b/.github/workflows/python_bindings.yml @@ -6,7 +6,7 @@ on: [push, pull_request] jobs: tests_cases: name: Test for Python ${{ matrix.py_version }} - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: From 3072fa923164935fc4ca51fb1c94a909b65a9bb2 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 11:48:34 -0300 Subject: [PATCH 35/55] more pypy --- .github/workflows/maturin_upload_pypi.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 5a3eedd..cb75373 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -131,12 +131,15 @@ jobs: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: pypy3.7 + python-version: | + pypy3.9 + pypy3.10 + pypy3.11 - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist -i pypy3.7 + args: --release --out ../dist -i pypy3.9 pypy3.10 pypy3.11 sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} manylinux: auto working-directory: lib/ From 229591f2a4c69b4efb2f4eff60d5bcf11a394b9a Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 11:51:33 -0300 Subject: [PATCH 36/55] Use backward slashes for windows --- .github/workflows/maturin_upload_pypi.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index cb75373..e5e4853 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -258,7 +258,7 @@ jobs: run: | Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" uv venv -p ${{ matrix.platform.python_version_min }} - .venv/Scripts/Activate.ps1 + .venv\Scripts\Activate.ps1 uv run python --version uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" @@ -268,7 +268,7 @@ jobs: Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" Remove-Item -r .venv uv venv .venv -p ${{ matrix.platform.python_version_max }} - .venv/Scripts/Activate.ps1 + .venv\Scripts\Activate.ps1 uv run python --version uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" From 3e49bd0b10c78a5963ad6b278617be91e438741f Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 12:43:59 -0300 Subject: [PATCH 37/55] Force gil version for the max version python check --- .github/workflows/maturin_upload_pypi.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index e5e4853..deb67ff 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -103,7 +103,7 @@ jobs: run: | find ./dist/ -name "crunch64-*-abi3-*" rm -rf .venv - uv venv .venv -p ${{ matrix.platform.python_version_max }} + uv venv .venv -p ${{ matrix.platform.python_version_max }}+gil source .venv/bin/activate uv run python --version uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") @@ -267,7 +267,7 @@ jobs: run: | Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" Remove-Item -r .venv - uv venv .venv -p ${{ matrix.platform.python_version_max }} + uv venv .venv -p ${{ matrix.platform.python_version_max }}+gil .venv\Scripts\Activate.ps1 uv run python --version uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") @@ -328,7 +328,7 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | find ./dist/ -name "crunch64-*-abi3-*" - uv venv .venv -p ${{ matrix.platform.python_version_max }} + uv venv .venv -p ${{ matrix.platform.python_version_max }}+gil source .venv/bin/activate uv run python --version uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") From 6635c296e6fe29dc75b86ad3e01ed11b879f9b82 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 12:52:00 -0300 Subject: [PATCH 38/55] Use `--no-managed-python` instead of `+gil` --- .github/workflows/maturin_upload_pypi.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index deb67ff..4fd49f2 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -103,7 +103,7 @@ jobs: run: | find ./dist/ -name "crunch64-*-abi3-*" rm -rf .venv - uv venv .venv -p ${{ matrix.platform.python_version_max }}+gil + uv venv .venv -p ${{ matrix.platform.python_version_max }} --no-managed-python source .venv/bin/activate uv run python --version uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") @@ -267,7 +267,7 @@ jobs: run: | Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" Remove-Item -r .venv - uv venv .venv -p ${{ matrix.platform.python_version_max }}+gil + uv venv .venv -p ${{ matrix.platform.python_version_max }} --no-managed-python .venv\Scripts\Activate.ps1 uv run python --version uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") @@ -328,7 +328,7 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | find ./dist/ -name "crunch64-*-abi3-*" - uv venv .venv -p ${{ matrix.platform.python_version_max }}+gil + uv venv .venv -p ${{ matrix.platform.python_version_max }} --no-managed-python source .venv/bin/activate uv run python --version uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") From 80d796ba0f79296e034e78597f7ea87444a9af51 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 13:00:01 -0300 Subject: [PATCH 39/55] Maybe I want `--managed-python` --- .github/workflows/maturin_upload_pypi.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 4fd49f2..d47689e 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -103,7 +103,7 @@ jobs: run: | find ./dist/ -name "crunch64-*-abi3-*" rm -rf .venv - uv venv .venv -p ${{ matrix.platform.python_version_max }} --no-managed-python + uv venv .venv -p ${{ matrix.platform.python_version_max }} --managed-python source .venv/bin/activate uv run python --version uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") @@ -267,7 +267,7 @@ jobs: run: | Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" Remove-Item -r .venv - uv venv .venv -p ${{ matrix.platform.python_version_max }} --no-managed-python + uv venv .venv -p ${{ matrix.platform.python_version_max }} --managed-python .venv\Scripts\Activate.ps1 uv run python --version uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") @@ -328,7 +328,7 @@ jobs: # Check the built wheel is installable on the oldest Python supported run: | find ./dist/ -name "crunch64-*-abi3-*" - uv venv .venv -p ${{ matrix.platform.python_version_max }} --no-managed-python + uv venv .venv -p ${{ matrix.platform.python_version_max }} --managed-python source .venv/bin/activate uv run python --version uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") From e850d241b2795607b7852b41eaaaf1c7833eafe9 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 21:50:45 -0300 Subject: [PATCH 40/55] Test pypy linux wheels --- .github/scripts/ci_check_wheel.sh | 12 ++++ .github/workflows/maturin_upload_pypi.yml | 72 +++++------------------ 2 files changed, 28 insertions(+), 56 deletions(-) create mode 100755 .github/scripts/ci_check_wheel.sh diff --git a/.github/scripts/ci_check_wheel.sh b/.github/scripts/ci_check_wheel.sh new file mode 100755 index 0000000..4d33fea --- /dev/null +++ b/.github/scripts/ci_check_wheel.sh @@ -0,0 +1,12 @@ + +PYTHON_VERSION=$1 +KEY=$2 + +set -e + +rm -rf .venv +uv venv -p $PYTHON_VERSION +source .venv/bin/activate +uv run python --version +uv pip install $(find ./dist/ -name "crunch64-*-$KEY-*") --managed-python +uv run python -c "import crunch64; print(crunch64.__version__)" diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index d47689e..deb7ccd 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -51,12 +51,16 @@ jobs: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: ${{ matrix.platform.python_version_min }} + python-version: | + ${{ matrix.platform.python_version_min }} + pypy3.9 + pypy3.10 + pypy3.11 - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} + args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} pypy3.9 pypy3.10 pypy3.11 sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} manylinux: auto working-directory: lib/ @@ -87,68 +91,24 @@ jobs: # so we hope the other built wheels will just work, hopefully. - name: Install uv uses: astral-sh/setup-uv@v7 + if: ${{ matrix.platform.target == 'x86_64' }} - name: Test wheels with min version (${{ matrix.platform.python_version_min }}) if: ${{ matrix.platform.target == 'x86_64' }} # Check the built wheel is installable on the oldest Python supported run: | - find ./dist/ -name "crunch64-*-abi3-*" - uv venv -p ${{ matrix.platform.python_version_min }} - source .venv/bin/activate - uv run python --version - uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") - uv run python -c "import crunch64; print(crunch64.__version__)" + .github/scripts/ci_check_wheel.sh ${{ matrix.platform.python_version_min }} abi3 - name: Test wheels with max version (${{ matrix.platform.python_version_max }}) if: ${{ matrix.platform.target == 'x86_64' }} - # Check the built wheel is installable on the oldest Python supported + # Check the built wheel is installable on the newest Python we know of run: | - find ./dist/ -name "crunch64-*-abi3-*" - rm -rf .venv - uv venv .venv -p ${{ matrix.platform.python_version_max }} --managed-python - source .venv/bin/activate - uv run python --version - uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") - uv run python -c "import crunch64; print(crunch64.__version__)" + .github/scripts/ci_check_wheel.sh ${{ matrix.platform.python_version_max }} abi3 - linux_pypy: - runs-on: ${{ matrix.platform.runner }} - strategy: - fail-fast: false - matrix: - platform: - - runner: ubuntu-22.04 - target: x86_64 - - runner: ubuntu-22.04 - target: x86 - - runner: ubuntu-22.04 - target: aarch64 - - runner: ubuntu-22.04 - target: armv7 - - runner: ubuntu-22.04 - target: s390x - - runner: ubuntu-22.04 - target: ppc64le - steps: - - uses: actions/checkout@main - - uses: actions/setup-python@v6 - with: - python-version: | - pypy3.9 - pypy3.10 - pypy3.11 - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: --release --out ../dist -i pypy3.9 pypy3.10 pypy3.11 - sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - manylinux: auto - working-directory: lib/ - - name: Upload wheels - uses: actions/upload-artifact@main - with: - name: wheels-linux-pypy-${{ matrix.platform.target }} - path: dist - if-no-files-found: error + - name: Test pypy wheels + if: ${{ matrix.platform.target == 'x86_64' }} + run: | + .github/scripts/ci_check_wheel.sh pypy3.9 pypy3.9 + .github/scripts/ci_check_wheel.sh pypy3.10 pypy3.10 + .github/scripts/ci_check_wheel.sh pypy3.11 pypy3.11 musllinux: runs-on: ${{ matrix.platform.runner }} From b83624a7d016f0fef65d64bb72be9d550503ddea Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 22:02:38 -0300 Subject: [PATCH 41/55] fix --- .github/scripts/ci_check_wheel.sh | 4 ++-- .github/workflows/maturin_upload_pypi.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/scripts/ci_check_wheel.sh b/.github/scripts/ci_check_wheel.sh index 4d33fea..064e6d7 100755 --- a/.github/scripts/ci_check_wheel.sh +++ b/.github/scripts/ci_check_wheel.sh @@ -5,8 +5,8 @@ KEY=$2 set -e rm -rf .venv -uv venv -p $PYTHON_VERSION +uv venv -p $PYTHON_VERSION --managed-python source .venv/bin/activate uv run python --version -uv pip install $(find ./dist/ -name "crunch64-*-$KEY-*") --managed-python +uv pip install $(find ./dist/ -name "crunch64-*-$KEY*") uv run python -c "import crunch64; print(crunch64.__version__)" diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index deb7ccd..f165739 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -106,9 +106,9 @@ jobs: - name: Test pypy wheels if: ${{ matrix.platform.target == 'x86_64' }} run: | - .github/scripts/ci_check_wheel.sh pypy3.9 pypy3.9 - .github/scripts/ci_check_wheel.sh pypy3.10 pypy3.10 - .github/scripts/ci_check_wheel.sh pypy3.11 pypy3.11 + .github/scripts/ci_check_wheel.sh pypy3.9 pypy39 + .github/scripts/ci_check_wheel.sh pypy3.10 pypy310 + .github/scripts/ci_check_wheel.sh pypy3.11 pypy311 musllinux: runs-on: ${{ matrix.platform.runner }} From 67db660f09d0745e1b0216260e75bc96cebe27ff Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 22:37:37 -0300 Subject: [PATCH 42/55] more fixes --- .github/scripts/ci_check_wheel.sh | 3 ++- .github/workflows/maturin_upload_pypi.yml | 24 +++++++++++------------ 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/.github/scripts/ci_check_wheel.sh b/.github/scripts/ci_check_wheel.sh index 064e6d7..dd78693 100755 --- a/.github/scripts/ci_check_wheel.sh +++ b/.github/scripts/ci_check_wheel.sh @@ -1,11 +1,12 @@ PYTHON_VERSION=$1 KEY=$2 +EXTRA=$3 set -e rm -rf .venv -uv venv -p $PYTHON_VERSION --managed-python +uv venv -p $PYTHON_VERSION $EXTRA source .venv/bin/activate uv run python --version uv pip install $(find ./dist/ -name "crunch64-*-$KEY*") diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index f165739..c41804f 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -60,15 +60,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} pypy3.9 pypy3.10 pypy3.11 - sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - manylinux: auto - working-directory: lib/ - - name: Build free-threaded wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: --release --out ../dist -i python3.14t + args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} pypy3.9 pypy3.10 pypy3.11 python3.14t sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} manylinux: auto working-directory: lib/ @@ -101,14 +93,20 @@ jobs: if: ${{ matrix.platform.target == 'x86_64' }} # Check the built wheel is installable on the newest Python we know of run: | - .github/scripts/ci_check_wheel.sh ${{ matrix.platform.python_version_max }} abi3 + .github/scripts/ci_check_wheel.sh ${{ matrix.platform.python_version_max }} abi3 --managed-python + + - name: Test wheels for free threaded + if: ${{ matrix.platform.target == 'x86_64' }} + # Check the built wheel is installable on the newest Python we know of + run: | + .github/scripts/ci_check_wheel.sh 3.14t cp314t --managed-python - name: Test pypy wheels if: ${{ matrix.platform.target == 'x86_64' }} run: | - .github/scripts/ci_check_wheel.sh pypy3.9 pypy39 - .github/scripts/ci_check_wheel.sh pypy3.10 pypy310 - .github/scripts/ci_check_wheel.sh pypy3.11 pypy311 + .github/scripts/ci_check_wheel.sh pypy3.9 pypy39 --managed-python + .github/scripts/ci_check_wheel.sh pypy3.10 pypy310 --managed-python + .github/scripts/ci_check_wheel.sh pypy3.11 pypy311 --managed-python musllinux: runs-on: ${{ matrix.platform.runner }} From 9793b97c86d1a956383737824acc7e76e262b0a4 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sat, 10 Jan 2026 22:57:48 -0300 Subject: [PATCH 43/55] use the script in macos --- .github/workflows/maturin_upload_pypi.yml | 38 +++++++++-------------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index c41804f..82a8cd4 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -60,7 +60,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} pypy3.9 pypy3.10 pypy3.11 python3.14t + args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} python3.14t pypy3.9 pypy3.10 pypy3.11 sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} manylinux: auto working-directory: lib/ @@ -95,9 +95,8 @@ jobs: run: | .github/scripts/ci_check_wheel.sh ${{ matrix.platform.python_version_max }} abi3 --managed-python - - name: Test wheels for free threaded + - name: Test free threaded wheels if: ${{ matrix.platform.target == 'x86_64' }} - # Check the built wheel is installable on the newest Python we know of run: | .github/scripts/ci_check_wheel.sh 3.14t cp314t --managed-python @@ -254,14 +253,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} - sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - working-directory: lib/ - - name: Build free-threaded wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: --release --out ../dist -i python3.14t + args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} python3.14t pypy3.9 pypy3.10 pypy3.11 sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} working-directory: lib/ - name: Upload wheels @@ -276,21 +268,21 @@ jobs: - name: Test wheels with min version (${{ matrix.platform.python_version_min }}) # Check the built wheel is installable on the oldest Python supported run: | - find ./dist/ -name "crunch64-*-abi3-*" - uv venv -p ${{ matrix.platform.python_version_min }} - source .venv/bin/activate - uv run python --version - uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") - uv run python -c "import crunch64; print(crunch64.__version__)" + .github/scripts/ci_check_wheel.sh ${{ matrix.platform.python_version_min }} abi3 - name: Test wheels with max version (${{ matrix.platform.python_version_max }}) # Check the built wheel is installable on the oldest Python supported run: | - find ./dist/ -name "crunch64-*-abi3-*" - uv venv .venv -p ${{ matrix.platform.python_version_max }} --managed-python - source .venv/bin/activate - uv run python --version - uv pip install $(find ./dist/ -name "crunch64-*-abi3-*") - uv run python -c "import crunch64; print(crunch64.__version__)" + .github/scripts/ci_check_wheel.sh ${{ matrix.platform.python_version_max }} abi3 + + - name: Test free threaded wheels + run: | + .github/scripts/ci_check_wheel.sh 3.14t cp314t --managed-python + + - name: Test pypy wheels + run: | + .github/scripts/ci_check_wheel.sh pypy3.9 pypy39 --managed-python + .github/scripts/ci_check_wheel.sh pypy3.10 pypy310 --managed-python + .github/scripts/ci_check_wheel.sh pypy3.11 pypy311 --managed-python sdist: runs-on: ubuntu-latest From e2d20a12fd8e66823019328d0b9deb1efc2362b4 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sun, 11 Jan 2026 12:13:28 -0300 Subject: [PATCH 44/55] test free threaded and pypy wheels in windows --- .github/scripts/ci_check_wheel.ps1 | 20 ++++++++++++++++ .github/workflows/maturin_upload_pypi.yml | 29 ++++++++++++----------- 2 files changed, 35 insertions(+), 14 deletions(-) create mode 100644 .github/scripts/ci_check_wheel.ps1 diff --git a/.github/scripts/ci_check_wheel.ps1 b/.github/scripts/ci_check_wheel.ps1 new file mode 100644 index 0000000..e5e7630 --- /dev/null +++ b/.github/scripts/ci_check_wheel.ps1 @@ -0,0 +1,20 @@ + +param ( + [Parameter(Mandatory = $true)] + [string]$PYTHON_VERSION, + + [Parameter(Mandatory = $true)] + [string]$KEY, + + [string]$EXTRA +) + +# Equivalent to `set -e` +$ErrorActionPreference = "Stop" + +Remove-Item -Recurse -Force ".venv" +uv venv -p $PYTHON_VERSION $EXTRA +./.venv/Scripts/Activate.ps1 +uv run python --version +uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") +uv run python -c "import crunch64; print(crunch64.__version__)" diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 82a8cd4..4983fc2 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -207,28 +207,29 @@ jobs: path: dist if-no-files-found: error - - name: Install uv + - name: Install uvci_check_wheel uses: astral-sh/setup-uv@v7 - name: Test wheels with min version (${{ matrix.platform.python_version_min }}) if: ${{ matrix.platform.target == 'x64' }} # Check the built wheel is installable on the oldest Python supported run: | - Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" - uv venv -p ${{ matrix.platform.python_version_min }} - .venv\Scripts\Activate.ps1 - uv run python --version - uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") - uv run python -c "import crunch64; print(crunch64.__version__)" + .github/scripts/ci_check_wheel.ps1 ${{ matrix.platform.python_version_min }} abi3 - name: Test wheels with max version (${{ matrix.platform.python_version_max }}) if: ${{ matrix.platform.target == 'x64' }} run: | - Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*" - Remove-Item -r .venv - uv venv .venv -p ${{ matrix.platform.python_version_max }} --managed-python - .venv\Scripts\Activate.ps1 - uv run python --version - uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") - uv run python -c "import crunch64; print(crunch64.__version__)" + .github/scripts/ci_check_wheel.ps1 ${{ matrix.platform.python_version_max }} abi3 + + - name: Test free threaded wheels + if: ${{ matrix.platform.target == 'x86_64' }} + run: | + .github/scripts/ci_check_wheel.ps1 3.14t cp314t --managed-python + + - name: Test pypy wheels + if: ${{ matrix.platform.target == 'x86_64' }} + run: | + .github/scripts/ci_check_wheel.ps1 pypy3.9 pypy39 --managed-python + .github/scripts/ci_check_wheel.ps1 pypy3.10 pypy310 --managed-python + .github/scripts/ci_check_wheel.ps1 pypy3.11 pypy311 --managed-python macos: runs-on: ${{ matrix.platform.runner }} From 6351572bcd4219970bd1bd4ca74b64958f75ea8e Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sun, 11 Jan 2026 12:20:49 -0300 Subject: [PATCH 45/55] fix --- .github/scripts/ci_check_wheel.ps1 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/scripts/ci_check_wheel.ps1 b/.github/scripts/ci_check_wheel.ps1 index e5e7630..0d1c117 100644 --- a/.github/scripts/ci_check_wheel.ps1 +++ b/.github/scripts/ci_check_wheel.ps1 @@ -12,7 +12,10 @@ param ( # Equivalent to `set -e` $ErrorActionPreference = "Stop" -Remove-Item -Recurse -Force ".venv" +if (Test-Path ".venv") { + Remove-Item -Recurse -Force ".venv" +} + uv venv -p $PYTHON_VERSION $EXTRA ./.venv/Scripts/Activate.ps1 uv run python --version From a79ef37ba7b2ddcc2ed8541b9e7436bdd458cb00 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sun, 11 Jan 2026 12:26:49 -0300 Subject: [PATCH 46/55] maybe? --- .github/scripts/ci_check_wheel.ps1 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/scripts/ci_check_wheel.ps1 b/.github/scripts/ci_check_wheel.ps1 index 0d1c117..81f482e 100644 --- a/.github/scripts/ci_check_wheel.ps1 +++ b/.github/scripts/ci_check_wheel.ps1 @@ -1,4 +1,3 @@ - param ( [Parameter(Mandatory = $true)] [string]$PYTHON_VERSION, @@ -17,7 +16,7 @@ if (Test-Path ".venv") { } uv venv -p $PYTHON_VERSION $EXTRA -./.venv/Scripts/Activate.ps1 +.venv\Scripts\Activate.ps1 uv run python --version uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" From 6e604e066899851707d8310fca68ec6997e57fc5 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sun, 11 Jan 2026 12:41:34 -0300 Subject: [PATCH 47/55] ???? --- .github/scripts/ci_check_wheel.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/ci_check_wheel.ps1 b/.github/scripts/ci_check_wheel.ps1 index 81f482e..34235f7 100644 --- a/.github/scripts/ci_check_wheel.ps1 +++ b/.github/scripts/ci_check_wheel.ps1 @@ -16,7 +16,7 @@ if (Test-Path ".venv") { } uv venv -p $PYTHON_VERSION $EXTRA -.venv\Scripts\Activate.ps1 +. .\.venv\Scripts\Activate.ps1 uv run python --version uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" From a58a7916bf6bc74ca7a76622aec06a2addf60b35 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sun, 11 Jan 2026 12:50:49 -0300 Subject: [PATCH 48/55] another test --- .github/scripts/ci_check_wheel.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/scripts/ci_check_wheel.ps1 b/.github/scripts/ci_check_wheel.ps1 index 34235f7..1ebc3b7 100644 --- a/.github/scripts/ci_check_wheel.ps1 +++ b/.github/scripts/ci_check_wheel.ps1 @@ -15,8 +15,8 @@ if (Test-Path ".venv") { Remove-Item -Recurse -Force ".venv" } -uv venv -p $PYTHON_VERSION $EXTRA -. .\.venv\Scripts\Activate.ps1 +uv venv .venv -p $PYTHON_VERSION $EXTRA +.\.venv\Scripts\Activate.ps1 uv run python --version uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") uv run python -c "import crunch64; print(crunch64.__version__)" From d52e0d1d76c3ac9ab781d0ab1ef687afb86d2347 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sun, 11 Jan 2026 13:05:28 -0300 Subject: [PATCH 49/55] hopefully fix this, for real this time --- .github/scripts/ci_check_wheel.ps1 | 10 ++++- .github/workflows/maturin_upload_pypi.yml | 45 +++++++++++------------ 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/.github/scripts/ci_check_wheel.ps1 b/.github/scripts/ci_check_wheel.ps1 index 1ebc3b7..c85999f 100644 --- a/.github/scripts/ci_check_wheel.ps1 +++ b/.github/scripts/ci_check_wheel.ps1 @@ -15,7 +15,15 @@ if (Test-Path ".venv") { Remove-Item -Recurse -Force ".venv" } -uv venv .venv -p $PYTHON_VERSION $EXTRA +# When $EXTRA is empty powershell passes the argument as an empty argument to +# uv, so we need to explicitly check the argument and only pass it if it is not +# empty to avoid uv from erroring +if ($EXTRA) { + uv venv .venv -p $PYTHON_VERSION $EXTRA +} else { + uv venv .venv -p $PYTHON_VERSION +} + .\.venv\Scripts\Activate.ps1 uv run python --version uv pip install $(Get-ChildItem -Path .\dist\ -Recurse -Filter "crunch64-*-abi3-*") diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 4983fc2..687009b 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -53,6 +53,7 @@ jobs: with: python-version: | ${{ matrix.platform.python_version_min }} + 3.14t pypy3.9 pypy3.10 pypy3.11 @@ -129,20 +130,17 @@ jobs: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: ${{ matrix.platform.python_version_min }} + python-version: | + ${{ matrix.platform.python_version_min }} + 3.14t + pypy3.9 + pypy3.10 + pypy3.11 - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} - sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - manylinux: musllinux_1_2 - working-directory: lib/ - - name: Build free-threaded wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: --release --out ../dist -i python3.14t + args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} python3.14t pypy3.9 pypy3.10 pypy3.11 sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} manylinux: musllinux_1_2 working-directory: lib/ @@ -180,24 +178,18 @@ jobs: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: ${{ matrix.platform.python_version_min }} + python-version: | + ${{ matrix.platform.python_version_min }} + 3.14t + pypy3.9 + pypy3.10 + pypy3.11 architecture: ${{ matrix.platform.python_arch }} - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist - sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - working-directory: lib/ - - 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 + args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} python3.14t pypy3.9 pypy3.10 pypy3.11 sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} working-directory: lib/ - name: Upload wheels @@ -249,7 +241,12 @@ jobs: - uses: actions/checkout@main - uses: actions/setup-python@v6 with: - python-version: ${{ matrix.platform.python_version_min }} + python-version: | + ${{ matrix.platform.python_version_min }} + 3.14t + pypy3.9 + pypy3.10 + pypy3.11 - name: Build wheels uses: PyO3/maturin-action@v1 with: From 9216b243270f7210701eb7fa09a5b235bc7efb8b Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sun, 11 Jan 2026 13:27:07 -0300 Subject: [PATCH 50/55] Remove pypy builds from windows --- .github/workflows/maturin_upload_pypi.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 687009b..12b371a 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -53,6 +53,7 @@ jobs: with: python-version: | ${{ matrix.platform.python_version_min }} + 3.14 3.14t pypy3.9 pypy3.10 @@ -132,6 +133,7 @@ jobs: with: python-version: | ${{ matrix.platform.python_version_min }} + 3.14 3.14t pypy3.9 pypy3.10 @@ -180,16 +182,14 @@ jobs: with: python-version: | ${{ matrix.platform.python_version_min }} + 3.14 3.14t - pypy3.9 - pypy3.10 - pypy3.11 architecture: ${{ matrix.platform.python_arch }} - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} python3.14t pypy3.9 pypy3.10 pypy3.11 + args: --release --out ../dist -i python${{ matrix.platform.python_version_min }} python3.14t sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} working-directory: lib/ - name: Upload wheels @@ -243,6 +243,7 @@ jobs: with: python-version: | ${{ matrix.platform.python_version_min }} + 3.14 3.14t pypy3.9 pypy3.10 From bc1c8709ffe131dc9671befc6d08de6fd56cf4ea Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sun, 11 Jan 2026 13:36:29 -0300 Subject: [PATCH 51/55] more fix --- .github/workflows/maturin_upload_pypi.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 12b371a..51c689c 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -209,7 +209,7 @@ jobs: - name: Test wheels with max version (${{ matrix.platform.python_version_max }}) if: ${{ matrix.platform.target == 'x64' }} run: | - .github/scripts/ci_check_wheel.ps1 ${{ matrix.platform.python_version_max }} abi3 + .github/scripts/ci_check_wheel.ps1 ${{ matrix.platform.python_version_max }} abi3 --managed-python - name: Test free threaded wheels if: ${{ matrix.platform.target == 'x86_64' }} @@ -271,7 +271,7 @@ jobs: - name: Test wheels with max version (${{ matrix.platform.python_version_max }}) # Check the built wheel is installable on the oldest Python supported run: | - .github/scripts/ci_check_wheel.sh ${{ matrix.platform.python_version_max }} abi3 + .github/scripts/ci_check_wheel.sh ${{ matrix.platform.python_version_max }} abi3 --managed-python - name: Test free threaded wheels run: | From 5d09037d706aa6e4b92130c49f6ca3ff6e3d4030 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sun, 11 Jan 2026 13:41:39 -0300 Subject: [PATCH 52/55] maybe --- .github/workflows/maturin_upload_pypi.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index 51c689c..fa7c930 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -53,7 +53,6 @@ jobs: with: python-version: | ${{ matrix.platform.python_version_min }} - 3.14 3.14t pypy3.9 pypy3.10 @@ -133,7 +132,6 @@ jobs: with: python-version: | ${{ matrix.platform.python_version_min }} - 3.14 3.14t pypy3.9 pypy3.10 @@ -182,7 +180,6 @@ jobs: with: python-version: | ${{ matrix.platform.python_version_min }} - 3.14 3.14t architecture: ${{ matrix.platform.python_arch }} - name: Build wheels @@ -243,7 +240,6 @@ jobs: with: python-version: | ${{ matrix.platform.python_version_min }} - 3.14 3.14t pypy3.9 pypy3.10 From e4e5c47e5d9022e40da42d9f12bb60ebc41302ab Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sun, 11 Jan 2026 14:14:54 -0300 Subject: [PATCH 53/55] comments --- .github/scripts/ci_check_wheel.ps1 | 4 ++++ .github/scripts/ci_check_wheel.sh | 20 ++++++++++++++++++++ .github/workflows/maturin_upload_pypi.yml | 3 --- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/.github/scripts/ci_check_wheel.ps1 b/.github/scripts/ci_check_wheel.ps1 index c85999f..e38f85c 100644 --- a/.github/scripts/ci_check_wheel.ps1 +++ b/.github/scripts/ci_check_wheel.ps1 @@ -1,3 +1,7 @@ +# A Powershell port of `ci_check_wheel.sh`. Refer to that script instead. + +# Any change made here should be made in `ci_check_wheel.sh` too. + param ( [Parameter(Mandatory = $true)] [string]$PYTHON_VERSION, diff --git a/.github/scripts/ci_check_wheel.sh b/.github/scripts/ci_check_wheel.sh index dd78693..8df0036 100755 --- a/.github/scripts/ci_check_wheel.sh +++ b/.github/scripts/ci_check_wheel.sh @@ -1,13 +1,33 @@ +# This script checks a given Python wheel inside the `dist` is installable in a +# given Python version. +# +# It recieves the following arguments: +# - The python version to check, it must be compatible with uv. +# - A key value to allow searching for the wheel in the `dist` folder. Only a +# single wheel in the folder must contain this value in its name. +# Recommended values: abi3, cp314t, pypy39 and similar values. +# - (OPTIONAL) A single aditional flag to pass to `uv venv`. +# Usually `--managed-python`. + +# Any change made here should be made in `ci_check_wheel.ps1` too. PYTHON_VERSION=$1 KEY=$2 EXTRA=$3 +# Exit with an error value if any command produces an error. set -e +# We make a venv with the Python version we were told to. rm -rf .venv uv venv -p $PYTHON_VERSION $EXTRA source .venv/bin/activate +# Allows us to check we are actually using the requested Python version. uv run python --version + +# We install the wheel by looking it up in the dist folder. +# We need to do a `find` command here because we don't know the exact name of +# the wheel (it can be affected by package version, arch, python version, etc.). uv pip install $(find ./dist/ -name "crunch64-*-$KEY*") +# Check something basic to make sure it was installed correctly. uv run python -c "import crunch64; print(crunch64.__version__)" diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index fa7c930..c0d71fb 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -77,9 +77,6 @@ jobs: # We do this by installing the Python version in a venv using uv, # installing the built wheel into the venv and running some simple # command like printing the crunch64 version from within Python. - # We need to do a not-great `find` command to find the wheel because - # we don't know the specific name of the wheel file (it can be affected - # by package version, arch, etc). # We can only test the wheels that matches the architecture of the runner # so we hope the other built wheels will just work, hopefully. - name: Install uv From 02ce3cd4bc51cc42e97e1a364b1479fc51f20108 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sun, 11 Jan 2026 14:24:56 -0300 Subject: [PATCH 54/55] cleanup --- .github/workflows/maturin_upload_pypi.yml | 12 ------------ CHANGELOG.md | 2 +- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/.github/workflows/maturin_upload_pypi.yml b/.github/workflows/maturin_upload_pypi.yml index c0d71fb..b0de0ac 100644 --- a/.github/workflows/maturin_upload_pypi.yml +++ b/.github/workflows/maturin_upload_pypi.yml @@ -205,18 +205,6 @@ jobs: run: | .github/scripts/ci_check_wheel.ps1 ${{ matrix.platform.python_version_max }} abi3 --managed-python - - name: Test free threaded wheels - if: ${{ matrix.platform.target == 'x86_64' }} - run: | - .github/scripts/ci_check_wheel.ps1 3.14t cp314t --managed-python - - - name: Test pypy wheels - if: ${{ matrix.platform.target == 'x86_64' }} - run: | - .github/scripts/ci_check_wheel.ps1 pypy3.9 pypy39 --managed-python - .github/scripts/ci_check_wheel.ps1 pypy3.10 pypy310 --managed-python - .github/scripts/ci_check_wheel.ps1 pypy3.11 pypy311 --managed-python - macos: runs-on: ${{ matrix.platform.runner }} strategy: diff --git a/CHANGELOG.md b/CHANGELOG.md index d8a4016..4fa871f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -## [0.6.1] - 2026-01-10 +## [0.6.1] - 2026-01-11 ### Added From bba518e92565a063518624afc88dec4ae1148fcc Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Sun, 11 Jan 2026 15:27:33 -0300 Subject: [PATCH 55/55] whoops --- lib/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pyproject.toml b/lib/pyproject.toml index e1af3b3..82fa5b8 100644 --- a/lib/pyproject.toml +++ b/lib/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "crunch64" # Version should be synced with lib/Cargo.toml and lib/crunch64/__init__.py -version = "0.6.0" +version = "0.6.1" description = "A library for handling common compression formats for N64 games" requires-python = ">=3.7" # Required by PyO3 dependencies = [