1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# rsconstruct build configuration for this repository.
#
# Mirrors .github/workflows/ci.yml step for step: what CI runs is what
# `rsconstruct build` runs here, so a green local build means a green CI
# run. Every cargo invocation goes through rsconstruct rather than being
# typed by hand.
[]
# src_dirs entries name directories; "." (the whole tree) is a config error
= true
# ─── analyzers ───────────────────────────────────────────────────────────────
[]
# ─── templating ──────────────────────────────────────────────────────────────
# Convention: tera configs are Lua (config/*.lua). Every dep_auto entry
# listed here must exist: rsconstruct rejects a missing one at config load.
[]
= ["config/project.lua"]
= ["tera.templates"]
# ─── rust ────────────────────────────────────────────────────────────────────
# `cargo build`. CI builds the dev profile only; release binaries come from
# the cross-target release job, which is not a local concern.
# target/ is not cached: it is many gigabytes and cargo already keeps its
# own incremental state there, so copying it into the rsconstruct store
# would cost far more than it could ever save.
[]
= ["Cargo.toml"]
= ["dev"]
= false
# The clippy processor is "run `cargo <command> <args>` once per Cargo.toml,
# re-run when any .rs or .toml under it changes". That is exactly the shape
# of every other cargo check CI runs, so each one is an instance of it with
# a different command. Arguments are CI's, verbatim.
# cargo fmt --all --check
[]
= ["Cargo.toml"]
= "fmt"
= ["--all", "--check"]
# cargo clippy --all-targets -- -D warnings
[]
= ["Cargo.toml"]
= ["--all-targets", "--", "-D", "warnings"]
# cargo deny check: Cargo.lock against the RustSec advisory database
[]
= ["Cargo.toml"]
= "deny"
= ["check"]
# cargo nextest run: the test suite, with .config/nextest.toml's profile
[]
= ["Cargo.toml"]
= "nextest"
= ["run"]
# No doctest instance: nextest does not run doctests, but `cargo test --doc`
# errors outright on a binary-only crate, and this crate has no src/lib.rs.
# CI skips its doctest step on the same condition.