just setup # typos, rumdl, cargo-shear, cargo-sort, cargo-mutants
just check # cargo check --all-targets --all-features
just lint # typos + rumdl + cargo sort/fmt + clippy -D warnings + shear
just test # cargo test --all-features
just buildContract changes:
just proto-lint # buf lint
just proto-breaking # buf breaking vs main
just sdk-generate # regenerates sdks/python, sdks/typescript, sdks/go stubs- Root
[workspace.dependencies]uses numeric versions only, no default features. Sub-crates useworkspace = trueforversion/edition/ shared deps. Add deps withcargo add <crate> --workspace/cargo add <crate> -p <crate> --workspace. - Prefer
hpx(rustls) overreqwest,tokiofor async,tracingfor logs,scc/ArcSwapfor concurrent state. - Error handling:
thiserrorin libraries,eyrein binaries. - Run
cargo check/cargo testsequentially (cargo file locks). Do not parallelizecargoinvocations.
just formatbefore PR:rumdl fmt+cargo sort -w -g+cargo +nightly fmt --all.- Clippy is
pedantic+nurserywith-D warnings. Fix warnings rather than allowing them. - No
anyhow/log/reqwest/dashmapon new code; useeyre/tracing/hpx/scc.
- Co-locate unit tests with
#[cfg(test)]. - Use
proptestfor invariants inside the normalcargo testflow. - Run
just mutationand fix surviving mutants. - Do not add
cargo-fuzz/ Criterion unless the crate parses hostile input or has a measured hot path.
Use conventional commits (feat:, fix:, docs:, refactor:, chore:). git-cliff generates the changelog from them. Keep PRs focused; do not mix unrelated changes.
By contributing, you agree that your contributions are licensed under Apache-2.0 (see LICENSE).