76 lines
2.4 KiB
Makefile
76 lines
2.4 KiB
Makefile
_list:
|
|
@just --list
|
|
|
|
msrv := ```
|
|
cargo metadata --format-version=1 \
|
|
| jq -r 'first(.packages[] | select(.source == null and .rust_version)) | .rust_version' \
|
|
| sed -E 's/^1\.([0-9]{2})$/1\.\1\.0/'
|
|
```
|
|
msrv_rustup := "+" + msrv
|
|
|
|
# Check project.
|
|
[group("lint")]
|
|
check: && clippy
|
|
just --unstable --fmt --check
|
|
# fd --hidden -e=toml --exec-batch taplo format --check
|
|
# fd --hidden -e=toml --exec-batch taplo lint
|
|
# fd --hidden --type=file -e=md -e=yml --exec-batch prettier --check
|
|
cargo +nightly fmt -- --check
|
|
|
|
# Format project.
|
|
[group("lint")]
|
|
fmt:
|
|
just --unstable --fmt
|
|
# fd --hidden -e=toml --exec-batch taplo format
|
|
# fd --hidden --type=file -e=md -e=yml --exec-batch prettier --write
|
|
cargo +nightly fmt
|
|
|
|
# Update READMEs from crate root documentation.
|
|
[group("lint")]
|
|
update-readme:
|
|
cargo rdme --force
|
|
npx -y prettier --write README.md
|
|
|
|
# Lint workspace with Clippy.
|
|
[group("lint")]
|
|
clippy:
|
|
cargo clippy --workspace --all-targets --no-default-features
|
|
cargo clippy --workspace --all-targets --all-features
|
|
|
|
# Test workspace.
|
|
[group("test")]
|
|
test toolchain="":
|
|
cargo {{ toolchain }} nextest run --workspace --no-default-features
|
|
cargo {{ toolchain }} nextest run --workspace --all-features
|
|
cargo {{ toolchain }} test --doc --workspace --all-features
|
|
RUSTDOCFLAGS="-D warnings" cargo {{ toolchain }} doc --workspace --no-deps --all-features
|
|
|
|
# Downgrade dev-dependencies necessary to run MSRV checks/tests.
|
|
[private]
|
|
downgrade-for-msrv:
|
|
# No downgrades currently necessary.
|
|
# cargo update -p=foo --precise=x.y.z # next ver: 1.XX
|
|
|
|
# Test workspace using MSRV.
|
|
[group("test")]
|
|
test-msrv: downgrade-for-msrv (test msrv_rustup)
|
|
|
|
# Test workspace and generate Codecov coverage file
|
|
[group("test")]
|
|
test-coverage-codecov toolchain="":
|
|
cargo {{ toolchain }} llvm-cov --workspace --all-features --codecov --output-path codecov.json
|
|
|
|
# Test workspace and generate LCOV coverage file
|
|
[group("test")]
|
|
test-coverage-lcov toolchain="":
|
|
cargo {{ toolchain }} llvm-cov --workspace --all-features --lcov --output-path lcov.info
|
|
|
|
# Build crate for a no-std target.
|
|
build-no-std:
|
|
cargo build --target=thumbv6m-none-eabi --manifest-path=./ensure-no-std/Cargo.toml
|
|
|
|
# Document crates in workspace.
|
|
[group("docs")]
|
|
doc *args:
|
|
RUSTDOCFLAGS="--cfg=docsrs -Dwarnings" cargo +nightly doc --workspace --all-features {{ args }}
|