Skip to content

Latest commit

 

History

History
103 lines (75 loc) · 3.3 KB

File metadata and controls

103 lines (75 loc) · 3.3 KB

Development

Reference of build, test, lint, and documentation invocations for the valj workspace. See CONTRIBUTING.md for branch, commit, and PR conventions.

Toolchain

Rust 1.88 (MSRV, required by rmcp/darling). Rustup installs the workspace pin automatically; no rust-toolchain.toml is checked in.

rustup install 1.88
rustup component add --toolchain 1.88 rustfmt clippy

Features

No crate in the workspace declares a [features] section. --features, --all-features, and --no-default-features currently have no effect and are omitted from the commands below.

Build

Purpose Command
Debug build (all crates) cargo build --workspace
Release build (all crates) cargo build --workspace --release
Release binary, valj only cargo build -p valj --release
Release binary, valj-mcp only cargo build -p valj-mcp --release
Fast compile check without codegen cargo check --workspace

Release binaries are written to target/release/valj and target/release/valj-mcp.

Test

Purpose Command
All tests across all crates cargo test --workspace
Unit tests for a single crate cargo test -p valj-core
Doc-tests only (workspace) cargo test --workspace --doc
CLI integration tests cargo test -p valj --test integration
CLI snapshot tests cargo test -p valj --test snapshots_cli
Single test by name cargo test --workspace <name>
Update snapshots after intentional output change cargo insta test --workspace && cargo insta review
Verify no pending snapshots (CI mode) cargo insta test --check --workspace

Lint

Purpose Command
Format check (CI gate) cargo fmt --all --check
Format apply cargo fmt --all
Clippy, all targets, deny warnings cargo clippy --workspace --all-targets -- -D warnings

Lints are centrally defined via [workspace.lints] in the root Cargo.toml; all crates inherit them through [lints] workspace = true.

Documentation

Purpose Command
Build docs (no deps) cargo doc --workspace --no-deps
Build docs and open in browser cargo doc --workspace --no-deps --open
CI variant: fail on doc warnings RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps

missing_docs is enforced at the library level for valj-core and valj-format.

Supply chain

Purpose Command
Advisories, licences, bans, sources cargo deny check
Unused dependencies cargo machete

Installation of the tooling (one-off):

cargo install cargo-deny --locked --version '^0.16'
cargo install cargo-machete --locked

Release gates

Purpose Command
MSRV verification cargo msrv verify --workspace
SemVer, library crate cargo semver-checks check-release -p <crate> --baseline-rev <tag>

Installation of the tooling (one-off):

cargo install cargo-msrv --locked
cargo install cargo-semver-checks --locked

Full local CI gate

The following commands reproduce the full quality pipeline:

cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps
cargo build -p valj-mcp --release
cargo deny check
cargo machete