|
1 | | ---- |
| 1 | +version: "2" |
| 2 | + |
2 | 3 | run: |
3 | | - concurrency: 6 |
4 | | - timeout: 5m |
| 4 | + modules-download-mode: readonly |
| 5 | + |
| 6 | +issues: |
| 7 | + max-issues-per-linter: 0 |
| 8 | + max-same-issues: 0 |
| 9 | + |
5 | 10 | linters: |
6 | | - disable-all: true |
| 11 | + default: none |
7 | 12 | enable: |
8 | 13 | - depguard |
9 | | - - gofmt |
10 | | - - goimports |
11 | 14 | - govet |
12 | 15 | - ineffassign |
13 | 16 | - misspell |
14 | 17 | - nakedret |
15 | 18 | - prealloc |
16 | | - - typecheck |
17 | | - # - asciicheck |
18 | | - # - bodyclose |
19 | | - # - dogsled |
20 | | - # - dupl |
21 | | - # - errcheck |
22 | | - # - errorlint |
23 | | - # - exhaustive |
24 | | - # - exhaustivestruct |
25 | | - # - exportloopref |
26 | | - # - funlen |
27 | | - # - gci |
28 | | - # - gochecknoglobals |
29 | | - # - gochecknoinits |
30 | | - # - gocognit |
31 | | - # - goconst |
32 | | - # - gocritic |
33 | | - # - gocyclo |
34 | | - # - godot |
35 | | - # - godox |
36 | | - # - goerr113 |
37 | | - # - gofumpt |
38 | | - # - goheader |
39 | | - # - golint |
40 | | - # - gomnd |
41 | | - # - gomodguard |
42 | | - # - goprintffuncname |
43 | | - # - gosec (gas) |
44 | | - - gosimple # (megacheck) |
45 | | - # - interfacer |
46 | | - # - lll |
47 | | - # - maligned |
48 | | - # - nestif |
49 | | - # - nlreturn |
50 | | - # - noctx |
51 | | - # - nolintlint |
52 | 19 | - revive |
53 | | - # - rowserrcheck |
54 | | - # - scopelint |
55 | | - # - sqlclosecheck |
56 | 20 | - staticcheck |
57 | | - - stylecheck |
58 | | - # - testpackage |
59 | | - # - tparallel |
60 | 21 | - unconvert |
61 | | - # - unparam |
62 | 22 | - unused |
63 | | - # - whitespace |
64 | | - # - wrapcheck |
65 | | - # - wsl |
66 | | -linters-settings: |
67 | | - gocritic: |
68 | | - enabled-checks: |
69 | | - # Diagnostic |
70 | | - - appendAssign |
71 | | - - argOrder |
72 | | - - badCond |
73 | | - - caseOrder |
74 | | - - codegenComment |
75 | | - - commentedOutCode |
76 | | - - deprecatedComment |
77 | | - - dupArg |
78 | | - - dupBranchBody |
79 | | - - dupCase |
80 | | - - dupSubExpr |
81 | | - - exitAfterDefer |
82 | | - - flagDeref |
83 | | - - flagName |
84 | | - - nilValReturn |
85 | | - - offBy1 |
86 | | - - sloppyReassign |
87 | | - - weakCond |
88 | | - - octalLiteral |
89 | | - |
90 | | - # Performance |
91 | | - - appendCombine |
92 | | - - equalFold |
93 | | - - hugeParam |
94 | | - - indexAlloc |
95 | | - - rangeExprCopy |
96 | | - - rangeValCopy |
| 23 | + settings: |
| 24 | + staticcheck: |
| 25 | + checks: |
| 26 | + # Below is the default set |
| 27 | + - "all" |
| 28 | + - "-ST1000" |
| 29 | + - "-ST1003" |
| 30 | + - "-ST1016" |
| 31 | + - "-ST1020" |
| 32 | + - "-ST1021" |
| 33 | + - "-ST1022" |
| 34 | + # FIXME: this below this point is disabled for now, but we should investigate |
| 35 | + - "-QF1008" # Omit embedded fields from selector expression https://staticcheck.dev/docs/checks#QF1008 |
| 36 | + - "-QF1003" # Convert if/else-if chain to tagged switch https://staticcheck.dev/docs/checks#QF1003 |
| 37 | + - "-QF1009" # Use time.Time.Equal instead of == operator https://staticcheck.dev/docs/checks#QF1009 |
| 38 | + - "-QF1001" # Apply De Morgan’s law https://staticcheck.dev/docs/checks#QF1001 |
| 39 | + - "-QF1012" # Use fmt.Fprintf(x, ...) instead of x.Write(fmt.Sprintf(...)) https://staticcheck.dev/docs/checks#QF1012 |
| 40 | + - "-ST1005" # Expand call to math.Pow https://staticcheck.dev/docs/checks#QF1005 |
| 41 | + - "-QF1004" # Use strings.ReplaceAll instead of strings.Replace with n == -1 https://staticcheck.dev/docs/checks#QF1004 |
| 42 | + revive: |
| 43 | + enable-all-rules: true |
| 44 | + rules: |
| 45 | + # See https://revive.run/r |
| 46 | + # Below are unsorted, and we might want to review them to decide which one we want to enable |
| 47 | + - name: exported |
| 48 | + disabled: true |
| 49 | + - name: add-constant |
| 50 | + disabled: true |
| 51 | + - name: cognitive-complexity |
| 52 | + disabled: true |
| 53 | + - name: package-comments |
| 54 | + disabled: true |
| 55 | + - name: cyclomatic |
| 56 | + disabled: true |
| 57 | + - name: deep-exit |
| 58 | + disabled: true |
| 59 | + - name: function-length |
| 60 | + disabled: true |
| 61 | + - name: flag-parameter |
| 62 | + disabled: true |
| 63 | + - name: max-public-structs |
| 64 | + disabled: true |
| 65 | + - name: max-control-nesting |
| 66 | + disabled: true |
| 67 | + - name: confusing-results |
| 68 | + disabled: true |
| 69 | + - name: nested-structs |
| 70 | + disabled: true |
| 71 | + - name: import-alias-naming |
| 72 | + disabled: true |
| 73 | + - name: filename-format |
| 74 | + disabled: true |
| 75 | + - name: use-any |
| 76 | + disabled: true |
| 77 | + # FIXME: we should enable these below |
| 78 | + - name: struct-tag |
| 79 | + disabled: true |
| 80 | + - name: redundant-import-alias |
| 81 | + disabled: true |
| 82 | + - name: empty-lines |
| 83 | + disabled: true |
| 84 | + - name: unhandled-error |
| 85 | + disabled: true |
| 86 | + - name: confusing-naming |
| 87 | + disabled: true |
| 88 | + - name: unused-parameter |
| 89 | + disabled: true |
| 90 | + - name: unused-receiver |
| 91 | + disabled: true |
| 92 | + - name: import-shadowing |
| 93 | + disabled: true |
| 94 | + - name: use-errors-new |
| 95 | + disabled: true |
| 96 | + - name: argument-limit |
| 97 | + disabled: true |
| 98 | + - name: time-equal |
| 99 | + disabled: true |
| 100 | + - name: defer |
| 101 | + disabled: true |
| 102 | + - name: early-return |
| 103 | + disabled: true |
| 104 | + - name: comment-spacings |
| 105 | + disabled: true |
| 106 | + - name: function-result-limit |
| 107 | + disabled: true |
| 108 | + - name: unexported-naming |
| 109 | + disabled: true |
| 110 | + - name: unnecessary-stmt |
| 111 | + disabled: true |
| 112 | + - name: if-return |
| 113 | + disabled: true |
| 114 | + - name: unchecked-type-assertion |
| 115 | + disabled: true |
| 116 | + - name: bare-return |
| 117 | + disabled: true |
| 118 | + # Below have been reviewed and disabled |
| 119 | + - name: line-length-limit |
| 120 | + # Better dealt with by formatter golines |
| 121 | + disabled: true |
97 | 122 |
|
98 | | - # Style |
99 | | - - assignOp |
100 | | - - boolExprSimplify |
101 | | - - captLocal |
102 | | - - commentFormatting |
103 | | - - commentedOutImport |
104 | | - - defaultCaseOrder |
105 | | - - docStub |
106 | | - - elseif |
107 | | - - emptyFallthrough |
108 | | - - emptyStringTest |
109 | | - - hexLiteral |
110 | | - - ifElseChain |
111 | | - - methodExprCall |
112 | | - - regexpMust |
113 | | - - singleCaseSwitch |
114 | | - - sloppyLen |
115 | | - - stringXbytes |
116 | | - - switchTrue |
117 | | - - typeAssertChain |
118 | | - - typeSwitchVar |
119 | | - - underef |
120 | | - - unlabelStmt |
121 | | - - unlambda |
122 | | - - unslice |
123 | | - - valSwap |
124 | | - - wrapperFunc |
125 | | - - yodaStyleExpr |
| 123 | + depguard: |
| 124 | + rules: |
| 125 | + no-patent: |
| 126 | + # do not link in golang-lru anywhere (problematic patent) |
| 127 | + deny: |
| 128 | + - pkg: github.com/hashicorp/golang-lru/arc/v2 |
| 129 | + desc: patented (https://github.com/hashicorp/golang-lru/blob/arc/v2.0.7/arc/arc.go#L18) |
| 130 | + pkg: |
| 131 | + # pkg files must not depend on cobra nor anything in cmd |
| 132 | + files: |
| 133 | + - '**/pkg/**/*.go' |
| 134 | + deny: |
| 135 | + - pkg: github.com/spf13/cobra |
| 136 | + desc: pkg must not depend on cobra |
| 137 | + - pkg: github.com/spf13/pflag |
| 138 | + desc: pkg must not depend on pflag |
| 139 | + - pkg: github.com/spf13/viper |
| 140 | + desc: pkg must not depend on viper |
| 141 | + - pkg: github.com/containerd/nerdctl/v2/cmd |
| 142 | + desc: pkg must not depend on any cmd files |
| 143 | + gocritic: |
| 144 | + enabled-checks: |
| 145 | + - appendAssign |
| 146 | + - argOrder |
| 147 | + - badCond |
| 148 | + - caseOrder |
| 149 | + - codegenComment |
| 150 | + - commentedOutCode |
| 151 | + - deprecatedComment |
| 152 | + - dupArg |
| 153 | + - dupBranchBody |
| 154 | + - dupCase |
| 155 | + - dupSubExpr |
| 156 | + - exitAfterDefer |
| 157 | + - flagDeref |
| 158 | + - flagName |
| 159 | + - nilValReturn |
| 160 | + - offBy1 |
| 161 | + - sloppyReassign |
| 162 | + - weakCond |
| 163 | + - octalLiteral |
| 164 | + - appendCombine |
| 165 | + - equalFold |
| 166 | + - hugeParam |
| 167 | + - indexAlloc |
| 168 | + - rangeExprCopy |
| 169 | + - rangeValCopy |
| 170 | + - assignOp |
| 171 | + - boolExprSimplify |
| 172 | + - captLocal |
| 173 | + - commentFormatting |
| 174 | + - commentedOutImport |
| 175 | + - defaultCaseOrder |
| 176 | + - docStub |
| 177 | + - elseif |
| 178 | + - emptyFallthrough |
| 179 | + - emptyStringTest |
| 180 | + - hexLiteral |
| 181 | + - ifElseChain |
| 182 | + - methodExprCall |
| 183 | + - regexpMust |
| 184 | + - singleCaseSwitch |
| 185 | + - sloppyLen |
| 186 | + - stringXbytes |
| 187 | + - switchTrue |
| 188 | + - typeAssertChain |
| 189 | + - typeSwitchVar |
| 190 | + - underef |
| 191 | + - unlabelStmt |
| 192 | + - unlambda |
| 193 | + - unslice |
| 194 | + - valSwap |
| 195 | + - wrapperFunc |
| 196 | + - yodaStyleExpr |
| 197 | + - builtinShadow |
| 198 | + - importShadow |
| 199 | + - initClause |
| 200 | + - nestingReduce |
| 201 | + - paramTypeCombine |
| 202 | + - ptrToRefParam |
| 203 | + - typeUnparen |
| 204 | + - unnamedResult |
| 205 | + - unnecessaryBlock |
| 206 | + exclusions: |
| 207 | + generated: disable |
126 | 208 |
|
127 | | - # Opinionated |
128 | | - - builtinShadow |
129 | | - - importShadow |
130 | | - - initClause |
131 | | - - nestingReduce |
132 | | - - paramTypeCombine |
133 | | - - ptrToRefParam |
134 | | - - typeUnparen |
135 | | - - unnamedResult |
136 | | - - unnecessaryBlock |
137 | | - |
138 | | - depguard: |
139 | | - rules: |
140 | | - # pkg files must not depend on cobra nor anything in cmd |
141 | | - pkg: |
142 | | - files: |
143 | | - - "**/pkg/**/*.go" |
144 | | - deny: |
145 | | - - pkg: "github.com/spf13/cobra" |
146 | | - desc: "pkg must not depend on cobra" |
147 | | - - pkg: "github.com/spf13/pflag" |
148 | | - desc: "pkg must not depend on pflag" |
149 | | - - pkg: "github.com/spf13/viper" |
150 | | - desc: "pkg must not depend on viper" |
151 | | - - pkg: "github.com/containerd/nerdctl/v2/cmd" |
152 | | - desc: "pkg must not depend on any cmd files" |
153 | | - no-patent: |
154 | | - deny: |
155 | | - - pkg: "github.com/hashicorp/golang-lru/arc/v2" |
156 | | - desc: "patented (https://github.com/hashicorp/golang-lru/blob/arc/v2.0.7/arc/arc.go#L18)" |
157 | | - |
158 | | -issues: |
159 | | - max-issues-per-linter: 0 |
160 | | - max-same-issues: 0 |
161 | | - exclude-rules: |
162 | | - - linters: |
163 | | - - revive |
164 | | - text: "unused-parameter" |
165 | | - |
166 | | -output: |
167 | | - sort-results: true |
| 209 | +formatters: |
| 210 | + settings: |
| 211 | + gci: |
| 212 | + sections: |
| 213 | + - standard |
| 214 | + - default |
| 215 | + - prefix(github.com/containerd) |
| 216 | + - localmodule |
| 217 | + no-inline-comments: true |
| 218 | + no-prefix-comments: true |
| 219 | + custom-order: true |
| 220 | + gofumpt: |
| 221 | + extra-rules: true |
| 222 | + golines: |
| 223 | + max-len: 100 |
| 224 | + tab-len: 4 |
| 225 | + shorten-comments: true |
| 226 | + enable: |
| 227 | + - gci |
| 228 | + - gofmt |
| 229 | + # We might consider enabling the following: |
| 230 | + # - gofumpt |
| 231 | + # - golines |
| 232 | + exclusions: |
| 233 | + generated: disable |
0 commit comments