Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🔖 5.0.0 Release #1

Merged
merged 2 commits into from
Apr 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .codecov.yml

This file was deleted.

314 changes: 314 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,314 @@
# This file is autogenerated by maturin v1.2.3
# To update, run
#
# maturin generate-ci github
#
name: CI

on:
push:
branches:
- main
tags:
- '*'
workflow_dispatch:
pull_request:

permissions:
contents: read

concurrency:
group: ci-${{ github.ref_name }}
cancel-in-progress: true

jobs:

lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- run: pip install pre-commit
name: Install pre-commit
- run: pre-commit run --all
name: Run pre-commit checks

test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-13, windows-latest ]
python_version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', 'pypy-3.7', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10']
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python_version }}
- name: Setup dependencies
run: |
pip install --upgrade pip
pip install -r dev-requirements.txt
- name: Build wheels (Unix, Linux)
if: matrix.os != 'windows-latest'
uses: PyO3/maturin-action@v1
with:
args: --release --out dist --interpreter ${{ matrix.python_version }}
sccache: 'true'
manylinux: auto
- name: Build wheels (NT)
if: matrix.os == 'windows-latest'
uses: PyO3/maturin-action@v1
with:
args: --release --out dist
sccache: 'true'
target: x64
- run: pip install --find-links=./dist jh2
name: Install built package
- name: Ensure test target (NT)
if: matrix.os == 'windows-latest'
run: Remove-Item -Path jh2 -Force -Recurse
- name: Ensure test target (Linux, Unix)
if: matrix.os != 'windows-latest'
run: rm -fR jh2
- run: pytest tests/
name: Run tests

test_vanilla:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-13, windows-latest ]
python_version: [ '3.7', '3.8', '3.9', '3.10', '3.11', '3.12', 'pypy-3.7', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10' ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python_version }}
- name: Setup dependencies
run: |
pip install --upgrade pip
pip install -r dev-requirements.txt
- name: Use fallback pyproject.toml (Unix, Linux)
if: matrix.os != 'windows-latest'
run: rm -f pyproject.toml && mv pyproject.fb.toml pyproject.toml
- name: Use fallback pyproject.toml (NT)
if: matrix.os == 'windows-latest'
run: |
rm -Force pyproject.toml
move pyproject.fb.toml pyproject.toml
- run: pip install .
name: Install built package
- name: Ensure test target (NT)
if: matrix.os == 'windows-latest'
run: Remove-Item -Path jh2 -Force -Recurse
- name: Ensure test target (Linux, Unix)
if: matrix.os != 'windows-latest'
run: rm -fR jh2
- run: pytest tests/
name: Run tests

linux:
runs-on: ubuntu-latest
needs:
- test
- test_vanilla
- lint
strategy:
fail-fast: false
matrix:
target: [x86_64, aarch64, armv7, s390x, ppc64le, ppc64]
python_version: ['3.10', 'pypy-3.7', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10']
manylinux: ['auto', 'musllinux_1_1']
exclude:
- manylinux: musllinux_1_1
target: s390x
- manylinux: musllinux_1_1
target: ppc64
- manylinux: musllinux_1_1
target: ppc64le

steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python_version }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --interpreter ${{ matrix.python_version }}
sccache: 'true'
manylinux: ${{ matrix.manylinux }}
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist

windows:
needs:
- test
- test_vanilla
- lint
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
target: [x64, aarch64]
python_version: ['3.10', 'pypy-3.7', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10']
exclude:
- target: aarch64
python_version: 'pypy-3.7'
- target: aarch64
python_version: 'pypy-3.8'
- target: aarch64
python_version: 'pypy-3.9'
- target: aarch64
python_version: 'pypy-3.10'
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python_version }}
architecture: x64
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist

macos:
needs:
- test
- test_vanilla
- lint
runs-on: macos-13
strategy:
fail-fast: false
matrix:
target: [x86_64, aarch64, universal2]
python_version: ['3.10', 'pypy-3.7', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10']
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python_version }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --interpreter ${{ matrix.python_version }}
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist

sdist:
needs:
- test
- test_vanilla
- lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist
- name: Upload sdist
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist

universal:
needs:
- test
- test_vanilla
- lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install dependencies
run: python -m pip install build wheel
- name: Use fallback pyproject.toml
run: rm -f pyproject.toml && mv pyproject.fb.toml pyproject.toml
- name: Build fallback wheel
run: python -m build
- name: Upload sdist
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist/*.whl

checksum:
name: compute hashes
runs-on: ubuntu-latest
needs: [linux, windows, macos, sdist, universal]
if: "startsWith(github.ref, 'refs/tags/')"
outputs:
hashes: ${{ steps.compute.outputs.hashes }}
steps:
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
- name: Download distributions
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
with:
name: wheels
path: dist
- name: Collected dists
run: |
tree dist
- name: Generate hashes
id: compute # needs.checksum.outputs.hashes
working-directory: ./dist
run: echo "hashes=$(sha256sum * | base64 -w0)" >> $GITHUB_OUTPUT

provenance:
needs: checksum
if: "startsWith(github.ref, 'refs/tags/')"
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.10.0
permissions:
actions: read
id-token: write
contents: write
with:
base64-subjects: ${{ needs.checksum.outputs.hashes }}
compile-generator: true
upload-assets: true

release:
name: release
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/')"
needs: provenance
steps:
- uses: actions/download-artifact@v3
with:
name: wheels
- name: Publish to PyPI
uses: PyO3/maturin-action@v1.42.1
with:
command: upload
args: --non-interactive --skip-existing *
46 changes: 0 additions & 46 deletions .github/workflows/ci.yml

This file was deleted.

17 changes: 0 additions & 17 deletions .github/workflows/install_h2spec.sh

This file was deleted.

Loading
Loading