id: toolchain
title: The build is cheap enough to run two of
status: shipped
repos: [atgc]
dependsOn: []
exitCriterion: >
A fresh worktree builds on a pinned toolchain, with the language floor
enforced on every build rather than asserted once. #
rust-version = "1.89" is set by three things independently, and declaring it
turns clippy's incompatible_msrv on, so the floor is enforced rather than
believed. Dependencies build without debug info and this crate keeps all of it,
which took a full debug build from 2.43 GiB to 1.66 with 253 dependency source
files still carrying line tables.
One target/ per worktree, cargo's default, and no scheme on top of it.
Sharing the build across worktrees was tried twice and is settled as a no: the
uplifted target/debug/atgc is one name written by whichever worktree last
compiled, and it is what env!("CARGO_BIN_EXE_atgc") bakes into the
integration tests.