Skip to content

No-Nix Development

Status Applies to Owner
Pre-release draft main branch as of 2026-06-30 reduced local toolchain workflow Development maintainers

Some development environments for this repo have uv and maturin available but do not expose nix, cargo, rustfmt, or cargo-clippy directly. Linux native builds also require a cc compiler driver plus mold and ld.mold on PATH; the repo Cargo configuration uses them by default.

If just is installed, use the local no-Nix lane for day-to-day iteration:

just check-local
just test-local

Equivalent commands without just:

uv run ruff format --check .
uv run ruff check .
uv run ty check src tests scripts tooling
uv run pytest tests/test_regenie2_linear.py tests/test_regenie2_binary.py
uv run pytest tests/ -m "not phase0_data and not phase1_parity"

The pytest commands are the normal local smoke for the installed native extension. When a Rust toolchain is available to maturin, they also exercise extension rebuilds through the uv cache keys. For an explicit native-extension compile smoke in that environment, run:

uv run maturin develop

Keep this lane local and focused. On the gauss login node, do not use the reduced-toolchain lane as a substitute for full validation. Full Python suites, Rust builds, Rust test builds, and mixed Python/Rust validation should use the CPU SLURM lane:

just slurm-cpu-check
just slurm-cpu-test
just slurm-cpu-rust-build
just slurm-cpu-rust-test

The CPU SLURM recipes derive Cargo and pytest worker counts from the allocation. Outside SLURM, Cargo defaults to 30 build jobs. Local test-local remains serial by default so focused failures are easy to read and do not queue a SLURM job.

Full Rust formatting and clippy checks still require an environment with the Rust toolchain available:

cargo fmt
cargo clippy --workspace --all-targets -- -D warnings -W clippy::pedantic

Rust coverage also requires cargo-llvm-cov:

cargo install cargo-llvm-cov
cargo llvm-cov --workspace --all-targets --ignore-filename-regex '(^|/)(benches|tests)/' --fail-under-lines 90