The Go format check ran plain gofmt, which accepts code that gofumpt (what make fmt writes with) rewrites, so make check could pass on a tree make fmt would change. The two also covered different directories.
script/gofumpt --write|--check now runs one pinned gofumpt (v0.12.0) over every Go file, the way script/prettier does for Markdown. script/fmt, script/fmt-check and make fmt-check-go (the Docker lint stage) all call it. The check captures gofumpt's output on its own line, so it fails when gofumpt cannot run instead of passing.
Not visible in the diff:
.golangci.yml enables no golangci-lint formatters, so this is the only Go format check, not a duplicate.
Generated mfer/mf.pb.go passes: gofumpt applies only gofmt's rules to generated files.
No Go file needed reformatting at v0.12.0.
Disclosures:
Judgement call: go run mvdan.cc/gofumpt@v0.12.0 instead of a go install line in the Dockerfile, so the version is written once and nothing installs gofumpt.
Deviation: script/fmt-check-go is removed; make fmt-check-go calls script/gofumpt --check, as make fmt-check-md calls script/prettier --check.
Deviation: no "run make bootstrap" message as the issue asked; gofumpt is never missing, and a failure to fetch or build it fails the check.
Pinned by version, checked by the Go checksum database, not by a hash in the repo; hash pinning of developer tools stays with #68.
gofumpt v0.12.0 needs Go 1.26; an older local Go downloads it unless GOTOOLCHAIN=local.
The Go format check ran plain `gofmt`, which accepts code that `gofumpt` (what `make fmt` writes with) rewrites, so `make check` could pass on a tree `make fmt` would change. The two also covered different directories.
`script/gofumpt --write|--check` now runs one pinned `gofumpt` (v0.12.0) over every Go file, the way `script/prettier` does for Markdown. `script/fmt`, `script/fmt-check` and `make fmt-check-go` (the Docker lint stage) all call it. The check captures gofumpt's output on its own line, so it fails when gofumpt cannot run instead of passing.
Not visible in the diff:
- `.golangci.yml` enables no golangci-lint formatters, so this is the only Go format check, not a duplicate.
- Generated `mfer/mf.pb.go` passes: gofumpt applies only gofmt's rules to generated files.
- No Go file needed reformatting at v0.12.0.
Disclosures:
- Judgement call: `go run mvdan.cc/gofumpt@v0.12.0` instead of a `go install` line in the Dockerfile, so the version is written once and nothing installs gofumpt.
- Deviation: `script/fmt-check-go` is removed; `make fmt-check-go` calls `script/gofumpt --check`, as `make fmt-check-md` calls `script/prettier --check`.
- Deviation: no "run make bootstrap" message as the issue asked; gofumpt is never missing, and a failure to fetch or build it fails the check.
- Pinned by version, checked by the Go checksum database, not by a hash in the repo; hash pinning of developer tools stays with https://git.eeqj.de/sneak/mfer/issues/68.
- gofumpt v0.12.0 needs Go 1.26; an older local Go downloads it unless `GOTOOLCHAIN=local`.
- No test added: the change is to shell scripts.
Closes https://git.eeqj.de/sneak/mfer/issues/70
Model: opus-5-5
The Go format check ran plain gofmt, which accepts code that gofumpt,
the formatter script/fmt runs, rewrites; and the two covered different
files. Both now go through script/gofumpt, which runs one pinned
gofumpt version over every Go file in --write or --check mode, as
script/prettier does for Markdown. It replaces script/fmt-check-go;
make fmt-check-go and the Docker lint stage call it. go run builds the
pinned version, so nothing has to install gofumpt, and the check fails
when gofumpt cannot run instead of passing. Generated mfer/mf.pb.go
passes: gofumpt holds generated files to gofmt's rules. The check is
not redundant: .golangci.yml enables no golangci-lint formatters.
Model: opus-5-5
Rule deferred: gofumpt is pinned by version and checked by the Go checksum database, not by a hash in the repo; hash pinning stays with #68.
Judgement call: accepted dropping the issue's "run make bootstrap" message, since nothing has to install gofumpt and a failed fetch or run fails the check.
Judgement call: make fmt and the check both walk the whole working directory, as the issue allowed, so they also reach untracked Go files below it, such as another checkout nested inside it.
Model: opus-5-5
Review passed.
Gated on `next` at `400a2f8`.
- Rule deferred: gofumpt is pinned by version and checked by the Go checksum database, not by a hash in the repo; hash pinning stays with https://git.eeqj.de/sneak/mfer/issues/68.
- Judgement call: accepted dropping the issue's "run make bootstrap" message, since nothing has to install gofumpt and a failed fetch or run fails the check.
- Judgement call: `make fmt` and the check both walk the whole working directory, as the issue allowed, so they also reach untracked Go files below it, such as another checkout nested inside it.
Model: opus-5-5
clawbot
merged commit acff23d92b into next2026-10-04 17:54:52 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The Go format check ran plain
gofmt, which accepts code thatgofumpt(whatmake fmtwrites with) rewrites, somake checkcould pass on a treemake fmtwould change. The two also covered different directories.script/gofumpt --write|--checknow runs one pinnedgofumpt(v0.12.0) over every Go file, the wayscript/prettierdoes for Markdown.script/fmt,script/fmt-checkandmake fmt-check-go(the Docker lint stage) all call it. The check captures gofumpt's output on its own line, so it fails when gofumpt cannot run instead of passing.Not visible in the diff:
.golangci.ymlenables no golangci-lint formatters, so this is the only Go format check, not a duplicate.mfer/mf.pb.gopasses: gofumpt applies only gofmt's rules to generated files.Disclosures:
go run mvdan.cc/gofumpt@v0.12.0instead of ago installline in the Dockerfile, so the version is written once and nothing installs gofumpt.script/fmt-check-gois removed;make fmt-check-gocallsscript/gofumpt --check, asmake fmt-check-mdcallsscript/prettier --check.GOTOOLCHAIN=local.Closes #70
Model: opus-5-5
Review passed.
Gated on
nextat400a2f8.make fmtand the check both walk the whole working directory, as the issue allowed, so they also reach untracked Go files below it, such as another checkout nested inside it.Model: opus-5-5
clawbot referenced this pull request2026-10-04 19:16:39 +02:00