Skip to content

Latest commit

 

History

History
70 lines (48 loc) · 2.07 KB

File metadata and controls

70 lines (48 loc) · 2.07 KB

Contributing

Prerequisites

With Nix (recommended)

The project includes a Nix flake with a complete dev shell. If you have Nix with flakes enabled:

# Enter the dev shell (or use direnv with the included .envrc)
nix develop

# Build via Nix
nix build

The dev shell provides the stable Rust toolchain (cargo, clippy, rustfmt, rust-analyzer), plus cargo-nextest, cargo-llvm-cov, cargo-deny, taplo, and typos.

Without Nix

Requires a stable Rust toolchain. Install via rustup.

You'll also need these tools (provided automatically by the Nix dev shell):

Setup

After cloning, configure git hooks:

just setup

This sets up:

  • pre-commit - runs just fmt to check formatting
  • pre-push - runs just check for full lint + test suite

Building and testing

A justfile wraps all common commands:

just check        # Run all checks (clippy, test, fmt, lint)
just test         # Run tests
just clippy       # Run clippy
just check-fmt    # Format check
just fmt          # Auto-format everything (Rust, TOML, Nix)
just lint         # Run linters (TOML, typos, nix-fmt, actionlint)
just coverage     # Generate lcov coverage report
just coverage-html # Generate HTML coverage report
just check-typos  # Spell check
just lint-toml    # TOML lint

Formatting

  • TOML - taplo
  • Nix - alejandra

AI-assisted contributions

AI assistants are fine to use. You're responsible for every line you submit - correctness, licensing, review. If you used AI to generate code, read and verify it yourself before opening a PR. Unreviewed AI output will be declined.