vitess-gh/.golangci.yml

164 строки
4.0 KiB
YAML

run:
go: 1.18
timeout: 10m
skip-dirs:
- go/vt/topo/k8stopo/client
linters-settings:
errcheck:
exclude: ./misc/errcheck_excludes.txt
goimports:
local-prefixes: vitess.io/vitess
govet:
disable: # not supported when using Generics in 1.18
- nilness
- unusedwrite
linters:
disable-all: true
enable:
# Defaults
- deadcode
- errcheck
- govet
- ineffassign
- structcheck
- typecheck
- varcheck
- staticcheck
- gosimple
# Extras
- gofmt
- goimports
- exportloopref
# revive is a replacement for golint, but we do not run it in CI for now.
# This is only enabled as a post-commit hook
# - revive
issues:
exclude-rules:
- path: '^go/vt/proto/'
linters:
- errcheck
- goimports
- path: '^go/vt/vtadmin/cache/'
linters:
- structcheck
### BEGIN: errcheck exclusion rules. Each rule should be considered
# a TODO for removal after adding error checks to that package/file/etc,
# except where otherwise noted.
- path: '^go/cmd/(vtcombo|vtgateclienttest|vtorc)/'
linters:
- errcheck
- path: '^go/mysql/'
linters:
- errcheck
- path: '^go/mysql/collations'
linters:
- revive
- path: '^go/pools/.*_test.go'
linters:
- errcheck
- path: '^go/sqltypes/'
linters:
- errcheck
- path: '^go/stats/statsd/'
linters:
- errcheck
- path: '^go/test/'
linters:
- errcheck
- path: '^go/vt/automation/'
linters:
- errcheck
- path: '^go/vt/mysqlctl/'
linters:
- errcheck
# (NB: @ajm188) Technically, the below `exclude-rules` for `go/vt/orchestrator/external` is
# redundant with this line, but we actually want to permanently ignore orchestrator's
# vendored code, so we are keeping the exclusion rules separate because this one
# should be temporary while the latter should be permanent.
- path: '^go/vt/orchestrator/'
linters:
- errcheck
# This subtree should be permanently excluded, as it's vendored code.
- path: '^go/vt/orchestrator/external/'
linters:
- errcheck
- path: '^go/vt/schemamanager/'
linters:
- errcheck
- path: '^go/vt/servenv/'
linters:
- errcheck
# This code is autogenerated and should be permanently excluded.
- path: '^go/vt/sqlparser/(ast_format|ast_format_fast).go'
linters:
- errcheck
- path: '^go/vt/sqlparser/goyacc'
linters:
- errcheck
- path: '^go/vt/throttler/.*_test.go'
linters:
- errcheck
- path: '^go/vt/topo/.*/*._test.go'
linters:
- errcheck
- path: '^go/vt/vtcombo/'
linters:
- errcheck
- path: '^go/vt/vtctl/[^/]*.go'
linters:
- errcheck
- path: '^go/vt/vtctl/grpcvtctlclient/'
linters:
- errcheck
- path: '^go/vt/vtctl/grpcvtctlserver/'
linters:
- errcheck
- path: '^go/vt/vtctld/(schema|.*_test).go'
linters:
- errcheck
- path: '^go/vt/vtexplain/'
linters:
- errcheck
- path: '^go/vt/vtgate/.*_test.go'
linters:
- errcheck
- path: '^go/vt/vtgr/'
linters:
- errcheck
- path: '^go/vt/vttablet/(customrule|filelogger|grpctmserver|onlineddl|sandboxconn|tabletserver)/'
linters:
- errcheck
- path: '^go/vt/vttablet/tabletmanager/vreplication'
linters:
- errcheck
- path: '^go/vt/vttablet/(.*endtoend.*|.*_test.go)'
linters:
- errcheck
- path: '^go/vt/vttest'
linters:
- errcheck
- path: '^go/vt/worker'
linters:
- errcheck
- path: '^go/vt/workflow'
linters:
- errcheck
- path: '^go/vt/wrangler'
linters:
- errcheck
- path: '^go/vt/zkctl'
linters:
- errcheck
### END: errcheck exclusion rules
# https://github.com/golangci/golangci/wiki/Configuration
service:
golangci-lint-version: 1.46.2 # use the fixed version to not introduce new linters unexpectedly