run: go: 1.19 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 - errcheck - govet - ineffassign - typecheck - staticcheck - gosimple # Extras - gofmt - goimports - exportloopref - bodyclose # 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.50.1 # use the fixed version to not introduce new linters unexpectedly