73 lines
2.4 KiB
YAML
73 lines
2.4 KiB
YAML
# .golangci.yml - reasonable defaults for steamcache2
|
|
# Run with: golangci-lint run ./...
|
|
# Install: go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
|
|
|
|
run:
|
|
timeout: 5m
|
|
modules-download-mode: readonly
|
|
|
|
linters:
|
|
disable-all: true
|
|
enable:
|
|
# errcheck intentionally not enabled yet (pre-existing unchecked I/O in core paths).
|
|
# Re-enable per-package after larger refactors reduce surface area.
|
|
# - errcheck
|
|
- gosec
|
|
- govet
|
|
- ineffassign
|
|
- misspell
|
|
- staticcheck
|
|
- unused
|
|
- gofmt
|
|
- goimports
|
|
|
|
linters-settings:
|
|
errcheck:
|
|
check-type-assertions: false # many existing unchecked in http/metrics paths
|
|
check-blank: false
|
|
gosec:
|
|
excludes:
|
|
- G104 # errors unhandled in defer/close common in Go
|
|
- G304 # file inclusion via variable (config paths controlled)
|
|
- G115 # int->uint casts on positive cache sizes (pre-existing; safe in context)
|
|
- G301 # MkdirAll 0755 for cache dirs (pre-existing, functional requirement)
|
|
- G306 # WriteFile 0644 for user config (standard, not secret)
|
|
staticcheck:
|
|
checks: ["all", "-SA1019"] # allow deprecated for now if any
|
|
govet:
|
|
enable-all: true
|
|
disable:
|
|
- fieldalignment # performance not critical here
|
|
- shadow # pre-existing in large ServeHTTP; avoid noise for now
|
|
|
|
# errcheck remains disabled globally due to pre-existing noise in http and cache paths.
|
|
# Re-enable plan: enable per-package after larger refactors; consider adding a coverage gate later.
|
|
# Current config keeps baseline green while allowing incremental strictness.
|
|
|
|
issues:
|
|
max-issues-per-linter: 0
|
|
max-same-issues: 0
|
|
exclude-use-default: false
|
|
exclude-dirs:
|
|
- dist
|
|
- bin
|
|
exclude-rules:
|
|
- path: _test\.go
|
|
linters:
|
|
- errcheck
|
|
- gosec # tests often use weak patterns intentionally
|
|
# Pre-existing intentional empty branches (comments explain); cleaned in later refactors
|
|
- linters:
|
|
- staticcheck
|
|
text: "SA9003: empty branch"
|
|
# Double-check locking idiom in predictive (content assigned only on miss path); pre-existing
|
|
- path: vfs/predictive/predictive.go
|
|
linters:
|
|
- staticcheck
|
|
text: "SA4006"
|
|
# Unused field in predictive (likely remnant); pre-existing, excluded to keep lint green for hygiene
|
|
- path: vfs/predictive/predictive.go
|
|
linters:
|
|
- unused
|
|
text: "mu"
|