- Fork and clone the repository
- Create a feature branch from
main - Run
make checkto validate your changes - Open a pull request
- Rust stable (MSRV 1.89)
rustfmtandclippycomponents (installed viarust-toolchain.toml)- Optional:
cargo-audit,cargo-deny,cargo-llvm-cov
| Target | Description |
|---|---|
make check |
Run fmt + clippy + test + audit |
make fmt |
Check formatting |
make clippy |
Lint with zero warnings |
make test |
Run all tests |
make bench |
Run benchmarks with history tracking |
make audit |
Security advisory check |
make deny |
Supply-chain checks |
make coverage |
Generate HTML coverage report |
make doc |
Build documentation (warnings as errors) |
make build |
Release build with all features |
make clean |
Remove build artifacts |
- Create
src/module_name.rswith doc comments - Add
pub mod module_name;tosrc/lib.rs(feature-gated if applicable) - Re-export key types from
lib.rs - Add unit tests in the module
- Update the README feature table
cargo fmtis mandatorycargo clippy --all-features --all-targets -- -D warningsmust pass with zero warnings///doc comments on all public items#[non_exhaustive]on public enums#[must_use]on pure functions that return computed values- No
unsafecode - No
println!in library code
- Unit tests colocated in modules via
#[cfg(test)] - Integration tests in
tests/integration.rs - Feature-gated tests with
#[cfg(feature = "...")] - Criterion benchmarks in
benches/benchmarks.rs - Run
./scripts/bench-history.shto record benchmark history - Target: 90%+ line coverage
By contributing, you agree that your contributions will be licensed under GPL-3.0.