generated from TBD54566975/tbd-project-template
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy path.golangci.yml
143 lines (139 loc) · 3.97 KB
/
.golangci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
run:
tests: true
timeout: 5m
skip-dirs:
- resources
- old
skip-files:
- cmd/protopkg/main.go
output:
print-issued-lines: false
linters:
enable-all: true
disable:
- maligned
- megacheck
- lll
- typecheck # `go build` catches this, and it doesn't currently work with Go 1.11 modules
- goimports # horrendously slow with go modules :(
- dupl # has never been actually useful
- gochecknoglobals
- gochecknoinits
- interfacer # author deprecated it because it provides bad suggestions
- funlen
- whitespace
- godox
- wsl
- dogsled
- gomnd
- gocognit
- gocyclo
- scopelint
- godot
- nestif
- testpackage
- goerr113
- gci
- gofumpt
- exhaustivestruct
- nlreturn
- forbidigo
- cyclop
- paralleltest
- ifshort # so annoying
- golint
- tagliatelle
- gomoddirectives
- varnamelen
- ireturn
- containedctx
- nilnil
- contextcheck
- nonamedreturns
- exhaustruct
- nosnakecase
- nosprintfhostport
- nilerr
- goconst
- prealloc
- deadcode # doesn't support generics
- varcheck # doesn't support generics
- structcheck # doesn't support generics
- rowserrcheck # doesn't support generics
- wastedassign # doesn't support generics
- goprintffuncname
- dupword
- errchkjson
- musttag
- gofmt # autofmt
- interfacebloat
- tagalign
- nolintlint
- wrapcheck # We might want to re-enable this if we manually wrap all the existing errors with fmt.Errorf
- protogetter
linters-settings:
exhaustive:
default-signifies-exhaustive: true
govet:
check-shadowing: true
use-installed-packages: true
dupl:
threshold: 100
goconst:
min-len: 8
min-occurrences: 3
gocyclo:
min-complexity: 20
gocritic:
disabled-checks:
- ifElseChain
depguard:
rules:
main:
deny:
- pkg: github.com/pkg/errors
desc: "use fmt.Errorf or errors.New"
- pkg: github.com/stretchr/testify
desc: "use fmt.Errorf or errors.New"
- pkg: github.com/alecthomas/errors
desc: "use fmt.Errorf or errors.New"
- pkg: braces.dev/errtrace
desc: "use fmt.Errorf or errors.New"
- pkg: os/exec
desc: "use github.com/TBD54566975/ftl/internal/exec"
- pkg: golang.design/x/reflect
desc: "use github.com/TBD54566975/ftl/internal/reflect"
# wrapcheck:
# ignorePackageGlobs:
# - github.com/TBD54566975/ftl/*
issues:
max-same-issues: 0
max-issues-per-linter: 0
exclude-use-default: false
exclude:
# Captured by errcheck.
- "^(G104|G204):"
# Very commonly not checked.
- 'Error return value of .(.*\.Help|.*\.MarkFlagRequired|(os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*Print(f|ln|)|os\.(Un)?Setenv). is not checked'
# Weird error only seen on Kochiku...
- "internal error: no range for"
- 'exported method `.*\.(MarshalJSON|UnmarshalJSON|URN|Payload|GoString|Close|Provides|Requires|ExcludeFromHash|MarshalText|UnmarshalText|Description|Check|Poll|Severity)` should have comment or be unexported'
- "composite literal uses unkeyed fields"
- 'declaration of "err" shadows declaration'
- "by other packages, and that stutters"
- "Potential file inclusion via variable"
- "at least one file in a package should have a package comment"
- "bad syntax for struct tag pair"
- "should have comment or be unexported"
- "package-comments"
- "parameter testing.TB should have name tb"
- "blank-imports"
- 'should have comment \(or a comment on this block\) or be unexported'
- caseOrder
- unused-parameter
- "^loopclosure:"
- 'shadow: declaration of "ctx" shadows declaration at'
- 'shadow: declaration of "ok" shadows declaration'
- "^dot-imports:"
- "fmt.Errorf can be replaced with errors.New"
- "fmt.Sprintf can be replaced with string concatenation"