# generated from crates/sprawling/src/doctor/table.rs by `table::prereqs`; edit the table, not this file
required git command -v git winget install --id Git.Git -e --scope user brew install git sudo apt install git version control for this repository, and restoring a discarded file from its checkpoint
required bash bash --version | grep -q '^GNU bash' manual: run `just` from Git Bash, which the git row installs: its own bash comes first there, while elsewhere C:\Windows\System32\bash.exe can come first and starts WSL rather than a shell brew install bash sudo apt install bash `just`, which runs every recipe of this repository in bash
required rustup command -v rustup winget install --id Rustlang.Rustup -e curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh cargo and the Rust toolchain rust-toolchain.toml pins, fetched on first use
required rust command -v rustc rustup default stable rustup default stable rustup default stable the compiler, at the version rust-toolchain.toml pins, which rustup fetches on first use
required rustfmt command -v rustfmt rustup component add rustfmt rustup component add rustfmt rustup component add rustfmt `cargo fmt --check`, the first step of `just check`
required clippy command -v cargo-clippy rustup component add clippy rustup component add clippy rustup component add clippy `cargo clippy -D warnings`, which is where this workspace's lints bite
required just command -v just winget install --id Casey.Just -e --scope user brew install just cargo install just --locked `just check`, the closing condition of every change here
required cargo-nextest command -v cargo-nextest cargo install cargo-nextest --locked cargo install cargo-nextest --locked cargo install cargo-nextest --locked `just test`, the test runner every check here calls
required bun command -v bun winget install --id Oven-sh.Bun -e --scope user brew install oven-sh/bun/bun curl -fsSL https://bun.sh/install | bash `just build-web` and the client's checks, which the artifact gates judge
required render-browser - winget install --id Google.Chrome -e brew install --cask google-chrome sudo apt install chromium `cargo xtask render`, which measures the built client in a headless Chromium browser
optional cargo-deny command -v cargo-deny cargo install cargo-deny --locked cargo install cargo-deny --locked cargo install cargo-deny --locked `just deny`, the supply-chain read `just gates` ends with; CI runs it on every push
required elan command -v elan powershell -NoProfile -ExecutionPolicy Bypass -Command "& ([scriptblock]::Create((irm https://raw.githubusercontent.com/leanprover/elan/master/elan-init.ps1))) -NoPrompt 1 -DefaultToolchain none" brew install elan-init curl https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh -sSf | sh the Lean toolchain manager `just models` and `just adversary` run through
required lean elan toolchain list | grep -q '^leanprover/lean4:v4.34.1' elan toolchain install leanprover/lean4:v4.34.1 elan toolchain install leanprover/lean4:v4.34.1 elan toolchain install leanprover/lean4:v4.34.1 `just models`, which proves every crate's Lean specification, at the version lean-toolchain pins
required zig zig version | grep -q '^0.17.0' winget install --id zig.zig -e --version 0.17.0 --scope user brew install zig manual: install the Zig crates/desktop/ffi/zig-version names from https://ziglang.org/download/ the Zig leaves: crates/console_ffi on every platform and crates/desktop/ffi on Windows, at the version crates/desktop/ffi/zig-version pins
optional uv command -v uv winget install --id astral-sh.uv -e --scope user brew install uv curl -LsSf https://astral.sh/uv/install.sh | sh the Python this repository's probes and maintenance scripts run on
optional python uv python find | grep -q . uv python install uv python install uv python install Python for the probes and data transforms, installed and managed by uv
optional cargo-mutants command -v cargo-mutants cargo install cargo-mutants --locked cargo install cargo-mutants --locked cargo install cargo-mutants --locked `just mutants`, which asks whether the tests notice a change in a module held to a mutation score
optional cargo-fuzz command -v cargo-fuzz cargo install cargo-fuzz --locked cargo install cargo-fuzz --locked cargo install cargo-fuzz --locked `just fuzz <target>`, which needs a nightly toolchain as well
optional kani command -v cargo-kani manual: kani runs on Linux; a WSL installation is where it goes here manual: kani runs on Linux; this platform has no build today cargo install --locked kani-verifier && cargo kani setup `just proof`, proving a property against real MIR, on Linux and nowhere else today