Skip to content
Open
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
158 changes: 96 additions & 62 deletions .github/workflows/maturin_upload_pypi.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# This file is autogenerated by maturin v1.2.3
# This file is autogenerated by maturin v1.9.6
# To update, run
#
# maturin generate-ci github
Expand All @@ -15,119 +15,151 @@ permissions:

jobs:
linux:
runs-on: ubuntu-latest
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
target: [x86_64, x86, aarch64, armv7, s390x, ppc64le]
fail-fast: false
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@v5
- uses: actions/checkout@main
- uses: actions/setup-python@v5
with:
python-version: '3.9 - 3.13'
python-version: 3.x
- name: Build wheels
uses: PyO3/maturin-action@v1
env:
PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1
with:
target: ${{ matrix.target }}
args: --release --out ../dist --find-interpreter
sccache: 'true'
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
manylinux: auto
working-directory: lib/
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.target }}
name: wheels-linux-${{ matrix.platform.target }}
path: dist

musllinux:
runs-on: ${{ matrix.platform.runner }}
strategy:
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
steps:
- uses: actions/checkout@main
- uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
manylinux: musllinux_1_2
working-directory: lib/
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-musllinux-${{ matrix.platform.target }}
path: dist
if-no-files-found: error

windows:
runs-on: windows-latest
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
target: [x64, x86]
fail-fast: false
platform:
- runner: windows-latest
target: x64
- runner: windows-latest
target: x86
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@main
- uses: actions/setup-python@v5
with:
python-version: '3.13'
architecture: ${{ matrix.target }}
python-version: 3.x
architecture: ${{ matrix.platform.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
env:
PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1
with:
target: ${{ matrix.target }}
args: --release --out ../dist --find-interpreter
sccache: 'true'
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
working-directory: lib/
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.target }}
name: wheels-windows-${{ matrix.platform.target }}
path: dist
if-no-files-found: error

macos:
runs-on: macos-latest
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
target: [x86_64, aarch64]
fail-fast: false
platform:
- runner: macos-13
target: x86_64
- runner: macos-14
target: aarch64
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@main
- uses: actions/setup-python@v5
with:
python-version: '3.13'
python-version: 3.x
- name: Build wheels
uses: PyO3/maturin-action@v1
env:
PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1
with:
target: ${{ matrix.target }}
args: --release --out ../dist --find-interpreter
sccache: 'true'
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
working-directory: lib/
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.target }}
name: wheels-macos-${{ matrix.platform.target }}
path: dist
if-no-files-found: error

sdist:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- name: Checkout repo
uses: actions/checkout@v5

- 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
args: --out dist
working-directory: lib/

- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: sdist
name: wheels-sdist
path: dist
if-no-files-found: error

check_clippy_python_bindings:
name: Check clippy for Python bindings
runs-on: ubuntu-latest

steps:
- name: Checkout reposistory
uses: actions/checkout@v5
uses: actions/checkout@main

- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@stable
Expand All @@ -143,24 +175,26 @@ jobs:
release:
name: Release
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
needs: [linux, windows, macos, sdist]
strategy:
fail-fast: false
if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
needs: [linux, musllinux, windows, macos, sdist, check_clippy_python_bindings]
permissions:
# Use to sign the release artifacts
id-token: write
# Used to upload release artifacts
contents: write
# Used to generate artifact attestation
attestations: write
steps:
- uses: actions/download-artifact@v4
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v2
with:
pattern: wheels-*
merge-multiple: true
- uses: actions/download-artifact@v4
with:
name: sdist
merge-multiple: true
subject-path: 'wheels-*/*'
- name: Publish to PyPI
if: ${{ startsWith(github.ref, 'refs/tags/') }}
uses: PyO3/maturin-action@v1
env:
PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_PASSWORD }}
with:
command: upload
args: --non-interactive --skip-existing *
args: --non-interactive --skip-existing wheels-*/*
14 changes: 14 additions & 0 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,17 @@ jobs:
# To find current MSRV use `cargo msrv find`. Install it with `cargo install cargo-msrv --locked`
- name: Run MSRV checker
run: cargo hack check --rust-version --workspace --all-targets --ignore-private

msrv_no_default:
name: Check MSRV
runs-on: ubuntu-latest
steps:
- name: Checkout reposistory
uses: actions/checkout@v5

- name: Setup MSRV checker
uses: taiki-e/install-action@cargo-hack

# To find current MSRV use `cargo msrv find`. Install it with `cargo install cargo-msrv --locked`
- name: Run MSRV checker
run: cargo hack check --rust-version --workspace --all-targets --ignore-private --no-default-features
11 changes: 10 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.6.0] - 2025-10-11

### Added

- `no_std` support.
- `alloc` is still required.
- Prebuilt binaries for Python 3.14.

## [0.5.4] - 2024-12-15

### Fixed
Expand Down Expand Up @@ -101,7 +109,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.5.1...HEAD
[unreleased]: https://github.com/decompals/crunch64/compare/0.6.0...HEAD
[0.6.0]: https://github.com/decompals/crunch64/compare/0.5.3...0.6.0
[0.5.3]: https://github.com/decompals/crunch64/compare/0.5.2...0.5.3
[0.5.2]: https://github.com/decompals/crunch64/compare/0.5.1...0.5.2
[0.5.1]: https://github.com/decompals/crunch64/compare/0.5.0...0.5.1
Expand Down
38 changes: 18 additions & 20 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading