Skip to content

The required Format check has NEVER been able to fail — continue-on-error since v0.1.0 #409

Description

@avrabe

What

Format is one of seven required status checks on main. Its only
substantive step cannot report failure:

.github/workflows/ci.yml:47-48

      # Pre-existing cFS crates emit rustfmt deltas; v0.1 tolerates
      # them while v0.2 cleans the workspace up.
      - run: cargo fmt --all -- --check
        continue-on-error: true

A failing cargo fmt --check leaves the job conclusion success. The check is
structurally incapable of going red, and it was promoted to a required context
in that state.

The comment says "v0.1 tolerates them while v0.2 cleans the workspace up". We
are at v1.138.0.

Honest scoping — this is potency, not a concealed failure

CI's rustfmt currently finds nothing: the fmt step reports success on every
recent run, so the mask is not hiding a specific live violation. A local
cargo fmt --all -- --check returns rc=1 with ~891 hunks, but that is the
known local-vs-CI rustfmt divergence already recorded for this repo, not
evidence of a hidden CI failure.

The defect is that a required gate has no teeth — not that it is swallowing
something today.

Why it belongs on the "claims vs does" list

Branch protection asserts that seven checks gate main. One of them has never
been able to say no. Anyone reading the protection settings — or an assessor
reading them — would conclude formatting is enforced. It is not, and has not
been since d30a5e3 (2026-05-18, the v0.1.0 release).

Fix

Delete line 48. Expect to reconcile the local-vs-CI rustfmt divergence first, so
do it in a PR and read the CI result rather than a local one — a local cargo fmt on existing crates injects churn CI rejects, which is the documented trap.

Falsification

Wrong if a PR that introduces a rustfmt violation causes the Format check to
report failure on current main.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions