1 Commits

Author SHA1 Message Date
31082fc77d REPO_POLICIES: canonical golangci-lint is v2.13.2
All checks were successful
check / check (push) Successful in 43s
v2.12.2 is built with Go 1.26 and cannot check a module whose go
directive is 1.27, so repos on the current Go release cannot use the
canonical version. Asked for by
sneak/template-app-go#1 (item 7).

Model: fable-5-1
2026-09-05 04:44:53 +00:00
3 changed files with 6 additions and 37 deletions

View File

@@ -10,21 +10,14 @@ run:
linters:
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:
# Genuinely incompatible with project patterns
- exhaustruct # Requires all struct fields
- depguard # Dependency allow/block lists
- godot # Requires comments to end with periods
- wsl # Deprecated, replaced by wsl_v5
- 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.
- wsl # Deprecated, replaced by wsl_v5
- gomodguard # Deprecated, replaced by gomodguard_v2
settings:
lll:
line-length: 88
@@ -35,27 +28,6 @@ linters:
max-complexity: 15
dupl:
threshold: 100
# Only decisions already recorded in the Go package defaults are
# listed here. Entries match the module path exactly (the default
# match-type), so a differently-versioned module path is unaffected.
gomodguard_v2:
blocked:
- module: github.com/rs/zerolog
recommendations:
- log/slog
reason: "Structured logging is stdlib log/slog."
- module: github.com/go-redis/redis
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
reason: "No unified diff output; use go-udiff."
- module: github.com/hexops/gotextdiff
recommendations:
- github.com/aymanbagabas/go-udiff
reason: "Unmaintained fork; use go-udiff."
issues:
max-issues-per-linter: 0

View File

@@ -21,11 +21,6 @@ fmt-check, and commit.
# 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
config already deployed byte-identical across the org's Go repos (settings
under `linters.settings` so thresholds like lll/funlen/cyclop/dupl actually

View File

@@ -1,6 +1,6 @@
---
title: Repository Policies
last_modified: 2026-08-19
last_modified: 2026-09-05
---
This document covers repository structure, tooling, and workflow standards. Code
@@ -270,8 +270,10 @@ style conventions are in separate documents:
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
canonical, which only the user merges. The canonical golangci-lint version is
v2.12.2 (released 2026-05-06), installed commit-pinned via
`go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@c0d3ddc9cf3faa61a4e378e879ece580256d76e5`.
v2.13.2 (released 2026-08-27, built with Go 1.27; a linter built with an older
Go cannot check a module whose `go` directive is newer), installed
commit-pinned via
`go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@27774aaf853a4fd21f1dd5e69439459dc1b26e68`.
- When pinning images or packages by hash, add a comment above the reference
with the version and date (YYYY-MM-DD).