Skip to main content

max / makeover

Gate releases on cargo fmt as well as clippy and tests The prebuild step ran clippy and the suite and never asked about formatting, so `main` could fail `cargo fmt --check` indefinitely without any release noticing. makeover-webview did, across three releases (0.10.0, 0.13.0, 0.14.0), and it was found by hand rather than by the gate. fmt runs first of the three: it takes no features, touches no dependency, and is the cheapest thing that can fail. `--all` rather than `--workspace`, which is the word that subcommand takes. The recipe is copied verbatim between suite crates, so this lands in all twelve at once. A sweep of the other eleven found them all clean, so this catches the next drift rather than any today.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-04 14:06 UTC
Signed with PGP, not checked
Commit: 9a25326baae4f2f99777d858157c8c18eb596923
Parent: a39822d
1 file changed, +15 insertions, -3 deletions
@@ -31,10 +31,22 @@
31 31 step("checkout");
32 32 sh_ok(h, "cd " + r + " && git describe --exact-match --tags HEAD");
33 33
34 - // Gate: nothing reaches crates.io from code that fails clippy or its tests. A
35 - // published version can be yanked but never edited, so this is the last point
36 - // at which a break is still cheap.
34 + // Gate: nothing reaches crates.io from code that fails formatting, clippy or
35 + // its tests. A published version can be yanked but never edited, so this is the
36 + // last point at which a break is still cheap.
37 + //
38 + // fmt runs first, and it is here because it was the one gate missing. It takes
39 + // no features and touches no dependency, so it is the cheapest of the three and
40 + // the one whose failure is never interesting — which is exactly why it drifted:
41 + // makeover-webview's `main` failed `cargo fmt --check` across three releases
42 + // (0.10.0, 0.13.0, 0.14.0) and nothing objected, because the gate ran clippy
43 + // and the suite and never asked. A formatting break costs nothing to fix and
44 + // nothing to catch; leaving it uncaught is what let it accumulate.
45 + //
46 + // `--all` rather than `--workspace`: fmt spells the same idea with the other
47 + // word, and the two are not interchangeable on this subcommand.
37 48 step("prebuild");
49 + sh_ok(h, "cd " + r + " && cargo fmt --all --check");
38 50 sh_ok(h, "cd " + r + " && cargo clippy --workspace --all-targets " + feature_flags() + " -- -D warnings");
39 51 sh_ok(h, "cd " + r + " && cargo test --workspace " + feature_flags());
40 52