1- # ##golangci-lint:version: 2.1
1+ # ##golangci-lint:version: 2.6
22version : " 2"
3-
43run :
54 modules-download-mode : readonly
65
@@ -11,39 +10,66 @@ issues:
1110linters :
1211 default : all
1312 disable :
13+ - funcorder
1414 - cyclop
1515 - depguard
1616 - errname
17- - funlen
18- - gocognit
19- - gocyclo
2017 - godox
2118 - goheader
2219 - govet
2320 - importas
2421 - intrange
2522 - ireturn
2623 - misspell
27- - mnd
2824 - nlreturn
2925 - nonamedreturns
3026 - tagalign
3127 - tagliatelle
3228 - varnamelen
3329 - whitespace
30+ - zerologlint
31+ - sloglint
32+ - noinlineerr # because that's a stupid rule
33+ - wsl # replaced by wsl_v5
3434 settings :
3535 lll :
3636 line-length : 120
3737 tab-width : 2
38+ funlen :
39+ lines : 0
40+ ignore-comments : true
41+ statements : 50
42+ gocognit :
43+ min-complexity : 20
44+ gocyclo :
45+ min-complexity : 10
46+ errcheck :
47+ exclude-functions :
48+ - (*bytes.Buffer).Write
49+ - (*bytes.Buffer).WriteByte
50+ - (*bytes.Buffer).WriteRune
51+ - (*bytes.Buffer).WriteString
52+ - (*strings.Builder).Write
53+ - (*strings.Builder).WriteByte
54+ - (*strings.Builder).WriteRune
55+ - (*strings.Builder).WriteString
56+ - (*os.File).Close
3857 exhaustruct :
3958 exclude :
4059 - net/http\.Transport
4160 - net/http\.Server
4261 - net/http\.Client
62+ - net/url\.URL
4363 - crypto/tls\.Config
64+ - testing/fstest\.MapFile
65+ forbidigo :
66+ forbid :
67+ - pattern : (?i)(^|\.)print(f|ln)?$
68+ gomoddirectives :
69+ replace-local : true
4470 gosec :
4571 config :
46- G306 : " 0666" # enable to create files with permissions 0666 (before umask) or lesser
72+ G306 : " 0666"
4773 mnd :
4874 ignored-functions :
4975 - os\.(OpenFile|WriteFile|Chmod),p?flag\..*
@@ -52,63 +78,155 @@ linters:
5278 confidence : 0.8
5379 enable-all-rules : true
5480 rules :
55- - name : function-length
81+ # ========== ACTIVE REVIVE RULES ==========
82+ - name : argument-limit
5683 arguments :
57- - 50
58- - 0
84+ - 6
5985 severity : warning
6086 disabled : false
87+ - name : atomic
88+ disabled : false
89+ - name : blank-imports
90+ disabled : false
91+ - name : bool-literal-in-expr
92+ disabled : false
93+ - name : call-to-gc
94+ disabled : false
95+ - name : confusing-naming
96+ disabled : false
97+ - name : confusing-results
98+ disabled : false
99+ - name : constant-logical-expr
100+ disabled : false
101+ - name : context-keys-type
102+ disabled : false
103+ - name : deep-exit
104+ disabled : false
105+ - name : defer
106+ disabled : false
107+ - name : dot-imports
108+ disabled : false
109+ - name : duplicated-imports
110+ disabled : false
111+ - name : early-return
112+ disabled : false
113+ - name : empty-block
114+ disabled : false
115+ - name : error-naming
116+ disabled : false
117+ - name : error-return
118+ disabled : false
119+ - name : error-strings
120+ disabled : false
121+ - name : errorf
122+ disabled : false
61123 - name : function-result-limit
62124 arguments :
63125 - 3
64126 severity : warning
65127 disabled : false
66- - name : cognitive-complexity
67- arguments :
68- - 20
69- severity : warning
128+ - name : get-return
70129 disabled : false
71- - name : cyclomatic
72- arguments :
73- - 10
74- severity : warning
130+ - name : identical-branches
75131 disabled : false
76- - name : argument-limit
77- arguments :
78- - 6
79- severity : warning
132+ - name : if-return
80133 disabled : false
81- - name : unhandled-error
82- arguments :
83- - bytes\.Buffer\.Write.*
84- - strings\.Builder\.Write.*
134+ - name : imports-blocklist
135+ disabled : false
136+ - name : increment-decrement
137+ disabled : false
138+ - name : indent-error-flow
139+ disabled : false
140+ - name : modifies-parameter
141+ disabled : false
142+ - name : modifies-value-receiver
143+ disabled : false
144+ - name : nested-structs
145+ disabled : false
146+ - name : optimize-operands-order
85147 disabled : false
86- - name : comment-spacings
148+ - name : range
149+ disabled : false
150+ - name : range-val-address
151+ disabled : false
152+ - name : receiver-naming
153+ disabled : false
154+ - name : string-of-int
155+ disabled : false
156+ - name : superfluous-else
157+ disabled : false
158+ - name : time-equal
159+ disabled : false
160+ - name : time-naming
161+ disabled : false
162+ - name : unexported-naming
163+ disabled : false
164+ - name : unexported-return
165+ disabled : false
166+ - name : unnecessary-stmt
167+ disabled : false
168+ - name : unreachable-code
169+ disabled : false
170+ - name : unused-receiver
171+ disabled : false
172+ - name : use-any
173+ disabled : false
174+ - name : useless-break
175+ disabled : false
176+ - name : var-declaration
177+ disabled : false
178+ - name : var-naming
179+ disabled : false
180+ - name : waitgroup-by-value
181+ disabled : false
182+
183+ # ========== DISABLED - REPLACED BY STANDALONE LINTERS ==========
184+ - name : add-constant # can be replaced by goconst
87185 disabled : true
88- - name : unchecked-type-assertion
186+ - name : banned-characters # can be replaced by asciicheck
89187 disabled : true
90- - name : max-public-structs
188+ - name : cognitive-complexity # replaced by gocognit
91189 disabled : true
92- - name : banned-characters
190+ - name : comment-spacings # can be replaced by whitespace
93191 disabled : true
94- - name : file-header
192+ - name : context-as-argument # replaced by contextcheck
95193 disabled : true
96- - name : flag-parameter
194+ - name : cyclomatic # replaced by gocyclo
195+ disabled : true
196+ - name : empty-lines # replaced by wsl
197+ disabled : true
198+ - name : file-header # can be replaced by goheader
199+ disabled : true
200+ - name : function-length # replaced by funlen
201+ disabled : true
202+ - name : import-shadowing # can be replaced by gocritic
203+ disabled : true
204+ - name : line-length-limit # replaced by lll
205+ disabled : true
206+ - name : range-val-in-closure # can be replaced by copyloopvar
97207 disabled : true
98- - name : struct-tag
208+ - name : redefines-builtin-id # replaced by predeclared
99209 disabled : true
100- - name : add-constant
210+ - name : string-format # replaced by staticcheck
101211 disabled : true
102- - name : empty-lines
212+ - name : struct-tag # can be replaced by tagliatelle
103213 disabled : true
104- - name : range-val-in-closure
214+ - name : unhandled-error # replaced by errcheck
105215 disabled : true
106- - name : line-length-limit # we use lll linter
216+ - name : unused-parameter # replaced by unparam
107217 disabled : true
218+
219+ # ========== DISABLED - PROJECT SPECIFIC REASONS ==========
108220 - name : exported # overall annoying linter, maybe configure and re-enable later
109221 disabled : true
222+ - name : flag-parameter
223+ disabled : true
224+ - name : max-public-structs
225+ disabled : true
110226 - name : package-comments # interferes with file-level nolint rules
111227 disabled : true
228+ - name : unchecked-type-assertion
229+ disabled : true
112230 testifylint :
113231 disable :
114232 - require-error
@@ -120,12 +238,19 @@ linters:
120238 - ProcessSetupDone
121239 - ReadInConfig
122240 - google\.golang\.org/grpc/status\.Error.*\(
123- wsl :
124- force-case-trailing-whitespace : 1
125- allow-trailing-comment : true
126- allow-separated-leading-comment : true
241+ wsl_v5 :
242+ default : all
243+ branch-max-lines : 4
244+ case-max-lines : 2
245+ allow-whole-block : true
246+ allow-first-in-block : true
247+
127248
128249 exclusions :
250+ rules :
251+ - path : " _test\\ .go"
252+ linters :
253+ - funlen
129254 paths :
130255 - vendor/.* # ignore vendor
131- - .*\.gen\.go$ # ignore generated files
256+ - .*\.gen\.go$ # ignore generated files
0 commit comments