cargo / ansi-to-tui / audit
cargo : ansi-to-tui @ 8.0.1
PE Patrick Elsen signed 2026-05-27 published 2026-05-27

CONTRIBUTING.md

70 lines · markdown

# ContributingThanks for contributing!## CI OverviewThis repo has two CI workflows:- `build.yml` (Cargo): contributor-friendly checks using standard Rust tooling.- `build-nix.yml` (Nix): reproducible, flake-defined checks executed via `nix build`.The Nix workflow generates its job matrix by evaluating `.#githubActions.matrix`, so the checks itruns in CI are the same ones you can run locally with Nix.### Why Nix?Using Nix adds some complexity, but it also buys a few things that are otherwise hard to keepreliable over time:- A pinned Rust toolchain (aligned with the crate MSRV) and pinned tool versions via `flake.lock`.- A single source of truth for the check list (the flake), used both locally and in CI.- Reproducible builds across machines/CI runners, which helps avoid "works on my machine" issues.The Cargo workflow exists so contributors can run the same checks without needing to learn Nix.## Local Development (Cargo)These commands match what `build.yml` runs:```bashtaplo fmt --checkcargo fmt --checkcargo clippy --all-targets --all-features -- -D warningscargo nextest run --all-featurescargo nextest run --no-default-featurescargo doc --no-deps```If you don't have `cargo-nextest` installed, you can use `cargo test` instead:```bashcargo test --all-featurescargo test --no-default-features```### Dependency and License ChecksIf you have these tools installed locally, you can run:```bashcargo deny checkcargo audit```## Local Development (Nix)If you use Nix, the flake exposes the same checks CI runs. Typical invocations:```bashnix build -L .#checks.x86_64-linux.ansi-to-tui-fmtnix build -L .#checks.x86_64-linux.ansi-to-tui-clippynix build -L .#checks.x86_64-linux.ansi-to-tui-nextest```To see the matrix that CI evaluates:```bashnix eval --json .#githubActions.matrix```