1- run :
2- build-tags :
3- - dev
4- timeout : 10m
5- go : 1.22
6-
1+ version : " 2"
72linters :
8- disable-all : true
93 enable :
10- - bodyclose
11- - errcheck
12- - errname
13- - gofmt
14- - goimports
15- - govet
16- - ineffassign
17- - staticcheck
18- - unused
19- - revive
4+ - errcheck
5+ - errname
6+ - govet
7+ - ineffassign
8+ - revive
9+ - staticcheck
10+ exclusions :
11+ rules :
12+ # Legitimate exclusion - we don't need to thoroughly document internal types
13+ - path : internal/
14+ linters :
15+ - revive
16+ text : exported
2017
21- issues :
22- max-issues-per-linter : 100
23- max-same-issues : 100
24- exclude-rules :
25- # Exclude some linters from running on tests files.
26- - path : _test\.go
27- linters :
28- - bodyclose
18+ # Legitimate exclusion - we don't need to thoroughly document unstable interfaces
19+ - path : x/
20+ linters :
21+ - revive
22+ text : exported
2923
30- linters-settings :
31- staticcheck :
32- # Disabled checks:
33- # - SA1019: Using a deprecated function, variable, constant or field
34- # - SA9003: Empty body in an if or else branch
35- checks : ["all", "-SA1019", "-SA9003"]
36- revive :
37- rules :
38- - name : add-constant
39- disabled : true
40- - name : atomic
41- disabled : false
42- severity : error
43- - name : argument-limit
44- disabled : false
45- - name : banned-characters
46- disabled : false
47- severity : error
48- - name : bare-return
49- disabled : true
50- - name : blank-imports
51- disabled : false
52- severity : error
53- - name : bool-literal-in-expr
54- disabled : false
55- - name : call-to-gc
56- disabled : false
57- - name : cognitive-complexity # revisit periodically - exclude tests
58- disabled : false
59- arguments : [65] # emprically set to upper bound
60- - name : comment-spacings
61- disabled : false
62- - name : confusing-naming # too opinionated
63- disabled : true
64- - name : confusing-results
65- disabled : false
66- - name : constant-logical-expr
67- disabled : false
68- severity : error
69- - name : context-as-argument
70- disabled : false
71- - name : context-keys-type
72- disabled : false
73- - name : cyclomatic # revisit - exclude tests
74- disabled : false
75- arguments : [92] # emprically set to upper bound
76- - name : datarace
77- disabled : false
78- severity : error
79- - name : deep-exit
80- disabled : false
81- - name : defer # often wrong
82- disabled : false
83- - name : dot-imports
84- disabled : false
85- severity : error
86- - name : duplicated-imports
87- disabled : false
88- severity : error
89- - name : early-return
90- disabled : false
91- - name : empty-block
92- disabled : false
93- - name : empty-lines # maybe correct but annoying
94- disabled : true
95- - name : enforce-map-style
96- disabled : false
97- severity : error
98- - name : enforce-slice-style
99- disabled : false
100- severity : error
101- - name : errorf
102- disabled : false
103- severity : error
104- - name : error-naming
105- disabled : false
106- severity : error
107- - name : error-return # fine, but unnecessarily picky
108- disabled : false
109- - name : error-strings # fine, but unnecessarily picky
110- disabled : false
111- - name : exported # possibly too opinionated
112- disabled : false
113- - name : file-header
114- disabled : false
115- severity : error
116- - name : flag-parameter # often wrong
117- disabled : true
118- - name : function-length # revisit - exclude tests
119- disabled : false
120- arguments : [136, 702] # emprically set to upper bound
121- - name : function-result-limit
122- disabled : false
123- - name : get-return
124- disabled : false
125- - name : identical-branches
126- disabled : false
127- severity : error
128- - name : if-return # reasonable candidate but too opinonated
129- disabled : false
130- - name : import-alias-naming
131- disabled : false
132- - name : import-shadowing # sounds nice, but too many good variable names are taken up by packages.
133- disabled : false
134- - name : increment-decrement # just style
135- disabled : false
136- - name : indent-error-flow # fine, but unnecessarily picky
137- disabled : true
138- - name : line-length-limit
139- disabled : true
140- - name : max-public-structs # too opinionated
141- disabled : true
142- - name : modifies-parameter
143- disabled : false
144- severity : error
145- - name : modifies-value-receiver
146- disabled : false
147- severity : error
148- - name : nested-structs # deliberately used in some places
149- disabled : true
150- - name : optimize-operands-order
151- disabled : false
152- severity : error
153- - name : package-comments
154- disabled : false
155- severity : error
156- - name : range
157- disabled : false
158- severity : error
159- - name : range-val-address
160- disabled : false
161- severity : error
162- - name : range-val-in-closure
163- disabled : false
164- severity : error
165- - name : receiver-naming # unnecessarily picky
166- disabled : true
167- - name : redefines-builtin-id # useful
168- disabled : false
169- - name : redundant-import-alias
170- disabled : false
171- - name : string-of-int
172- disabled : false
173- severity : error
174- - name : string-format
175- disabled : false
176- severity : error
177- - name : struct-tag # often wrong
178- disabled : false
179- - name : superfluous-else
180- disabled : false
181- severity : error
182- - name : time-equal
183- disabled : false
184- severity : error
185- - name : time-naming
186- disabled : false
187- - name : unchecked-type-assertion # a panic here is sometimes correct as a programming error
188- disabled : false
189- - name : unconditional-recursion
190- disabled : false
191- severity : error
192- - name : unexported-naming
193- disabled : false
194- severity : error
195- - name : unexported-return
196- disabled : false
197- - name : unhandled-error # complains about e.g. fmt.Println
198- disabled : true
199- - name : unnecessary-stmt # opinionated
200- disabled : false
201- - name : unreachable-code
202- disabled : false
203- severity : error
204- - name : unused-parameter
205- disabled : false
206- - name : unused-receiver # too picky
207- disabled : true
208- - name : useless-break
209- disabled : false
210- - name : use-any # opinionated
211- disabled : true
212- - name : var-declaration # too picky
213- disabled : false
214- - name : var-naming # incompatible with this codebase
215- disabled : true
216- - name : waitgroup-by-value
217- disabled : false
218- severity : error
24+ # Legitimate exclusion - we don't need to thoroughly document internal packages
25+ - path : internal/
26+ linters :
27+ - revive
28+ text : package-comments
29+
30+ # We will make an effort to remove this exclusion
31+ - path : types/
32+ linters :
33+ - revive
34+ text : exported
0 commit comments