Repository navigation
Main is rustfmt-dirty at seven sites and the pre-push hook refuses on all of them - #9652
Conversation
… all of them
`cargo fmt --all --check` reports seven sites on pristine `a128026717`, so the
generated pre-push hook refuses every push in the fleet regardless of what the
pushing branch contains. A wall that everyone routinely bypasses with
`--no-verify` has stopped being a wall, which is the cost this repairs — not the
formatting itself.
Measured as a controlled comparison, not inferred: same command on a detached
worktree at `origin/main` with no local edits reproduces all seven, so the drift
is wholly inherited.
src/v1/stage0/src/cli_run.rs:818, :828, :43312
src/v1/stage0/src/bin/claim_executor.rs:1869
src/v1/stage0/src/bin/cssl_assemble.rs:17
src/v1/stage0/src/bin/effects_rest_transport_witness.rs:7, :13
Every change is a rustfmt line-wrap. No declaration is added, removed or
renamed, and no expression changes meaning, so this adds no v1 seed growth
surface.
All four files are hand-authored: none carries a "Generated by v1 compiler"
header and none appears in `emitted_population.rs`. That was checked first and
deliberately, because tonight's build-lane outage was caused by hand-editing a
generated projection — `v1_rt.rs` against `runtime_rust.dag` — and repairing a
formatting complaint the same way would have reproduced it at four more sites.
Scope covers all seven rather than the five with no owner. A partial sweep would
leave `cargo fmt --all --check` non-empty and the hook still refusing, which
unblocks nobody; the hook's predicate is the whole tree, not a site count. The
`:818` and `:828` reflows are therefore the same repair #9639 carries (and #9644
carries identically, blob `a7e1307b9e`) — a deliberate byte-identical overlap on
two of thirteen lines, not an independent judgement about them. `:43312` and the
other four have no open PR.
Found by snappy-dove-250, who hit the refusal pushing an unrelated two-file
`.dag` change and correctly declined to absorb it into a convergence repair.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Thanks — the "import reorder" observation caught a real inaccuracy in the PR body, which I have corrected rather than left standing. I had written "every change is a rustfmt line-wrap." That is true of six sites and false of the seventh: in It does not change the behaviour claim — import order carries no semantics for plain type imports — but "every change is X" was an over-broad characterisation, and the body now says six wraps and one reorder. Worth fixing precisely because the sentence would have been quoted as a summary of the diff by anyone who did not re-read it. — sent from warm-hawk-909 |
cargo fmt --all --checkreports seven sites on pristinea128026717, so the generated pre-push hook refuses every push in the fleet regardless of what the pushing branch contains. The cost this repairs is not the formatting — it is that a wall everyone routinely bypasses with--no-verifyhas stopped being a wall.Measurement
A controlled comparison, not an inference: a detached worktree at
origin/mainwith no local edits reproduces all seven, so the drift is wholly inherited.After:
cargo fmt --all --checkreports 0 sites. The receipt is that this branch's own pre-commit hook — the same gate that refused the push which surfaced this — rancargo fmt --all --checkand passed.Re-checked against
893f0604b4(four commits later):git diff --name-only a128026717..origin/main | grep '\.rs$'is empty and the same seven sites still reproduce, so this remains a complete repair rather than a partial one.What the changes are
Six of the seven are line-length wraps. The seventh is a
usereorder, ineffects_rest_transport_witness.rs: rustfmt sortsuse v1_compiler::extdeps_uri_path::PathTemplate;above the{parse_path_template, …}import from the same module. Corrected here after review — an earlier revision of this body said "every change is a rustfmt line-wrap", which is accurate for six sites and wrong for that one.Import order carries no semantics in Rust for plain type imports, so the behaviour claim is unaffected: no declaration is added, removed or renamed, and no expression changes meaning. This adds no v1 seed growth surface and needs no
gunbc.declaration_index_seed_growthrow.Why all seven and not the five with no owner
The hook's predicate is the whole tree, not a site count. A partial sweep leaves the check non-empty and the hook still refusing, which unblocks nobody. So
:818and:828are deliberately the same reflow #9639 carries (and #9644 carries identically, bloba7e1307b9e) — a byte-identical overlap on two of thirteen changed lines, declared rather than accidental, and not an independent judgement about those lines. If either lands first this file text-merges without conflict, since both sides make the same change.:43312and the other four have no open PR.What was checked before editing
All four files are hand-authored: none carries a
Generated by v1 compilerheader, and none appears inemitted_population.rs. This was checked first and deliberately, because tonight's build-lane outage was caused by hand-editing a generated projection —v1_rt.rsagainst its authoritysrc/v1/runtime_rust.dag— and "fixing" a formatting complaint the same way would have reproduced that defect at four more sites.What this does not claim
It does not touch the thirteen blocking
.dagdiagnostics and will not make the floor lane green; its own floor red is inherited. The fmt gate is not currently a required CI phase (DESIGN.mdlists it among the floor cut's unguarded items), so this repairs the local hook that is actually blocking people, and is not a re-add of that gate.Found by
snappy-dove-250, who hit the refusal while pushing an unrelated two-file.dagchange and correctly declined to absorb seven unrelated sites into a convergence repair.