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