Skip to content

Commit 78a202e

Browse files
committed
chore: update CI and configuration
1 parent ee3af9f commit 78a202e

File tree

4 files changed

+72
-64
lines changed

4 files changed

+72
-64
lines changed

.github/workflows/pr.yml

+8-6
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,11 @@ jobs:
4141
# - 1.18beta1 -> 1.18.0-beta.1
4242
# - 1.18rc1 -> 1.18.0-rc.1
4343
go-version: ${{ env.GO_VERSION }}
44-
- name: lint
45-
uses: golangci/[email protected]
46-
with:
47-
version: latest
44+
# TODO(ldez): must add uncommented when [email protected] (with golangci-lint v2 support) will be created.
45+
# - name: lint
46+
# uses: golangci/[email protected]
47+
# with:
48+
# version: latest
4849

4950
tests-on-windows:
5051
needs: golangci-lint # run after golangci-lint action to not produce duplicated errors
@@ -116,7 +117,7 @@ jobs:
116117

117118
# Note: the command `run` is tested by the previous steps (`make test`).
118119
commands:
119-
needs: golangci-lint
120+
needs: golangci-lint # run after golangci-lint action to not produce duplicated errors
120121
runs-on: ubuntu-latest
121122
steps:
122123
- uses: actions/checkout@v4
@@ -147,7 +148,8 @@ jobs:
147148

148149
- run: ./golangci-lint config
149150
- run: ./golangci-lint config path
150-
- run: ./golangci-lint config verify --schema jsonschema/golangci.jsonschema.json
151+
# TODO(ldez) after v2: golangci.next.jsonschema.json -> golangci.jsonschema.json
152+
- run: ./golangci-lint config verify --schema jsonschema/golangci.next.jsonschema.json
151153

152154
- run: ./golangci-lint help
153155
- run: ./golangci-lint help linters

.golangci.yml

+63-56
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
#
1212
# See the file `.golangci.reference.yml` to have a list of all available configuration options.
1313

14+
version: "2"
15+
1416
linters:
1517
disable-all: true
1618
# This list of linters is not a recommendation (same thing for all this configuration file).
@@ -31,8 +33,6 @@ linters:
3133
- gocritic
3234
- gocyclo
3335
- godox
34-
- gofmt
35-
- goimports
3636
- mnd
3737
- goprintffuncname
3838
- gosec
@@ -53,7 +53,68 @@ linters:
5353
- unparam
5454
- unused
5555
- whitespace
56+
exclusions:
57+
presets:
58+
- comments
59+
- stdErrorHandling
60+
- commonFalsePositives
61+
- legacy
62+
paths:
63+
- test/testdata_etc # test files
64+
- internal/go # extracted from Go code
65+
- internal/x # extracted from x/tools code
66+
- pkg/goformatters/gci/internal # extracted from gci code
67+
- pkg/goanalysis/runner_checker.go # extracted from x/tools code
68+
rules:
69+
- path: (.+)_test\.go
70+
linters:
71+
- dupl
72+
- mnd
73+
- lll
74+
75+
# Deprecated linter options.
76+
- path: pkg/golinters/errcheck/errcheck.go
77+
linters: [staticcheck]
78+
text: "SA1019: errCfg.Exclude is deprecated: use ExcludeFunctions instead"
79+
- path: pkg/golinters/errcheck/errcheck.go
80+
linters: [staticcheck]
81+
text: "SA1019: errCfg.Ignore is deprecated: use ExcludeFunctions instead"
82+
- path: pkg/golinters/govet/govet.go
83+
linters: [staticcheck]
84+
text: "SA1019: cfg.CheckShadowing is deprecated: the linter should be enabled inside Enable."
85+
- path: pkg/golinters/godot/godot.go
86+
linters: [staticcheck]
87+
text: "SA1019: settings.CheckAll is deprecated: use Scope instead"
88+
- path: pkg/goformatters/gci/gci.go
89+
linters: [staticcheck]
90+
text: "SA1019: settings.LocalPrefixes is deprecated: use Sections instead."
5691

92+
# Related to `run.go`, it cannot be removed.
93+
- path: pkg/golinters/gofumpt/gofumpt.go
94+
linters: [staticcheck]
95+
text: "SA1019: settings.LangVersion is deprecated: use the global `run.go` instead."
96+
97+
# Based on existing code, the modifications should be limited to make maintenance easier.
98+
- path: pkg/golinters/unused/unused.go
99+
linters: [gocritic]
100+
text: "rangeValCopy: each iteration copies 160 bytes \\(consider pointers or indexing\\)"
101+
102+
# Related to the result of computation but divided multiple times by 1024.
103+
- path: test/bench/bench_test.go
104+
linters: [gosec]
105+
text: "G115: integer overflow conversion uint64 -> int"
106+
107+
formatters:
108+
enable:
109+
- gofmt
110+
- goimports
111+
settings:
112+
gofmt:
113+
rewrite-rules:
114+
- pattern: 'interface{}'
115+
replacement: 'any'
116+
goimports:
117+
local-prefixes: github.com/golangci/golangci-lint
57118

58119
linters-settings:
59120
depguard:
@@ -95,12 +156,6 @@ linters-settings:
95156
godox:
96157
keywords:
97158
- FIXME
98-
gofmt:
99-
rewrite-rules:
100-
- pattern: 'interface{}'
101-
replacement: 'any'
102-
goimports:
103-
local-prefixes: github.com/golangci/golangci-lint
104159
mnd:
105160
# don't include the "operation" and "assign"
106161
checks:
@@ -146,53 +201,5 @@ linters-settings:
146201
- name: unused-parameter
147202
- name: unused-receiver
148203

149-
issues:
150-
exclude-rules:
151-
- path: (.+)_test\.go
152-
linters:
153-
- dupl
154-
- mnd
155-
- lll
156-
157-
# Deprecated linter options.
158-
- path: pkg/golinters/errcheck/errcheck.go
159-
linters: [staticcheck]
160-
text: "SA1019: errCfg.Exclude is deprecated: use ExcludeFunctions instead"
161-
- path: pkg/golinters/errcheck/errcheck.go
162-
linters: [staticcheck]
163-
text: "SA1019: errCfg.Ignore is deprecated: use ExcludeFunctions instead"
164-
- path: pkg/golinters/govet/govet.go
165-
linters: [staticcheck]
166-
text: "SA1019: cfg.CheckShadowing is deprecated: the linter should be enabled inside Enable."
167-
- path: pkg/golinters/godot/godot.go
168-
linters: [staticcheck]
169-
text: "SA1019: settings.CheckAll is deprecated: use Scope instead"
170-
- path: pkg/goformatters/gci/gci.go
171-
linters: [staticcheck]
172-
text: "SA1019: settings.LocalPrefixes is deprecated: use Sections instead."
173-
174-
# Related to `run.go`, it cannot be removed.
175-
- path: pkg/golinters/gofumpt/gofumpt.go
176-
linters: [staticcheck]
177-
text: "SA1019: settings.LangVersion is deprecated: use the global `run.go` instead."
178-
179-
# Based on existing code, the modifications should be limited to make maintenance easier.
180-
- path: pkg/golinters/unused/unused.go
181-
linters: [gocritic]
182-
text: "rangeValCopy: each iteration copies 160 bytes \\(consider pointers or indexing\\)"
183-
184-
# Related to the result of computation but divided multiple times by 1024.
185-
- path: test/bench/bench_test.go
186-
linters: [gosec]
187-
text: "G115: integer overflow conversion uint64 -> int"
188-
189-
exclude-dirs:
190-
- test/testdata_etc # test files
191-
- internal/go # extracted from Go code
192-
- internal/x # extracted from x/tools code
193-
- pkg/goformatters/gci/internal # extracted from gci code
194-
exclude-files:
195-
- pkg/goanalysis/runner_checker.go # extracted from x/tools code
196-
197204
run:
198205
timeout: 5m

pkg/commands/flagsets.go

-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ func setupOutputFormatsFlagSet(v *viper.Viper, fs *pflag.FlagSet) {
126126
color.GreenString(outputPathDesc))
127127
}
128128

129-
//nolint:gomnd // magic numbers here is ok
130129
func setupIssuesFlagSet(v *viper.Viper, fs *pflag.FlagSet) {
131130
internal.AddFlagAndBind(v, fs, fs.Int, "max-issues-per-linter", "issues.max-issues-per-linter", defaultMaxIssuesPerLinter,
132131
color.GreenString("Maximum issues count per one linter. Set to 0 to disable"))

pkg/result/processors/exclusion_presets.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ var LinterExclusionPresets = map[string][]config.ExcludeRule{
5454
{
5555
// Almost all programs ignore errors on these functions and in most cases it's ok.
5656
BaseRule: config.BaseRule{
57-
Text: "Error return value of .((os\\.)?std(out|err)\\..*|.*Close" +
57+
Text: "(?i)Error return value of .((os\\.)?std(out|err)\\..*|.*Close" +
5858
"|.*Flush|os\\.Remove(All)?|.*print(f|ln)?|os\\.(Un)?Setenv). is not checked",
5959
Linters: []string{"errcheck"},
6060
InternalReference: "EXC0001",

0 commit comments

Comments
 (0)