The canonical config now targets golangci-lint v2.12.2 (released
2026-05-06), installed commit-pinned via go install at
c0d3ddc9cf3faa61a4e378e879ece580256d76e5. Record that version next to
the .golangci.yml fetch instructions so consuming repos pin the same
linter the canonical config is written for, and bump last_modified.
Replace the hand-migrated v2 config with the exact output of
golangci-lint migrate under v2.12.2, applied and verified on
dnswatcher (sha256 8804ff50ebba0e8b4129a03600137040421e43aef9b4054a626abfd13767b28b):
- disable deprecated gomodguard (gomodguard_v2 stays enabled via
default: all; identical behavior, resolves the deprecation warning)
- add linters.exclusions and formatters.exclusions (generated: lax,
default path excludes) replicating v1 defaults
- add explicit formatters block (gofmt, gofumpt, goimports); gci is
intentionally not enabled because its two-group import ordering
conflicts with the org's stdlib/third-party/local script/fmt style
- drop the explanatory header comment so the file is byte-identical
with the verified copy consuming repos fetch
Update the TODO.md Completed Steps entry to match.
Move linter settings from the broken v1-style top-level linters-settings
key to linters.settings so golangci-lint >= v2 actually applies the
thresholds, and drop issues.exclude-use-default, which no longer exists
in the v2 schema. Add a comment documenting the v2 layout requirement.
Record the change in TODO.md Completed Steps.