.PHONY: all build test clippy clippy-fix fmt clean doc release check
all: fmt clippy test
build:
cargo build
test:
cargo test --all-features
clippy:
cargo clippy -- \
-D clippy::all \
-D clippy::pedantic \
-D clippy::nursery \
-D clippy::cargo \
-D clippy::unwrap_used \
-D clippy::expect_used \
-A clippy::module_name_repetitions \
-A clippy::must_use_candidate \
-A clippy::missing_errors_doc \
-A clippy::missing_panics_doc \
-A clippy::missing_docs_in_private_items \
-A clippy::missing_const_for_fn \
-A clippy::cognitive_complexity
cargo clippy --tests -- \
-D clippy::all \
-D clippy::pedantic \
-D clippy::nursery \
-D clippy::cargo \
-A clippy::unwrap_used \
-A clippy::expect_used \
-A clippy::module_name_repetitions \
-A clippy::must_use_candidate \
-A clippy::missing_errors_doc \
-A clippy::missing_panics_doc \
-A clippy::missing_docs_in_private_items \
-A clippy::missing_const_for_fn \
-A clippy::cognitive_complexity
cargo clippy --examples -- \
-D clippy::all \
-D clippy::pedantic \
-D clippy::nursery \
-D clippy::cargo \
-A clippy::unwrap_used \
-A clippy::expect_used \
-A clippy::module_name_repetitions \
-A clippy::must_use_candidate \
-A clippy::missing_errors_doc \
-A clippy::missing_panics_doc \
-A clippy::missing_docs_in_private_items \
-A clippy::missing_const_for_fn \
-A clippy::cognitive_complexity \
-A clippy::uninlined_format_args \
-A clippy::map_unwrap_or \
-A clippy::manual_let_else \
-A clippy::needless_collect \
-A clippy::single_match_else \
-A clippy::option_if_let_else
clippy-fix:
cargo clippy --fix --allow-staged --allow-dirty
fmt:
cargo fmt
clean:
cargo clean
doc:
cargo doc --no-deps --open
check: fmt clippy test doc
@echo "All checks passed!"
release: check
@echo "Current version: $$(grep '^version' Cargo.toml | head -1 | cut -d'"' -f2)"
@echo "Ready to release! Don't forget to:"
@echo " 1. Update version in Cargo.toml"
@echo " 2. Commit and push changes"
@echo " 3. Create GitHub release with tag v$$(grep '^version' Cargo.toml | head -1 | cut -d'"' -f2)"
help:
@echo "Available commands:"
@echo " make - Run fmt, clippy, and test"
@echo " make build - Build the project"
@echo " make test - Run tests"
@echo " make clippy - Run strict clippy checks (same as CI)"
@echo " make fmt - Format code"
@echo " make clean - Clean build artifacts"
@echo " make doc - Build and open documentation"
@echo " make check - Run all CI checks"
@echo " make release - Prepare for release"