Skip to content

Commit 58c3e27

Browse files
authored
refactor: stateless (#33)
* refactor: wip! counter and sampler * refactor: wip! metrics string * refactor: wip! string len freq * refactor: wip! string sort by freq * refactor: wip! modelv2 * refactor: build column * refactor: driver * refactor: infra file reader * refactor: fix driver * refactor: reader v2 * refactor: reader v2 * refactor: lint + sample-size flag * refactor: numeric metric * refactor: stable output * refactor: bool metric * refactor: cleanup * refactor: update schema * refactor: count distinct * refactor: bool samples * refactor: put benchmark back * refactor: disable 100000 lines bench * refactor: add logs * refactor: bench set global level warn * refactor: test int * chore: add yq in ci * docs: update readme
1 parent 3f38faa commit 58c3e27

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1374
-1970
lines changed

.devcontainer/Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ RUN apk add --update --progress --no-cache make gomplate
1010

1111
ARG VERSION_GOLICENSE=0.2.0
1212
ARG VERSION_MILLER=6.2.0
13+
ARG VERSION_YQ=4.40.4
1314
RUN wget -nv -O- https://github.com/mitchellh/golicense/releases/download/v${VERSION_GOLICENSE}/golicense_${VERSION_GOLICENSE}_linux_x86_64.tar.gz | tar xz -C /usr/bin golicense \
1415
&& wget -nv -O- https://github.com/johnkerl/miller/releases/download/v${VERSION_MILLER}/miller-${VERSION_MILLER}-linux-amd64.tar.gz | tar xz --strip-components 1 -C /usr/bin miller-${VERSION_MILLER}-linux-amd64/mlr \
15-
&& chmod +x /usr/bin/golicense /usr/bin/mlr
16+
&& wget -nv -O /usr/bin/yq https://github.com/mikefarah/yq/releases/download/v${VERSION_YQ}/yq_linux_amd64 \
17+
&& chmod +x /usr/bin/golicense /usr/bin/mlr /usr/bin/yq
1618

1719
COPY --from=pimo /usr/bin/pimo /usr/bin/pimo
1820

.devcontainer/Dockerfile.ci

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ RUN apk add --update --progress --no-cache make gomplate
1010

1111
ARG VERSION_GOLICENSE=0.2.0
1212
ARG VERSION_MILLER=6.2.0
13+
ARG VERSION_YQ=4.40.4
1314
RUN wget -nv -O- https://github.com/mitchellh/golicense/releases/download/v${VERSION_GOLICENSE}/golicense_${VERSION_GOLICENSE}_linux_x86_64.tar.gz | tar xz -C /usr/bin golicense \
1415
&& wget -nv -O- https://github.com/johnkerl/miller/releases/download/v${VERSION_MILLER}/miller-${VERSION_MILLER}-linux-amd64.tar.gz | tar xz --strip-components 1 -C /usr/bin miller-${VERSION_MILLER}-linux-amd64/mlr \
15-
&& chmod +x /usr/bin/golicense /usr/bin/mlr
16+
&& wget -nv -O /usr/bin/yq https://github.com/mikefarah/yq/releases/download/v${VERSION_YQ}/yq_linux_amd64 \
17+
&& chmod +x /usr/bin/golicense /usr/bin/mlr /usr/bin/yq
1618

1719
COPY --from=pimo /usr/bin/pimo /usr/bin/pimo

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ Types of changes
1414
- `Fixed` for any bug fixes.
1515
- `Security` in case of vulnerabilities.
1616

17+
## [0.3.0]
18+
19+
- `Added` moved `min` and `max` to the main metric.
20+
- `Added` `countNulls` to the main metric.
21+
- `Added` all main metrics to the lengths section in string metrics.
22+
- `Removed` `leastFrequentLen` and `mostFrequentLen` all lengths are listed with the most frequent length in first position
23+
1724
## [0.2.0]
1825

1926
- `Added` new string metrics `minLen` and `maxLen`

build.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,12 @@ targets:
255255
- ldflags = ldflags + " -s -w" # Omit the DWARF symbol table. Omit the symbol table and debug information.
256256
- call: compile
257257

258+
test-int-debug:
259+
doc: "Run all integration tests"
260+
depends: ["info"]
261+
steps:
262+
- $: venom run test/suites/*
263+
258264
test-int:
259265
doc: "Run all integration tests"
260266
depends: ["info", "refresh", "lint", "test", "benchmark", "release"]

cmd/rimo/main.go

Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,39 @@ import (
2121
"fmt"
2222
"os"
2323
"path/filepath"
24+
"runtime"
25+
"strings"
2426

2527
"github.com/cgi-fr/rimo/internal/infra"
2628
"github.com/cgi-fr/rimo/pkg/model"
2729
"github.com/cgi-fr/rimo/pkg/rimo"
30+
"github.com/mattn/go-isatty"
2831
"github.com/rs/zerolog"
2932
"github.com/rs/zerolog/log"
3033
"github.com/spf13/cobra"
3134
)
3235

33-
// Provisioned by ldflags.
36+
const DefaultSampleSize = uint(5)
37+
38+
//nolint:gochecknoglobals
3439
var (
35-
name string //nolint: gochecknoglobals
36-
version string //nolint: gochecknoglobals
37-
commit string //nolint: gochecknoglobals
38-
buildDate string //nolint: gochecknoglobals
39-
builtBy string //nolint: gochecknoglobals
40+
name string // provisioned by ldflags
41+
version string // provisioned by ldflags
42+
commit string // provisioned by ldflags
43+
buildDate string // provisioned by ldflags
44+
builtBy string // provisioned by ldflags
45+
46+
verbosity string
47+
jsonlog bool
48+
debug bool
49+
colormode string
50+
51+
sampleSize uint
52+
distinct bool //nolint: gochecknoglobals
4053
)
4154

4255
func main() { //nolint:funlen
43-
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr}) //nolint: exhaustruct
44-
56+
cobra.OnInitialize(initLog)
4557
log.Info().Msgf("%v %v (commit=%v date=%v by=%v)", name, version, commit, buildDate, builtBy)
4658

4759
rootCmd := &cobra.Command{ //nolint:exhaustruct
@@ -54,6 +66,12 @@ func main() { //nolint:funlen
5466
There is NO WARRANTY, to the extent permitted by law.`, version, commit, buildDate, builtBy),
5567
}
5668

69+
rootCmd.PersistentFlags().StringVarP(&verbosity, "verbosity", "v", "warn",
70+
"set level of log verbosity : none (0), error (1), warn (2), info (3), debug (4), trace (5)")
71+
rootCmd.PersistentFlags().BoolVar(&debug, "debug", false, "add debug information to logs (very slow)")
72+
rootCmd.PersistentFlags().BoolVar(&jsonlog, "log-json", false, "output logs in JSON format")
73+
rootCmd.PersistentFlags().StringVar(&colormode, "color", "auto", "use colors in log outputs : yes, no or auto")
74+
5775
rimoSchemaCmd := &cobra.Command{ //nolint:exhaustruct
5876
Use: "jsonschema",
5977
Short: "Return rimo jsonschema",
@@ -77,32 +95,21 @@ func main() { //nolint:funlen
7795
outputDir := args[1]
7896

7997
// Reader
80-
81-
inputList, err := BuildFilepathList(inputDir, ".jsonl")
82-
if err != nil {
83-
log.Fatal().Msgf("error listing files: %v", err)
84-
}
85-
86-
reader, err := infra.FilesReaderFactory(inputList)
98+
reader, err := infra.NewJSONLFolderReader(inputDir)
8799
if err != nil {
88100
log.Fatal().Msgf("error creating reader: %v", err)
89101
}
90102

91-
// Writer
92-
// (could be relocated to infra.FilesReader)
93-
baseName, _, err := infra.ExtractName(inputList[0])
94-
if err != nil {
95-
log.Fatal().Msgf("error extracting base name: %v", err)
96-
}
97-
98-
outputPath := filepath.Join(outputDir, fmt.Sprintf("%s.yaml", baseName))
103+
outputPath := filepath.Join(outputDir, fmt.Sprintf("%s.yaml", reader.BaseName()))
99104

100105
writer, err := infra.YAMLWriterFactory(outputPath)
101106
if err != nil {
102107
log.Fatal().Msgf("error creating writer: %v", err)
103108
}
104109

105-
err = rimo.AnalyseBase(reader, writer)
110+
driver := rimo.Driver{SampleSize: sampleSize, Distinct: distinct}
111+
112+
err = driver.AnalyseBase(reader, writer)
106113
if err != nil {
107114
log.Fatal().Msgf("error generating rimo.yaml: %v", err)
108115
}
@@ -111,6 +118,9 @@ func main() { //nolint:funlen
111118
},
112119
}
113120

121+
rimoAnalyseCmd.Flags().UintVar(&sampleSize, "sample-size", DefaultSampleSize, "number of sample value to collect")
122+
rimoAnalyseCmd.Flags().BoolVarP(&distinct, "distinct", "d", false, "count distinct values")
123+
114124
rootCmd.AddCommand(rimoAnalyseCmd)
115125
rootCmd.AddCommand(rimoSchemaCmd)
116126

@@ -120,54 +130,44 @@ func main() { //nolint:funlen
120130
}
121131
}
122132

123-
func FilesList(path string, extension string) ([]string, error) {
124-
pattern := filepath.Join(path, "*"+extension)
133+
func initLog() {
134+
color := false
125135

126-
files, err := filepath.Glob(pattern)
127-
if err != nil {
128-
return nil, fmt.Errorf("error listing files: %w", err)
136+
switch strings.ToLower(colormode) {
137+
case "auto":
138+
if isatty.IsTerminal(os.Stdout.Fd()) && runtime.GOOS != "windows" {
139+
color = true
140+
}
141+
case "yes", "true", "1", "on", "enable":
142+
color = true
129143
}
130144

131-
return files, nil
132-
}
133-
134-
var ErrNoFile = fmt.Errorf("no file found")
135-
136-
func BuildFilepathList(path string, extension string) ([]string, error) {
137-
err := ValidateDirPath(path)
138-
if err != nil {
139-
return nil, fmt.Errorf("failed to validate input directory: %w", err)
140-
}
141-
142-
pattern := filepath.Join(path, "*"+extension)
143-
144-
files, err := filepath.Glob(pattern)
145-
if err != nil {
146-
return nil, fmt.Errorf("error listing files: %w", err)
145+
if jsonlog {
146+
log.Logger = zerolog.New(os.Stderr)
147+
} else {
148+
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr, NoColor: !color}) //nolint:exhaustruct
147149
}
148150

149-
if len(files) == 0 {
150-
return nil, fmt.Errorf("%w : no %s files found in %s", ErrNoFile, extension, path)
151+
if debug {
152+
log.Logger = log.Logger.With().Caller().Logger()
151153
}
152154

153-
return files, nil
155+
setVerbosity()
154156
}
155157

156-
func ValidateDirPath(path string) error {
157-
fileInfo, err := os.Stat(path)
158-
if os.IsNotExist(err) {
159-
return fmt.Errorf("%w: %s", infra.ErrDirDoesNotExist, path)
160-
} else if err != nil {
161-
return fmt.Errorf("failed to get directory info: %w", err)
158+
func setVerbosity() {
159+
switch verbosity {
160+
case "trace", "5":
161+
zerolog.SetGlobalLevel(zerolog.TraceLevel)
162+
case "debug", "4":
163+
zerolog.SetGlobalLevel(zerolog.DebugLevel)
164+
case "info", "3":
165+
zerolog.SetGlobalLevel(zerolog.InfoLevel)
166+
case "warn", "2":
167+
zerolog.SetGlobalLevel(zerolog.WarnLevel)
168+
case "error", "1":
169+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
170+
default:
171+
zerolog.SetGlobalLevel(zerolog.Disabled)
162172
}
163-
164-
if !fileInfo.IsDir() {
165-
return fmt.Errorf("%w: %s", infra.ErrPathIsNotDir, path)
166-
}
167-
168-
if fileInfo.Mode().Perm()&infra.WriteDirPerm != infra.WriteDirPerm {
169-
return fmt.Errorf("%w: %s", infra.ErrWriteDirPermission, path)
170-
}
171-
172-
return nil
173173
}

go.mod

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,28 @@ module github.com/cgi-fr/rimo
33
go 1.20
44

55
require (
6-
github.com/hexops/valast v1.4.4
6+
github.com/goccy/go-json v0.10.2
77
github.com/rs/zerolog v1.30.0
88
github.com/spf13/cobra v1.7.0
99
github.com/stretchr/testify v1.8.4
1010
golang.org/x/exp v0.0.0-20231006140011-7918f672742d
1111
gopkg.in/yaml.v3 v3.0.1
1212
)
1313

14-
require gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
14+
require (
15+
github.com/kr/pretty v0.3.1 // indirect
16+
github.com/rogpeppe/go-internal v1.10.0 // indirect
17+
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
18+
)
1519

1620
require (
1721
github.com/davecgh/go-spew v1.1.1 // indirect
18-
github.com/google/go-cmp v0.5.9 // indirect
1922
github.com/iancoleman/orderedmap v0.3.0 // indirect
2023
github.com/inconshreveable/mousetrap v1.1.0 // indirect
2124
github.com/invopop/jsonschema v0.7.0 // direct
2225
github.com/mattn/go-colorable v0.1.13 // indirect
23-
github.com/mattn/go-isatty v0.0.19 // indirect
26+
github.com/mattn/go-isatty v0.0.19
2427
github.com/pmezard/go-difflib v1.0.0 // indirect
2528
github.com/spf13/pflag v1.0.5 // indirect
26-
golang.org/x/mod v0.13.0 // indirect
2729
golang.org/x/sys v0.13.0 // indirect
28-
golang.org/x/tools v0.14.0 // indirect
29-
mvdan.cc/gofumpt v0.5.0 // indirect
3030
)

go.sum

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
22
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
3+
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
34
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
45
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
56
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
6-
github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY=
7+
github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
8+
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
79
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
8-
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
9-
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
10-
github.com/hexops/autogold v0.8.1 h1:wvyd/bAJ+Dy+DcE09BoLk6r4Fa5R5W+O+GUzmR985WM=
11-
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
12-
github.com/hexops/valast v1.4.4 h1:rETyycw+/L2ZVJHHNxEBgh8KUn+87WugH9MxcEv9PGs=
13-
github.com/hexops/valast v1.4.4/go.mod h1:Jcy1pNH7LNraVaAZDLyv21hHg2WBv9Nf9FL6fGxU7o4=
1410
github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0/go.mod h1:N0Wam8K1arqPXNWjMo21EXnBPOPp36vB07FNRdD2geA=
1511
github.com/iancoleman/orderedmap v0.3.0 h1:5cbR2grmZR/DiVt+VJopEhtVs9YGInGIxAoMJn+Ichc=
1612
github.com/iancoleman/orderedmap v0.3.0/go.mod h1:XuLcCUkdL5owUCQeF2Ue9uuw1EptkJDkXXS7VoV7XGE=
@@ -19,18 +15,23 @@ github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLf
1915
github.com/invopop/jsonschema v0.7.0 h1:2vgQcBz1n256N+FpX3Jq7Y17AjYt46Ig3zIWyy770So=
2016
github.com/invopop/jsonschema v0.7.0/go.mod h1:O9uiLokuu0+MGFlyiaqtWxwqJm41/+8Nj0lD7A36YH0=
2117
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
18+
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
2219
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
20+
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
2321
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
2422
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
2523
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
2624
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
2725
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
2826
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
2927
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
28+
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
3029
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
3130
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
3231
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
32+
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
3333
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
34+
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
3435
github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
3536
github.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c=
3637
github.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w=
@@ -45,21 +46,14 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU
4546
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
4647
golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI=
4748
golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo=
48-
golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY=
49-
golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
50-
golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=
5149
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
5250
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
5351
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
5452
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
5553
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
5654
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
57-
golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc=
58-
golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg=
5955
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
6056
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
6157
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
6258
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
6359
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
64-
mvdan.cc/gofumpt v0.5.0 h1:0EQ+Z56k8tXjj/6TQD25BFNKQXpCvT0rnansIc7Ug5E=
65-
mvdan.cc/gofumpt v0.5.0/go.mod h1:HBeVDtMKRZpXyxFciAirzdKklDlGu8aAy1wEbH5Y9js=

0 commit comments

Comments
 (0)