Update golangci-lint to v2.12.2 with canonical config #62
Reference in New Issue
Block a user
Delete Branch "golangci-v2.12.2"
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?
Updates golangci-lint to v2.12.2 everywhere it is pinned and installs the canonical
.golangci.yml, then remediates every finding the new linter/config surfaces somake checkis green.Version bump
Dockerfilelint stage:golangci/golangci-lint:v2.11.3-alpine->v2.12.2-alpine(digest-pinned, date comment updated)Makefiledepstarget:go installmoved from the old v1 module path at@latestto the pinnedgithub.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.12.2.golangci.ymlreplaced with the canonical config (v2 schema; settings underlinters.settingsso the thresholds actually apply;default: allwith the standard six disables)script/bootstrapinstalls golangci-lint via the system package manager and carries no version pin, so it is unchanged.gitea/workflows/check.yml) only runsscript/cibuild, so it needed no changeLint remediation
The canonical config surfaced ~3,300 findings across 56k lines. All are fixed, behavior-preserving; incorporates and supersedes the per-package mechanical passes already merged to
main(refs #61). Highlights:err113: dynamic errors replaced with package sentinels +%wwrapping; comparisons viaerrors.Isgoprintffuncname: printf-style helpers renamed with anfsuffix (ui.Writermessage methods,cli.ReportErrorf,database.Fatalf) and all call sites updatedrevivestutter renames:blob.Handler,blob.WithReader,blob.ChunkPosition,storage.URL,storage.Info; missing doc comments addedcontextcheck/noctx:context.Contextthreaded throughblob.Packerand the scanner call sites; context-awareexec/sqlvariantsfunlen/cyclop/gocognit/dupl: oversized and duplicated functions split into focused helpers (production and test code)t.Parallel()added where safe (global logger init kept in the serial phase for-race),t.TempDir()/t.Helper()adopted, several suites converted to external test packagesgosec: bounded integer conversions,ReadHeaderTimeouton the test HTTP server; remaining warnings suppressed per-site with justificationsnolintdirectives are rare, targeted, and each carries a reason (e.g.nilnilnot-found contract in the repository layer, fx module globals, on-disk snake_case struct tags)log.LogOptionsalias (callers migrated tolog.Options)make check(tests with-race, lint, fmt-check) passes.