Maintainer workflows and repository gates are documented in the contributing guide.
Build standard
Development Make targets (make test, make lint, make typecheck and the
debug build) use the parallel rustc frontend (-Zthreads=8). On supported
Linux targets they use the repository's target-aware Clang wrappers with
mold. Install clang with your system package manager if needed, then run
make install-build-tools to install the pinned Rust components and, on
supported Linux hosts, mold and ld.mold 2.41.0. macOS keeps its platform
linker because the pinned linker is installed only on Linux. LLVM is the
development codegen default; Cranelift is currently excluded after an
unwind-test failure on the pinned toolchain. See
ADR 001.
Pass additional Rust policy flags to Make through RUST_FLAGS. Make assigns
each recipe's RUSTFLAGS from that variable and the selected route flags; it
does not retain inherited RUSTFLAGS. It filters development-owned flags from
inherited CARGO_ENCODED_RUSTFLAGS before composing the selected route.
Coverage assigns its own flags and selects LLVM for instrumentation.
make release selects the LLVM release profile and omits the development
frontend and mold flags, so it uses the platform linker. A bare
cargo build --release uses discovered configuration unless an environment
flag source is assigned, for example RUSTFLAGS="" cargo build --release.