Update the canonical .golangci.yml for golangci-lint v2.15.0 (closes #142)
check / check (push) Canceled after 0s

Moves the pin to v2.15.0 and enables canonicalheader again, because that
release fixes the random misses behind
#105.

The depguard exemption reached every directory below one ending in test,
and a whole checkout under such a directory. It now covers only the files
directly inside. gomodguard_v2 also blocks github.com/go-redis/redis/v9,
whose pre-releases can still be imported.

Three comments are corrected. A new comment says the file has no
formatters section, so golangci-lint run checks no formatting.

Model: opus-5-5
This commit is contained in:
sneak committed 2026-11-03 20:58:36 +00:00
1 parent 430964ceac
commit 746cad18dc
3 files changed
+36 -13

No files matched your search

+15 -9
View File
@@ -3,6 +3,9 @@ version: "2"
# Config schema uses the golangci-lint v2 layout (settings live under
# linters.settings, not top-level linters-settings) so that the
# thresholds below are actually applied by golangci-lint >= v2.
#
# This file has no formatters section, so golangci-lint run checks no
# formatting. A repository's script/fmt-check checks it, on the host.
run:
timeout: 5m
@@ -16,17 +19,15 @@ linters:
- gomodguard_v2
disable:
# Genuinely incompatible with project patterns
- exhaustruct # Requires all struct fields
- exhaustruct_v5 # Requires all struct fields (successor to exhaustruct)
- exhaustruct_v5 # Requires all struct fields
- godot # Requires comments to end with periods
- wrapcheck # Too verbose for internal packages
- varnamelen # Short names like db, id are idiomatic Go
# Deprecated: the warning is attached to the old name, so it is
# silenced by disabling that name, not by enabling the successor.
- exhaustruct # Deprecated, replaced by exhaustruct_v5
- wsl # Deprecated, replaced by wsl_v5
- gomodguard # Deprecated, replaced by gomodguard_v2
# Misses findings at random in v2.14.0; back once a pinned release fixes it
- canonicalheader
settings:
lll:
line-length: 88
@@ -42,7 +43,8 @@ linters:
# test-support package exists to hand a test privileges the program
# itself must never have, so a file that is not a test must not import
# one. Test files, and the files inside a package whose directory name
# ends in `test`, are where that code belongs, and are exempt.
# ends in `test`, are where that code belongs, and are exempt. A package
# in a subdirectory of that directory is not exempt.
#
# The deny list below is the one part of this file a repository is
# expected to extend, and the only part it may. depguard matches an
@@ -57,14 +59,14 @@ linters:
files:
- "$all"
- "!$test"
- "!**/*test/**"
- "!**/*test/*"
deny:
- pkg: net/http/httptest
desc: >-
Test-support code belongs in test files and in packages whose
directory name ends in test, not in the shipped binary.
# Only decisions already recorded in the Go package defaults are
# listed here. Every entry matches the module path exactly.
# Each entry names a module not to use and what to use instead. Every
# entry matches the module path exactly.
gomodguard_v2:
blocked:
- module: github.com/rs/zerolog
@@ -73,7 +75,7 @@ linters:
reason: "Structured logging is stdlib log/slog."
# One entry per pre-fork module path, because the later releases
# are separate paths. A prefix match would be shorter but would
# also reach github.com/go-redis/redismock, the test double for
# also reach github.com/go-redis/redismock/v9, the test double for
# the successor these entries recommend.
- module: github.com/go-redis/redis
recommendations:
@@ -87,6 +89,10 @@ linters:
recommendations:
- github.com/redis/go-redis/v9
reason: "Pre-fork module; use the maintained go-redis v9."
- module: github.com/go-redis/redis/v9
recommendations:
- github.com/redis/go-redis/v9
reason: "Pre-fork module; use the maintained go-redis v9."
- module: github.com/sergi/go-diff
recommendations:
- github.com/aymanbagabas/go-udiff