From c7f6fc5b21cf154fabe12125d2cd1b274c57cb53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 01:40:38 +0000 Subject: mod: do: bump github.com/golangci/golangci-lint from 1.53.3 to 1.54.0 Bumps [github.com/golangci/golangci-lint](https://github.com/golangci/golangci-lint) from 1.53.3 to 1.54.0. - [Release notes](https://github.com/golangci/golangci-lint/releases) - [Changelog](https://github.com/golangci/golangci-lint/blob/master/CHANGELOG.md) - [Commits](https://github.com/golangci/golangci-lint/compare/v1.53.3...v1.54.0) --- updated-dependencies: - dependency-name: github.com/golangci/golangci-lint dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- vendor/gitlab.com/bosi/decorder/.gitignore | 2 +- vendor/gitlab.com/bosi/decorder/.gitlab-ci.yml | 10 ++-- vendor/gitlab.com/bosi/decorder/README.md | 22 +++++-- vendor/gitlab.com/bosi/decorder/analyzer.go | 79 ++++++++++++++++++++------ vendor/gitlab.com/bosi/decorder/renovate.json | 26 +-------- 5 files changed, 88 insertions(+), 51 deletions(-) (limited to 'vendor/gitlab.com') diff --git a/vendor/gitlab.com/bosi/decorder/.gitignore b/vendor/gitlab.com/bosi/decorder/.gitignore index 7b533f819..48baa654b 100644 --- a/vendor/gitlab.com/bosi/decorder/.gitignore +++ b/vendor/gitlab.com/bosi/decorder/.gitignore @@ -1,7 +1,7 @@ /.idea /.env +/.env.example /decorder -/deforder /LICENSES-3RD-PARTY /ytt /yq \ No newline at end of file diff --git a/vendor/gitlab.com/bosi/decorder/.gitlab-ci.yml b/vendor/gitlab.com/bosi/decorder/.gitlab-ci.yml index 1ea3b03f2..f3ec4f21a 100644 --- a/vendor/gitlab.com/bosi/decorder/.gitlab-ci.yml +++ b/vendor/gitlab.com/bosi/decorder/.gitlab-ci.yml @@ -12,7 +12,7 @@ stages: test: stage: test - image: golang:1.18.4@sha256:9349ed889adb906efa5ebc06485fe1b6a12fb265a01c9266a137bb1352565560 + image: golang:1.20.6@sha256:cfc9d1b07b1ef4f7a4571f0b60a99646a92ef76adb7d9943f4cb7b606c6554e2 before_script: - set -eu - if [[ -f .env.pipeline ]];then cp .env.pipeline .env;fi @@ -27,14 +27,16 @@ test: lint:source-code: stage: test - image: golangci/golangci-lint:v1.47.2-alpine@sha256:10ed4891fdd1f7249f5e39d7c17ea746ce26adada3c05686c6aa31290abcd180 + image: golangci/golangci-lint:v1.53.3-alpine@sha256:b61d8503f0ad16499c023772301ec8c0f2559bf76c28d228c390446c5e647f55 script: + - apk add make bash + - make settings - '### run linter ###' - golangci-lint run ./... license-check: stage: test - image: golang:1.18.4@sha256:9349ed889adb906efa5ebc06485fe1b6a12fb265a01c9266a137bb1352565560 + image: golang:1.20.6@sha256:cfc9d1b07b1ef4f7a4571f0b60a99646a92ef76adb7d9943f4cb7b606c6554e2 before_script: - set -eu - if [[ -f .env.pipeline ]];then cp .env.pipeline .env;fi @@ -51,7 +53,7 @@ license-check: pages: stage: release - image: golang:1.18.4@sha256:9349ed889adb906efa5ebc06485fe1b6a12fb265a01c9266a137bb1352565560 + image: golang:1.20.6@sha256:cfc9d1b07b1ef4f7a4571f0b60a99646a92ef76adb7d9943f4cb7b606c6554e2 only: - tags script: diff --git a/vendor/gitlab.com/bosi/decorder/README.md b/vendor/gitlab.com/bosi/decorder/README.md index e72954937..5947e5ca2 100644 --- a/vendor/gitlab.com/bosi/decorder/README.md +++ b/vendor/gitlab.com/bosi/decorder/README.md @@ -1,25 +1,29 @@ # Decorder -A declaration order linter for golang. In case of this tool declarations are `type`, `const`, `var` and `func`. +A declaration order linter for Go. In case of this tool declarations are `type`, `const`, `var` and `func`. ## Rules This linter applies multiple rules where each can be disabled via cli parameter. -| rule | description | cli-options | -|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------| -| declaration order | Enforces the order of global declarations (e.g. all global constants are always defined before variables). You can also define a subset of declarations if you don't want to enforce the order of all of them. | * disable check: `-disable-dec-order-check`
* custom order: `-dec-order var,const,func,type` | -| declaration number | Enforces that the statements const, var and type are only used once per file. You have to use parenthesis to declare e.g multiple global types inside a file. | disable check: `-disable-dec-num-check` | -| init func first | Enforces the init func to be the first function in file. | disable check: `-disable-init-func-first-check` | +| rule | description | cli-options | +|--------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| declaration order | Enforces the order of global declarations (e.g. all global constants are always defined before variables).
You can also define a subset of declarations if you don't want to enforce the order of all of them. | * disable all checks: `-disable-dec-order-check`
* disable type checks: `-disable-type-dec-order-check`
* disable const checks: `-disable-const-dec-order-check`
* disable var checks: `-disable-var-dec-order-check`
* custom order: `-dec-order var,const,func,type` | +| declaration number | Enforces that the statements const, var and type are only used once per file. You have to use parenthesis
to declare e.g multiple global types inside a file. | disable check: `-disable-dec-num-check` | +| init func first | Enforces the init func to be the first function in file. | disable check: `-disable-init-func-first-check` | You may find the implementation of the rules inside `analyzer.go`. +Underscore var declarations can be ignored via `-ignore-underscore-vars`. + ## Installation ```shell go install gitlab.com/bosi/decorder/cmd/decorder ``` +You can use the linter via golangci-lint as well: https://golangci-lint.run/usage/linters/#decorder. + ## Usage ```shell @@ -35,6 +39,12 @@ decorder -disable-dec-order-check ./... # disable check for multiple declarations statements decorder -disable-dec-num-check ./... +# disable check for multiple declarations (var only) statements +decorder -disable-var-dec-num-check ./... + # disable check that init func is always first function decorder -disable-init-func-first-check ./... + +# ignore underscore variables for all checks +decorder -ignore-underscore-vars ./... ``` \ No newline at end of file diff --git a/vendor/gitlab.com/bosi/decorder/analyzer.go b/vendor/gitlab.com/bosi/decorder/analyzer.go index 308c96b96..f48612944 100644 --- a/vendor/gitlab.com/bosi/decorder/analyzer.go +++ b/vendor/gitlab.com/bosi/decorder/analyzer.go @@ -1,6 +1,7 @@ package decorder import ( + "fmt" "go/ast" "go/token" "strings" @@ -16,6 +17,17 @@ type ( funcPoss []funcPos } + options struct { + decOrder string + ignoreUnderscoreVars bool + disableDecNumCheck bool + disableTypeDecNumCheck bool + disableConstDecNumCheck bool + disableVarDecNumCheck bool + disableDecOrderCheck bool + disableInitFuncFirstCheck bool + } + funcPos struct { start token.Pos end token.Pos @@ -26,9 +38,15 @@ const ( Name = "decorder" FlagDo = "dec-order" + FlagIuv = "ignore-underscore-vars" FlagDdnc = "disable-dec-num-check" + FlagDtdnc = "disable-type-dec-num-check" + FlagDcdnc = "disable-const-dec-num-check" + FlagDvdnc = "disable-var-dec-num-check" FlagDdoc = "disable-dec-order-check" FlagDiffc = "disable-init-func-first-check" + + defaultDecOrder = "type,const,var,func" ) var ( @@ -38,27 +56,38 @@ var ( Run: run, } - decOrder string - disableDecNumCheck bool - disableDecOrderCheck bool - disableInitFuncFirstCheck bool + opts = options{} tokens = []token.Token{token.TYPE, token.CONST, token.VAR, token.FUNC} + + decNumConf = map[token.Token]bool{ + token.TYPE: false, + token.CONST: false, + token.VAR: false, + } ) //nolint:lll func init() { - Analyzer.Flags.StringVar(&decOrder, FlagDo, "type,const,var,func", "define the required order of types, constants, variables and functions declarations inside a file") - Analyzer.Flags.BoolVar(&disableDecNumCheck, FlagDdnc, false, "option to disable check for number of e.g. var declarations inside file") - Analyzer.Flags.BoolVar(&disableDecOrderCheck, FlagDdoc, false, "option to disable check for order of declarations inside file") - Analyzer.Flags.BoolVar(&disableInitFuncFirstCheck, FlagDiffc, false, "option to disable check that init function is always first function in file") + Analyzer.Flags.StringVar(&opts.decOrder, FlagDo, defaultDecOrder, "define the required order of types, constants, variables and functions declarations inside a file") + Analyzer.Flags.BoolVar(&opts.ignoreUnderscoreVars, FlagIuv, false, "option to ignore underscore vars for dec order and dec num check") + Analyzer.Flags.BoolVar(&opts.disableDecNumCheck, FlagDdnc, false, "option to disable (all) checks for number of declarations inside file") + Analyzer.Flags.BoolVar(&opts.disableTypeDecNumCheck, FlagDtdnc, false, "option to disable check for number of type declarations inside file") + Analyzer.Flags.BoolVar(&opts.disableConstDecNumCheck, FlagDcdnc, false, "option to disable check for number of const declarations inside file") + Analyzer.Flags.BoolVar(&opts.disableVarDecNumCheck, FlagDvdnc, false, "option to disable check for number of var declarations inside file") + Analyzer.Flags.BoolVar(&opts.disableDecOrderCheck, FlagDdoc, false, "option to disable check for order of declarations inside file") + Analyzer.Flags.BoolVar(&opts.disableInitFuncFirstCheck, FlagDiffc, false, "option to disable check that init function is always first function in file") } func run(pass *analysis.Pass) (interface{}, error) { + decNumConf[token.TYPE] = opts.disableTypeDecNumCheck + decNumConf[token.CONST] = opts.disableConstDecNumCheck + decNumConf[token.VAR] = opts.disableVarDecNumCheck + for _, f := range pass.Files { ast.Inspect(f, runDeclNumAndDecOrderCheck(pass)) - if !disableInitFuncFirstCheck { + if !opts.disableInitFuncFirstCheck { ast.Inspect(f, runInitFuncFirstCheck(pass)) } } @@ -90,7 +119,7 @@ func runInitFuncFirstCheck(pass *analysis.Pass) func(ast.Node) bool { func runDeclNumAndDecOrderCheck(pass *analysis.Pass) func(ast.Node) bool { dnc := newDecNumChecker() - if disableDecNumCheck && disableDecOrderCheck { + if opts.disableDecNumCheck && opts.disableDecOrderCheck { return func(n ast.Node) bool { return true } @@ -113,7 +142,7 @@ func runDeclNumAndDecOrderCheck(pass *analysis.Pass) func(ast.Node) bool { dnc.handleGenDecl(gd, pass) - if !disableDecOrderCheck { + if !opts.disableDecOrderCheck { dnc.handleDecOrderCheck(gd, pass) } @@ -134,7 +163,7 @@ func newDecNumChecker() decNumChecker { dnc.tokenMap[t.String()] = t } - for _, do := range strings.Split(decOrder, ",") { + for _, do := range strings.Split(opts.decOrder, ",") { dnc.decOrder = append(dnc.decOrder, strings.TrimSpace(do)) } @@ -159,19 +188,33 @@ func (dnc decNumChecker) isToLate(t token.Token) (string, bool) { func (dnc *decNumChecker) handleGenDecl(gd *ast.GenDecl, pass *analysis.Pass) { for _, t := range tokens { if gd.Tok == t { + if opts.ignoreUnderscoreVars && declName(gd) == "_" { + continue + } + dnc.tokenCounts[t]++ - if !disableDecNumCheck && dnc.tokenCounts[t] > 1 { + if !opts.disableDecNumCheck && !decNumConf[t] && dnc.tokenCounts[t] > 1 { pass.Reportf(gd.Pos(), "multiple \"%s\" declarations are not allowed; use parentheses instead", t.String()) } } } } +func declName(gd *ast.GenDecl) string { + for _, spec := range gd.Specs { + s, ok := spec.(*ast.ValueSpec) + if ok && len(s.Names) > 0 && s.Names[0] != nil { + return s.Names[0].Name + } + } + return "" +} + func (dnc decNumChecker) handleDecOrderCheck(gd *ast.GenDecl, pass *analysis.Pass) { l, c := dnc.isToLate(gd.Tok) if !c { - pass.Reportf(gd.Pos(), "%s must not be placed after %s", gd.Tok.String(), l) + pass.Reportf(gd.Pos(), fmtWrongOrderMsg(gd.Tok.String(), l)) } } @@ -189,12 +232,16 @@ func (dnc *decNumChecker) handleFuncDec(fd *ast.FuncDecl, pass *analysis.Pass) b dnc.tokenCounts[token.FUNC]++ - if !disableDecOrderCheck { + if !opts.disableDecOrderCheck { l, c := dnc.isToLate(token.FUNC) if !c { - pass.Reportf(fd.Pos(), "%s must not be placed after %s", token.FUNC.String(), l) + pass.Reportf(fd.Pos(), fmtWrongOrderMsg(token.FUNC.String(), l)) } } return true } + +func fmtWrongOrderMsg(target string, notAfter string) string { + return fmt.Sprintf("%s must not be placed after %s (desired order: %s)", target, notAfter, opts.decOrder) +} diff --git a/vendor/gitlab.com/bosi/decorder/renovate.json b/vendor/gitlab.com/bosi/decorder/renovate.json index 5c0388c59..60041578c 100644 --- a/vendor/gitlab.com/bosi/decorder/renovate.json +++ b/vendor/gitlab.com/bosi/decorder/renovate.json @@ -1,29 +1,7 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ - "config:base", - "group:allNonMajor", - ":automergePatch", - ":automergeMinor", - ":automergeLinters", - ":automergeTesters", - ":automergeTypes" - ], - "enabled": true, - "dependencyDashboard": false, - "separateMajorMinor": true, - "separateMultipleMajor": false, - "prHourlyLimit": 2, - "prConcurrentLimit": 10, - "labels": [ - "depUpdate" - ], - "updateLockFiles": true, - "docker": { - "pinDigests": true - }, - "postUpdateOptions": [ - "gomodTidy" + "gitlab>bosi/renovate-configs//configs/golang", + "gitlab>bosi/renovate-configs//configs/automerge" ] } - -- cgit mrf-deployment