Add explicit WasmCodecMeta.__init__ method for strict mkdocs #340
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- main | |
- "*.*" | |
pull_request: | |
branches: | |
- "*" | |
schedule: | |
- cron: "0 0 * * MON" | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
lock: | |
name: Cargo.lock | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the Repository | |
uses: actions/checkout@v2 | |
- name: Install the Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
profile: minimal | |
override: true | |
- name: Generate the minimum version lockfile | |
run: | | |
cargo update -Z minimal-versions | |
cargo update -Z direct-minimal-versions | |
mv Cargo.lock Cargo.lock.min | |
- name: Generate the current version lockfile | |
run: cargo update | |
- name: Upload the Cargo lockfiles | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Cargo.lock | |
path: | | |
Cargo.lock | |
Cargo.lock.min | |
check: | |
name: Check | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
rust: ["1.82", stable, nightly] | |
lock: ["Cargo.lock", "Cargo.lock.min"] | |
runs-on: ${{ matrix.os }} | |
needs: lock | |
steps: | |
- name: Checkout the Repository | |
uses: actions/checkout@v2 | |
- name: Install the Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
profile: minimal | |
target: wasm32-wasip1 | |
override: true | |
- name: Install power tools | |
uses: taiki-e/install-action@cargo-hack | |
- name: Download the Cargo lockfiles | |
uses: actions/download-artifact@v4 | |
with: | |
name: Cargo.lock | |
- name: Rename ${{ matrix.lock }} to Cargo.lock | |
run: mv ${{ matrix.lock }} Cargo.lock | |
if: ${{ matrix.lock != 'Cargo.lock' }} | |
- name: Check the powerset | |
run: | | |
cargo hack check --all \ | |
--feature-powerset --keep-going | |
- name: Check the powerset on wasm32-wasip1 | |
run: | | |
cargo hack check --all \ | |
--exclude numcodecs-python \ | |
--exclude numcodecs-sz3 \ | |
--exclude numcodecs-zfp \ | |
--exclude numcodecs-zstd \ | |
--feature-powerset --keep-going \ | |
--target wasm32-wasip1 | |
test: | |
name: Test Suite | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
rust: [stable] | |
lock: ["Cargo.lock", "Cargo.lock.min"] | |
python: ["3.10", "3.11", "3.12"] | |
runs-on: ${{ matrix.os }} | |
needs: lock | |
steps: | |
- name: Checkout the Repository | |
uses: actions/checkout@v2 | |
- name: Install the Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
profile: minimal | |
override: true | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install power tools | |
uses: taiki-e/install-action@cargo-hack | |
- name: Install numcodecs | |
run: pip install numcodecs | |
- name: Download the Cargo lockfiles | |
uses: actions/download-artifact@v4 | |
with: | |
name: Cargo.lock | |
- name: Rename ${{ matrix.lock }} to Cargo.lock | |
run: mv ${{ matrix.lock }} Cargo.lock | |
if: ${{ matrix.lock != 'Cargo.lock' }} | |
- name: Run the test-suite powerset | |
run: | | |
cargo hack test --workspace \ | |
--no-fail-fast --feature-powerset --keep-going \ | |
--release | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the Repository | |
uses: actions/checkout@v2 | |
- name: Install the Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
profile: minimal | |
components: rustfmt | |
override: true | |
- name: Check the code formatting | |
run: cargo fmt --all -- --check | |
clippy: | |
name: Clippy | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
rust: ["1.82", stable] | |
lock: ["Cargo.lock", "Cargo.lock.min"] | |
runs-on: ${{ matrix.os }} | |
needs: lock | |
steps: | |
- name: Checkout the Repository | |
uses: actions/checkout@v2 | |
- name: Install the Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
profile: minimal | |
target: wasm32-wasip1 | |
components: clippy | |
override: true | |
- name: Install power tools | |
uses: taiki-e/install-action@cargo-hack | |
- name: Download the Cargo lockfiles | |
uses: actions/download-artifact@v4 | |
with: | |
name: Cargo.lock | |
- name: Rename ${{ matrix.lock }} to Cargo.lock | |
run: mv ${{ matrix.lock }} Cargo.lock | |
if: ${{ matrix.lock != 'Cargo.lock' }} | |
- name: Check the code style powerset | |
if: ${{ matrix.rust == 'stable' && matrix.lock == 'Cargo.lock' }} | |
run: | | |
cargo hack clippy --all \ | |
--feature-powerset --keep-going \ | |
-- -D warnings | |
- name: Check the code style powerset | |
if: ${{ matrix.rust != 'stable' || matrix.lock != 'Cargo.lock' }} | |
run: | | |
cargo hack clippy --all \ | |
--feature-powerset --keep-going \ | |
-- -D warnings -A unknown-lints -A clippy::multiple-crate-versions | |
- name: Check the code style powerset on wasm32-wasip1 | |
if: ${{ matrix.rust == 'stable' && matrix.lock == 'Cargo.lock' }} | |
run: | | |
cargo hack clippy --all \ | |
--exclude numcodecs-python \ | |
--exclude numcodecs-sz3 \ | |
--exclude numcodecs-zfp \ | |
--exclude numcodecs-zstd \ | |
--feature-powerset --keep-going \ | |
--target wasm32-wasip1 \ | |
-- -D warnings | |
- name: Check the code style powerset on wasm32-wasip1 | |
if: ${{ matrix.rust != 'stable' || matrix.lock != 'Cargo.lock' }} | |
run: | | |
cargo hack clippy --all \ | |
--exclude numcodecs-python \ | |
--exclude numcodecs-sz3 \ | |
--exclude numcodecs-zfp \ | |
--exclude numcodecs-zstd \ | |
--feature-powerset --keep-going \ | |
--target wasm32-wasip1 \ | |
-- -D warnings -A unknown-lints -A clippy::multiple-crate-versions | |
wasm-codecs: | |
name: Test the WASM codecs | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
rust: [stable] | |
lock: ["Cargo.lock", "Cargo.lock.min"] | |
python: ["3.10", "3.11", "3.12"] | |
runs-on: ${{ matrix.os }} | |
needs: lock | |
steps: | |
- name: Checkout the Repository | |
uses: actions/checkout@v2 | |
- name: Install nix | |
uses: cachix/install-nix-action@v27 | |
- name: Install uv | |
uses: astral-sh/setup-uv@v5 | |
- name: Install the Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
profile: minimal | |
override: true | |
- name: Download the Cargo lockfiles | |
uses: actions/download-artifact@v4 | |
with: | |
name: Cargo.lock | |
- name: Rename ${{ matrix.lock }} to Cargo.lock | |
run: mv ${{ matrix.lock }} Cargo.lock | |
if: ${{ matrix.lock != 'Cargo.lock' }} | |
- name: Build the ZFP WASM codec | |
run: | | |
cd py/numcodecs-wasm-materialize | |
rm .python-version | |
uv python install ${{ matrix.python }} | |
uv sync && uv pip install . | |
uv run python3 -m numcodecs_wasm_materialize zfp | |
- name: Test importing the ZFP WASM codec | |
run: | | |
mkdir -p py/test | |
cd py/test | |
uv venv | |
uv python install ${{ matrix.python }} | |
uv pip install ../numcodecs-wasm-materialize/dist/*.whl | |
uv run python3 -c "from numcodecs_wasm_zfp import Zfp" |