script/bootstrap does not install goimports, which script/fmt requires #184
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?
Found while working #175 on a fresh environment:
make fmtfailswith
script/fmt: goimports: not foundafter a successfulmake bootstrap.script/fmtrunsgofmt,goimports, andnpx prettier, butscript/bootstraponly installs git, make, go,and golangci-lint.
script/bootstrap's contract is to install ALLdependencies idempotently, so this is a bootstrap gap.
Remediation: install a pinned
goimportsinscript/bootstrap(e.g.
go install golang.org/x/tools/cmd/goimports@vX.Y.Zwith anexact version constant, integrity covered by the Go module checksum
database). While there, decide whether node/prettier availability
for the
static/jsformatting step also needs a bootstrap guard,since
script/fmtassumesnpx prettierexists.Definition of done:
goimports,make bootstrapfollowed bymake fmtsucceeds@latest), with aversion comment per
REPO_POLICIES.mdmainRe-verified against
main@7a34fc9on 2026-09-03 — still valid, unchanged.script/bootstrapinstalls git, make, go and golangci-lint (now pinned to 2.12.2 release archives by PR #187), but there is still nogoimportsinstall path —grep goimports script/bootstrapreturns nothing.script/fmtstill calls it unconditionally:So
make bootstrap && make fmtstill fails on a clean machine. Both open questions in the description also stand: pin thegoimportsversion exactly (no@latest), and decide whether node/npx prettierneeds a bootstrap guard for the third line.Note this interacts with #188, which would remove golangci-lint from
script/bootstrapentirely (moving lint into Docker). These two should be sequenced deliberately rather than landed in parallel — whoever picks up the second one should rebase on the first.