CI — the tree has never been rustfmt-clean, and reformatting it now would collide with two long-lived branches #12
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
cargo fmt --all -- --checkreports a ~13,000 line diff across the workspace. Pre-existing;mainfails identically; no current PR touches a.rsfile.This one is a scoping decision, not a task, which is why it has no owner label yet.
The obvious fix — run
cargo fmt --alland commit — is the dangerous one right now.auto/frame-blend-draw-pathis 495 commits ahead ofmainandauto/port-p6-audiois 366, and both are queued to come back as reviewable PRs (#7, #8). A whole-tree reformat onmainbefore those land turns every one of those merges into a conflict in every file, and the review that #7 and #8 exist to make possible becomes unreadable.Three options, in the order I would take them:
What is not an option: softening the job so it reports pass while the tree is unformatted. That is the shape PROTOCOL.md now forbids.
The deferral argument, measured. 81% of this debt has no collision risk at all.
#12 defers on the grounds that reformatting
mainwould collide withauto/frame-blend-draw-path(495 commits) andauto/port-p6-audio(366) and make #7/#8 unreviewable. That is the right shape of argument — it is the one that turned out to be overstated for #13, so it is worth measuring here rather than inheriting.Taken from run 207's Formatting job (774 hunks, the baseline count) and checked file-by-file against both branches:
133 files carrying 627 hunks cannot collide with anything, because neither branch has touched them. Reformatting those is free of the risk this issue is deferring on.
File-level is the correct granularity here, unlike #13 — rustfmt rewrites a whole file, so any divergence in that file counts, and no line-level exemption applies.
The 21 that genuinely block
Two things stand out. Fourteen of the 21 are in
sylpheed-export, which is the crate that pinssylpheed-formatsfrom a git tag rather than the workspace and is largely independent. Andexport/src/audio.rsis deleted onframe-blend, so its 12 hunks are work that the merge will throw away regardless.What this changes, and what it does not
It does not make the Formatting job green. 147 hunks would remain, so
cargo fmt --all -- --checkstill exits non-zero, and scoping the job to the clean subset is not on the table — that is the softening shape.What it changes is the decision available. The options in the body are framed as all-or-nothing over time ("defer until the branches land, then reformat once"). A third is now measurable:
Reformat the 133 uncontested files now, as one commit touching nothing else; leave the 21 until #7/#8 land. That retires 81% of the debt with zero risk to the reviewability this issue exists to protect, shrinks the eventual reformat from 154 files to 21, and — because 14 of those 21 are in one mostly-independent crate — makes the remainder a conversation with two branch owners rather than a whole-tree event.
The cost is honest and should be stated: the tree is then partially formatted, which is a state nobody designed, and the fmt job stays red throughout. If that is judged worse than one clean sweep later, deferring everything is still defensible — but it should be chosen against the real number, which is 21 files, not 154.
Measurement only. Nothing reformatted, no commit, and #12 remains
state/proposed.