Skip to content

Commit 84df3cf

Browse files
committed
go: move CI tooling to a dedicated module
The linters and formatters lived in go.tool.mod at the repository root. Running go mod tidy against it failed because tidy scans the main module sources, which import packages absent from the tool module. Without tidy, stale entries never got pruned from the sum file. Give the tooling its own module under devtools so tidy works in isolation and keeps the dependency set clean. Signed-off-by: Robin Jarry <robin@jarry.cc>
1 parent 7462272 commit 84df3cf

4 files changed

Lines changed: 627 additions & 1002 deletions

File tree

‎Makefile‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,12 @@ docs:
8181
-Dhtml_theme=sphinx_rtd_theme \
8282
docs docs/_build
8383

84-
# CI tooling lives in its own module (go.tool.mod) to keep it out of the main
85-
# go.mod. To update a tool version:
86-
# go get -modfile=go.tool.mod -tool <module>@<version>
87-
GO_TOOL = $(GO) tool -modfile=go.tool.mod
84+
# CI tooling lives in its own module (devtools/go.mod) to keep it out of the
85+
# main go.mod. To update a tool version:
86+
# cd devtools && go get -tool <module>@<version> && go mod tidy
87+
GO_TOOL = $(GO) tool -modfile=devtools/go.mod
8888
import_reviser_flags ?= -rm-unused -project-name github.com/getpatchwork/patchwork -use-cache
89-
license_exclude = *.md *.asc *.yaml docs/requirements.txt *.service CONTRIBUTORS LICENSE .* go*.mod go*.sum pkg/mail/testdata docs/deployment/nginx.conf docs/deployment/js_challenge.lua
89+
license_exclude = *.md *.asc *.yaml docs/requirements.txt *.service CONTRIBUTORS LICENSE .* go.mod go.sum devtools/go.mod devtools/go.sum pkg/mail/testdata docs/deployment/nginx.conf docs/deployment/js_challenge.lua
9090

9191
.PHONY: test
9292
test: pw
Lines changed: 59 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// ex: ft=gomod
2-
module github.com/getpatchwork/patchwork/tools
1+
module github.com/getpatchwork/patchwork/devtools
32

43
go 1.26.0
54

@@ -13,12 +12,12 @@ require (
1312
4d63.com/gocheckcompilerdirectives v1.4.0 // indirect
1413
4d63.com/gochecknoglobals v0.2.2 // indirect
1514
charm.land/lipgloss/v2 v2.0.6 // indirect
16-
codeberg.org/chavacava/garif v0.2.0 // indirect
15+
codeberg.org/chavacava/garif v0.2.1 // indirect
1716
codeberg.org/polyfloyd/go-errorlint v1.9.0 // indirect
1817
dev.gaijin.team/go/exhaustruct/v4 v4.0.0 // indirect
19-
dev.gaijin.team/go/exhaustruct/v5 v5.0.3 // indirect
18+
dev.gaijin.team/go/exhaustruct/v5 v5.2.0 // indirect
2019
dev.gaijin.team/go/golib v0.8.1 // indirect
21-
github.com/4meepo/tagalign v1.4.3 // indirect
20+
github.com/4meepo/tagalign v1.4.4 // indirect
2221
github.com/Abirdcfly/dupword v0.1.8 // indirect
2322
github.com/AdminBenni/iota-mixing v1.0.0 // indirect
2423
github.com/AlwxSin/noinlineerr v1.0.6 // indirect
@@ -32,7 +31,7 @@ require (
3231
github.com/MirrexOne/unqueryvet v1.5.4 // indirect
3332
github.com/OpenPeeDeeP/depguard/v2 v2.2.1 // indirect
3433
github.com/alecthomas/chroma/v2 v2.27.0 // indirect
35-
github.com/alecthomas/go-check-sumtype v0.3.1 // indirect
34+
github.com/alecthomas/go-check-sumtype v0.5.1-0.20260828200218-ae6904d28606 // indirect
3635
github.com/alexkohler/nakedret/v2 v2.0.6 // indirect
3736
github.com/alexkohler/prealloc v1.1.0 // indirect
3837
github.com/alfatraining/structtag v1.0.0 // indirect
@@ -45,7 +44,7 @@ require (
4544
github.com/blizzy78/varnamelen v0.8.0 // indirect
4645
github.com/bombsimon/wsl/v4 v4.7.0 // indirect
4746
github.com/bombsimon/wsl/v5 v5.9.0 // indirect
48-
github.com/breml/bidichk v0.3.3 // indirect
47+
github.com/breml/bidichk v0.3.4 // indirect
4948
github.com/breml/errchkjson v0.4.1 // indirect
5049
github.com/butuzov/ireturn v0.4.1 // indirect
5150
github.com/butuzov/mirror v1.3.3 // indirect
@@ -54,7 +53,7 @@ require (
5453
github.com/cespare/xxhash/v2 v2.3.0 // indirect
5554
github.com/charithe/durationcheck v0.0.11 // indirect
5655
github.com/charmbracelet/colorprofile v0.4.3 // indirect
57-
github.com/charmbracelet/ultraviolet v0.0.0-20260811164956-006e29f97886 // indirect
56+
github.com/charmbracelet/ultraviolet v0.0.0-20261001125412-878653296cfd // indirect
5857
github.com/charmbracelet/x/ansi v0.11.8 // indirect
5958
github.com/charmbracelet/x/term v0.2.2 // indirect
6059
github.com/charmbracelet/x/termios v0.1.1 // indirect
@@ -63,18 +62,18 @@ require (
6362
github.com/clipperhouse/displaywidth v0.11.0 // indirect
6463
github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
6564
github.com/curioswitch/go-reassign v0.3.0 // indirect
66-
github.com/daixiang0/gci v0.13.7 // indirect
67-
github.com/dave/dst v0.27.3 // indirect
65+
github.com/daixiang0/gci v0.14.0 // indirect
66+
github.com/dave/dst v0.28.0 // indirect
6867
github.com/denis-tingaikin/go-header v0.5.0 // indirect
69-
github.com/dlclark/regexp2/v2 v2.2.1 // indirect
68+
github.com/dlclark/regexp2/v2 v2.8.3 // indirect
7069
github.com/ettle/strcase v0.2.0 // indirect
7170
github.com/fatih/color v1.19.0 // indirect
7271
github.com/fatih/structtag v1.2.0 // indirect
7372
github.com/firefart/nonamedreturns v1.0.8 // indirect
74-
github.com/fsnotify/fsnotify v1.9.0 // indirect
73+
github.com/fsnotify/fsnotify v1.10.1 // indirect
7574
github.com/fzipp/gocyclo v0.6.0 // indirect
76-
github.com/ghostiam/protogetter v0.3.21 // indirect
77-
github.com/go-critic/go-critic v0.14.4 // indirect
75+
github.com/ghostiam/protogetter v1.0.1 // indirect
76+
github.com/go-critic/go-critic v0.15.0 // indirect
7877
github.com/go-toolsmith/astcast v1.1.0 // indirect
7978
github.com/go-toolsmith/astcopy v1.1.0 // indirect
8079
github.com/go-toolsmith/astequal v1.2.0 // indirect
@@ -84,21 +83,20 @@ require (
8483
github.com/go-toolsmith/typep v1.1.0 // indirect
8584
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
8685
github.com/go-xmlfmt/xmlfmt v1.1.3 // indirect
87-
github.com/gobwas/glob v0.2.3 // indirect
88-
github.com/godoc-lint/godoc-lint v0.11.2 // indirect
89-
github.com/gofrs/flock v0.13.0 // indirect
90-
github.com/golang/protobuf v1.5.3 // indirect
86+
github.com/gobwas/glob v1.0.0 // indirect
87+
github.com/godoc-lint/godoc-lint v0.11.4 // indirect
88+
github.com/gofrs/flock v0.13.1 // indirect
9189
github.com/golangci/asciicheck v0.5.0 // indirect
92-
github.com/golangci/canonicalheader v0.0.0-20260827115959-a25c71c521f6 // indirect
90+
github.com/golangci/canonicalheader v0.0.0-20260928145534-e18e5c5a078f // indirect
9391
github.com/golangci/dupl v0.0.0-20260401084720-c99c5cf5c202 // indirect
9492
github.com/golangci/go-printf-func-name v0.1.1 // indirect
9593
github.com/golangci/gofmt v0.0.0-20260820135601-e84e05053792 // indirect
96-
github.com/golangci/golangci-lint/v2 v2.13.2 // indirect
97-
github.com/golangci/golines v0.15.0 // indirect
94+
github.com/golangci/golangci-lint/v2 v2.14.0 // indirect
95+
github.com/golangci/golines v0.16.0 // indirect
9896
github.com/golangci/misspell v0.8.0 // indirect
9997
github.com/golangci/plugin-module-register v0.1.2 // indirect
10098
github.com/golangci/revgrep v0.8.0 // indirect
101-
github.com/golangci/rowserrcheck v0.0.0-20260419091836-c5f79b8a11ba // indirect
99+
github.com/golangci/rowserrcheck v0.0.0-20261005233414-e0740d52dee8 // indirect
102100
github.com/golangci/swaggoswag v0.0.0-20250504205917-77f2aca3143e // indirect
103101
github.com/golangci/unconvert v0.0.0-20250410112200-a129a6e6413e // indirect
104102
github.com/google/go-cmp v0.7.0 // indirect
@@ -110,10 +108,9 @@ require (
110108
github.com/hashicorp/go-immutable-radix/v2 v2.1.0 // indirect
111109
github.com/hashicorp/go-version v1.9.0 // indirect
112110
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
113-
github.com/hashicorp/hcl v1.0.0 // indirect
114111
github.com/hexops/gotextdiff v1.0.3 // indirect
115112
github.com/inconshreveable/mousetrap v1.1.0 // indirect
116-
github.com/incu6us/goimports-reviser/v3 v3.12.6 // indirect
113+
github.com/incu6us/goimports-reviser/v3 v3.13.2 // indirect
117114
github.com/jgautheron/goconst v1.11.0 // indirect
118115
github.com/jjti/go-spancheck v0.6.5 // indirect
119116
github.com/julz/importas v0.2.0 // indirect
@@ -123,104 +120,99 @@ require (
123120
github.com/kulti/thelper v0.7.1 // indirect
124121
github.com/kunwardeep/paralleltest v1.0.15 // indirect
125122
github.com/ldez/exptostd v0.4.5 // indirect
126-
github.com/ldez/gomoddirectives v0.9.0 // indirect
123+
github.com/ldez/gomoddirectives v0.10.0 // indirect
127124
github.com/ldez/grignotin v0.10.1 // indirect
128125
github.com/ldez/structtags v0.6.1 // indirect
129-
github.com/ldez/tagliatelle v0.7.2 // indirect
126+
github.com/ldez/tagliatelle v0.8.0 // indirect
130127
github.com/ldez/usetesting v0.5.0 // indirect
131128
github.com/leonklingele/grouper v1.1.2 // indirect
132129
github.com/lucasb-eyer/go-colorful v1.4.1 // indirect
133130
github.com/macabu/inamedparam v0.2.0 // indirect
134-
github.com/magiconair/properties v1.8.6 // indirect
135131
github.com/manuelarte/embeddedstructfieldcheck v0.4.0 // indirect
136132
github.com/manuelarte/funcorder v0.6.0 // indirect
137133
github.com/maratori/testableexamples v1.0.1 // indirect
138134
github.com/maratori/testpackage v1.1.2 // indirect
139135
github.com/matoous/godox v1.1.0 // indirect
140-
github.com/mattn/go-colorable v0.1.15 // indirect
141-
github.com/mattn/go-isatty v0.0.20 // indirect
142-
github.com/mattn/go-runewidth v0.0.24 // indirect
143-
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
144-
github.com/mgechev/revive v1.15.0 // indirect
136+
github.com/mattn/go-colorable v0.1.16 // indirect
137+
github.com/mattn/go-isatty v0.0.24 // indirect
138+
github.com/mattn/go-runewidth v0.0.30 // indirect
139+
github.com/mgechev/revive v1.17.1 // indirect
145140
github.com/mitchellh/go-homedir v1.1.0 // indirect
146-
github.com/mitchellh/mapstructure v1.5.0 // indirect
147141
github.com/moricho/tparallel v0.3.2 // indirect
148142
github.com/muesli/cancelreader v0.2.2 // indirect
143+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
149144
github.com/nakabonne/nestif v0.3.1 // indirect
150-
github.com/nishanths/exhaustive v0.12.0 // indirect
151-
github.com/nishanths/predeclared v0.2.2 // indirect
145+
github.com/nishanths/exhaustive v0.14.0 // indirect
146+
github.com/nishanths/predeclared v0.3.0 // indirect
152147
github.com/nunnatsa/ginkgolinter v0.24.0 // indirect
153-
github.com/pelletier/go-toml v1.9.5 // indirect
154148
github.com/pelletier/go-toml/v2 v2.4.3 // indirect
155-
github.com/prometheus/client_golang v1.12.1 // indirect
156-
github.com/prometheus/client_model v0.2.0 // indirect
157-
github.com/prometheus/common v0.32.1 // indirect
158-
github.com/prometheus/procfs v0.7.3 // indirect
149+
github.com/prometheus/client_golang v1.24.1 // indirect
150+
github.com/prometheus/client_model v0.6.3 // indirect
151+
github.com/prometheus/common v0.72.0 // indirect
152+
github.com/prometheus/procfs v0.22.0 // indirect
159153
github.com/quasilyte/go-ruleguard v0.4.5 // indirect
160154
github.com/quasilyte/go-ruleguard/dsl v0.3.23 // indirect
161155
github.com/quasilyte/gogrep v0.5.0 // indirect
162156
github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect
163157
github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect
164-
github.com/raeperd/recvcheck v0.3.0 // indirect
158+
github.com/raeperd/recvcheck v0.3.1 // indirect
165159
github.com/rivo/uniseg v0.4.7 // indirect
166160
github.com/rogpeppe/go-internal v1.16.0 // indirect
167161
github.com/ryancurrah/gomodguard v1.4.1 // indirect
168162
github.com/ryancurrah/gomodguard/v2 v2.1.3 // indirect
169163
github.com/ryanrolds/sqlclosecheck v0.6.0 // indirect
164+
github.com/sagikazarmark/locafero v0.12.0 // indirect
170165
github.com/sanposhiho/wastedassign/v2 v2.1.0 // indirect
171166
github.com/santhosh-tekuri/jsonschema/v6 v6.0.3 // indirect
172167
github.com/sashamelentyev/interfacebloat v1.1.0 // indirect
173168
github.com/sashamelentyev/usestdlibvars v1.29.0 // indirect
174-
github.com/securego/gosec/v2 v2.28.0 // indirect
175-
github.com/sirupsen/logrus v1.10.1 // indirect
169+
github.com/securego/gosec/v2 v2.29.0 // indirect
170+
github.com/sirupsen/logrus v1.10.2 // indirect
176171
github.com/sivchari/containedctx v1.0.3 // indirect
177172
github.com/sonatard/noctx v0.5.1 // indirect
178-
github.com/sourcegraph/go-diff v0.8.0 // indirect
173+
github.com/sourcegraph/go-diff v0.9.0 // indirect
179174
github.com/spf13/afero v1.15.0 // indirect
180-
github.com/spf13/cast v1.5.0 // indirect
175+
github.com/spf13/cast v1.10.0 // indirect
181176
github.com/spf13/cobra v1.10.2 // indirect
182-
github.com/spf13/jwalterweatherman v1.1.0 // indirect
183177
github.com/spf13/pflag v1.0.10 // indirect
184-
github.com/spf13/viper v1.12.0 // indirect
178+
github.com/spf13/viper v1.21.0 // indirect
185179
github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect
186180
github.com/stbenjam/no-sprintf-host-port v0.3.1 // indirect
187181
github.com/stretchr/objx v0.5.3 // indirect
188182
github.com/stretchr/testify v1.12.1 // indirect
189-
github.com/subosito/gotenv v1.4.1 // indirect
183+
github.com/subosito/gotenv v1.6.0 // indirect
190184
github.com/tetafro/godot v1.5.6 // indirect
191-
github.com/timakin/bodyclose v0.0.0-20260129054331-73d1f95b84b4 // indirect
192-
github.com/timonwong/loggercheck v0.11.0 // indirect
185+
github.com/timakin/bodyclose v0.0.0-20260923065923-98ded9ab4ef2 // indirect
186+
github.com/timonwong/loggercheck v0.13.0 // indirect
193187
github.com/tomarrell/wrapcheck/v2 v2.12.0 // indirect
194188
github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect
195189
github.com/ultraware/funlen v0.2.0 // indirect
196190
github.com/ultraware/whitespace v0.2.0 // indirect
197-
github.com/uudashr/gocognit v1.2.1 // indirect
198-
github.com/uudashr/iface v1.5.1 // indirect
191+
github.com/uudashr/gocognit v1.3.0 // indirect
192+
github.com/uudashr/iface v1.5.3 // indirect
199193
github.com/xen0n/gosmopolitan v1.3.0 // indirect
200-
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
194+
github.com/xo/terminfo v1.2.0 // indirect
201195
github.com/yagipy/maintidx v1.0.0 // indirect
202196
github.com/yeya24/promlinter v0.3.0 // indirect
203197
github.com/ykadowak/zerologlint v0.1.5 // indirect
204198
gitlab.com/bosi/decorder v0.4.2 // indirect
205199
go-simpler.org/musttag v0.14.0 // indirect
206200
go-simpler.org/sloglint v0.12.0 // indirect
207201
go.augendre.info/arangolint v0.4.0 // indirect
208-
go.augendre.info/fatcontext v0.10.0 // indirect
209-
go.uber.org/multierr v1.10.0 // indirect
210-
go.uber.org/zap v1.27.0 // indirect
202+
go.augendre.info/fatcontext v0.10.1 // indirect
203+
go.uber.org/multierr v1.11.0 // indirect
204+
go.uber.org/zap v1.28.0 // indirect
211205
go.yaml.in/yaml/v3 v3.0.5 // indirect
212-
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect
213-
golang.org/x/exp/typeparams v0.0.0-20260811152304-ee035b5b010f // indirect
214-
golang.org/x/mod v0.40.0 // indirect
215-
golang.org/x/sync v0.22.0 // indirect
216-
golang.org/x/sys v0.47.0 // indirect
217-
golang.org/x/text v0.40.0 // indirect
218-
golang.org/x/tools v0.49.0 // indirect
219-
google.golang.org/protobuf v1.36.11 // indirect
220-
gopkg.in/ini.v1 v1.67.0 // indirect
221-
gopkg.in/yaml.v2 v2.4.0 // indirect
206+
golang.org/x/exp v0.0.0-20261007192929-f45ad48fbe92 // indirect
207+
golang.org/x/exp/typeparams v0.0.0-20261007192929-f45ad48fbe92 // indirect
208+
golang.org/x/mod v0.41.0 // indirect
209+
golang.org/x/sync v0.23.0 // indirect
210+
golang.org/x/sys v0.48.0 // indirect
211+
golang.org/x/text v0.42.0 // indirect
212+
golang.org/x/tools v0.51.0 // indirect
213+
google.golang.org/protobuf v1.36.12 // indirect
222214
gopkg.in/yaml.v3 v3.0.1 // indirect
223215
honnef.co/go/tools v0.8.1 // indirect
224-
mvdan.cc/gofumpt v0.11.0 // indirect
216+
mvdan.cc/gofumpt v0.12.0 // indirect
225217
mvdan.cc/unparam v0.0.0-20260823230713-2fa3d841b0c8 // indirect
226218
)

0 commit comments

Comments
 (0)