Compare commits
1 Commits
enable-dep
...
gomodguard
| Author | SHA1 | Date | |
|---|---|---|---|
| bb19029f53 |
@@ -10,13 +10,21 @@ run:
|
|||||||
|
|
||||||
linters:
|
linters:
|
||||||
default: all
|
default: all
|
||||||
|
enable:
|
||||||
|
# Successor to the deprecated gomodguard. Named explicitly, rather than
|
||||||
|
# left to `default: all`, because it carries the module policy below.
|
||||||
|
- gomodguard_v2
|
||||||
disable:
|
disable:
|
||||||
# Genuinely incompatible with project patterns
|
# Genuinely incompatible with project patterns
|
||||||
- exhaustruct # Requires all struct fields
|
- exhaustruct # Requires all struct fields
|
||||||
|
- depguard # Dependency allow/block lists
|
||||||
- godot # Requires comments to end with periods
|
- godot # Requires comments to end with periods
|
||||||
- wsl # Deprecated, replaced by wsl_v5
|
|
||||||
- wrapcheck # Too verbose for internal packages
|
- wrapcheck # Too verbose for internal packages
|
||||||
- varnamelen # Short names like db, id are idiomatic Go
|
- 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.
|
||||||
|
- wsl # Deprecated, replaced by wsl_v5
|
||||||
|
- gomodguard # Deprecated, replaced by gomodguard_v2
|
||||||
settings:
|
settings:
|
||||||
lll:
|
lll:
|
||||||
line-length: 88
|
line-length: 88
|
||||||
@@ -27,32 +35,27 @@ linters:
|
|||||||
max-complexity: 15
|
max-complexity: 15
|
||||||
dupl:
|
dupl:
|
||||||
threshold: 100
|
threshold: 100
|
||||||
depguard:
|
# Only decisions already recorded in the Go package defaults are
|
||||||
# Test-support code must not be compiled into the shipped binary. A
|
# listed here. Entries match the module path exactly (the default
|
||||||
# test-support package exists to hand a test privileges the program
|
# match-type), so a differently-versioned module path is unaffected.
|
||||||
# itself must never have, so a file that is not a test must not import
|
gomodguard_v2:
|
||||||
# one. Test files, and the files inside a package whose directory name
|
blocked:
|
||||||
# ends in `test`, are where that code belongs, and are exempt.
|
- module: github.com/rs/zerolog
|
||||||
#
|
recommendations:
|
||||||
# The deny list below is the one part of this file a repository is
|
- log/slog
|
||||||
# expected to extend, and the only part it may. depguard matches an
|
reason: "Structured logging is stdlib log/slog."
|
||||||
# import path against a list of prefixes, so it cannot be told "any path
|
- module: github.com/go-redis/redis
|
||||||
# whose last segment ends in test"; a repository's own test-support
|
recommendations:
|
||||||
# packages have to be named here one at a time, by full import path,
|
- github.com/redis/go-redis/v9
|
||||||
# under a module path that differs from repository to repository. Add
|
reason: "Pre-fork module; use the maintained go-redis v9."
|
||||||
# them; change nothing else.
|
- module: github.com/sergi/go-diff
|
||||||
rules:
|
recommendations:
|
||||||
test-support:
|
- github.com/aymanbagabas/go-udiff
|
||||||
list-mode: lax
|
reason: "No unified diff output; use go-udiff."
|
||||||
files:
|
- module: github.com/hexops/gotextdiff
|
||||||
- "$all"
|
recommendations:
|
||||||
- "!$test"
|
- github.com/aymanbagabas/go-udiff
|
||||||
- "!**/*test/**"
|
reason: "Unmaintained fork; use go-udiff."
|
||||||
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.
|
|
||||||
|
|
||||||
issues:
|
issues:
|
||||||
max-issues-per-linter: 0
|
max-issues-per-linter: 0
|
||||||
|
|||||||
5
TODO.md
5
TODO.md
@@ -21,6 +21,11 @@ fmt-check, and commit.
|
|||||||
|
|
||||||
# Completed Steps
|
# Completed Steps
|
||||||
|
|
||||||
|
- 2026-08-31: Migrated the canonical `.golangci.yml` from the deprecated
|
||||||
|
`gomodguard` to `gomodguard_v2`: the old linter is disabled by name (which is
|
||||||
|
what silences the deprecation warning), the successor is named explicitly in
|
||||||
|
`linters.enable`, and it carries a `blocked` module list drawn only from
|
||||||
|
decisions already recorded in the Go package defaults.
|
||||||
- 2026-08-07: Set the canonical `.golangci.yml` to the org-standard v2-schema
|
- 2026-08-07: Set the canonical `.golangci.yml` to the org-standard v2-schema
|
||||||
config already deployed byte-identical across the org's Go repos (settings
|
config already deployed byte-identical across the org's Go repos (settings
|
||||||
under `linters.settings` so thresholds like lll/funlen/cyclop/dupl actually
|
under `linters.settings` so thresholds like lll/funlen/cyclop/dupl actually
|
||||||
|
|||||||
@@ -269,11 +269,7 @@ style conventions are in separate documents:
|
|||||||
byte-identical, so that no repo can quietly loosen its own linting. Linter
|
byte-identical, so that no repo can quietly loosen its own linting. Linter
|
||||||
configuration changes are made to the canonical copy in the `prompts` repo and
|
configuration changes are made to the canonical copy in the `prompts` repo and
|
||||||
reach consuming repos by re-vendoring; an agent may open a PR against
|
reach consuming repos by re-vendoring; an agent may open a PR against
|
||||||
canonical, which only the user merges. One list is exempt from byte-identity,
|
canonical, which only the user merges. The canonical golangci-lint version is
|
||||||
because it cannot be written once for every repo: the `deny` list of the
|
|
||||||
`test-support` depguard rule, where a repo names its own test-support packages
|
|
||||||
by full import path. A repo adds entries there and changes nothing else, and a
|
|
||||||
re-vendor carries its entries forward. The canonical golangci-lint version is
|
|
||||||
v2.12.2 (released 2026-05-06), installed commit-pinned via
|
v2.12.2 (released 2026-05-06), installed commit-pinned via
|
||||||
`go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@c0d3ddc9cf3faa61a4e378e879ece580256d76e5`.
|
`go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@c0d3ddc9cf3faa61a4e378e879ece580256d76e5`.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user