diff --git a/.golangci.max.yaml b/.golangci.max.yaml new file mode 100644 index 000000000000..1d6e8722df6f --- /dev/null +++ b/.golangci.max.yaml @@ -0,0 +1,26 @@ +version: "2" +linters: + enable: + - dogsled + - errcheck + - gocritic + - govet + - gocyclo + - ineffassign + - misspell + - nakedret + - revive + - staticcheck + - unconvert + - unparam + - unused + exclusions: + paths: + - third_party +formatters: + enable: + - gofmt + - goimports + exclusions: + paths: + - third_party diff --git a/.golangci.min.yaml b/.golangci.min.yaml new file mode 100644 index 000000000000..072bcbb45111 --- /dev/null +++ b/.golangci.min.yaml @@ -0,0 +1,26 @@ +version: "2" +linters: + enable: + - govet + - gocyclo + disable: + - errcheck + - staticcheck + exclusions: + generated: lax + presets: + - comments + - common-false-positives + - legacy + - std-error-handling + paths: + - third_party + - '(.+)_test\.go' +formatters: + enable: + - gofmt + - goimports + exclusions: + generated: lax + paths: + - third_party diff --git a/.golangci.yaml b/.golangci.yaml index 229d73d1433c..0c46fa82122b 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -3,15 +3,19 @@ run: timeout: 7m linters: enable: + - dogsled + - errcheck - gocritic - - revive + - govet - gocyclo + - ineffassign - misspell - nakedret + - revive - staticcheck - unconvert - unparam - - dogsled + - unused settings: staticcheck: checks: @@ -23,6 +27,7 @@ linters: - "-ST1020" - "-ST1021" - "-ST1022" + # Omit embedded fields from selector expression - "-QF1008" revive: @@ -165,3 +170,10 @@ linters: - path: '(.+)\.go$' text: "Error return value of `.*` is not checked" linter: errcheck +formatters: + enable: + - gofmt + - goimports + exclusions: + paths: + - third_party diff --git a/Makefile b/Makefile index 00fd8b18257f..0838f60609b9 100644 --- a/Makefile +++ b/Makefile @@ -74,15 +74,20 @@ MINIKUBE_RELEASES_URL=https://github.com/kubernetes/minikube/releases/download # latest from https://github.com/golangci/golangci-lint/releases # update this only by running `make update-golint-version` -GOLINT_VERSION ?= v2.1.5 +GOLINT_VERSION ?= v2.1.6 +# see https://golangci-lint.run/docs/configuration/file/ for config details +GOLINT_CONFIG ?= .golangci.yaml +# Set this to --verbose to see details about the linters and formatters used +GOLINT_VERBOSE ?= # Limit number of default jobs, to avoid the CI builds running out of memory GOLINT_JOBS ?= 4 # see https://github.com/golangci/golangci-lint#memory-usage-of-golangci-lint GOLINT_GOGC ?= 100 # options for lint (golangci-lint) GOLINT_OPTIONS = \ + --max-issues-per-linter 0 --max-same-issues 0 \ --build-tags "${MINIKUBE_INTEGRATION_BUILD_TAGS}" \ - --config .golangci.yaml + --config $(GOLINT_CONFIG) $(GOLINT_VERBOSE) export GO111MODULE := on diff --git a/cmd/minikube/cmd/config/view.go b/cmd/minikube/cmd/config/view.go index 298d1e155360..836aef11fc79 100644 --- a/cmd/minikube/cmd/config/view.go +++ b/cmd/minikube/cmd/config/view.go @@ -40,7 +40,7 @@ type ViewTemplate struct { var configViewCmd = &cobra.Command{ Use: "view", Short: "Display values currently set in the minikube config file", - Long: `Display values currently set in the minikube config file. + Long: `Display values currently set in the minikube config file. The output format can be customized using the --format flag, which accepts a Go template. The config file is typically located at "~/.minikube/config/config.json".`, Run: func(_ *cobra.Command, _ []string) { diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 4aaa307d564b..8934f7ccc482 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -544,7 +544,7 @@ func updateDriver(driverName string) { } if errors.Is(err, auxdriver.ErrAuxDriverVersionNotinPath) { exit.Error(reason.DrvAuxNotHealthy, "Aux driver"+driverName, err) - } //if failed to update but not a fatal error, log it and continue (old version might still work) + } // if failed to update but not a fatal error, log it and continue (old version might still work) out.WarningT("Unable to update {{.driver}} driver: {{.error}}", out.V{"driver": driverName, "error": err}) } } diff --git a/pkg/minikube/assets/addons_test.go b/pkg/minikube/assets/addons_test.go index de5c995ab1a5..865c3cc4e718 100644 --- a/pkg/minikube/assets/addons_test.go +++ b/pkg/minikube/assets/addons_test.go @@ -45,7 +45,7 @@ func mapsEqual(a, b map[string]string) bool { func TestParseMapString(t *testing.T) { cases := map[string]map[string]string{ - "Aardvark=1,B=2,Cantaloupe=3": {"Aardvark": "1", "B": "2", "Cantaloupe": "3"}, + "Aardvark=1,B=2,Cantaloupe=3": {"Aardvark": "1", "B": "2", "Cantaloupe": "3"}, "A=,B=2,C=": {"A": "", "B": "2", "C": ""}, "": {}, "malformed,good=howdy,manyequals==,": {"good": "howdy"}, diff --git a/pkg/minikube/assets/vm_assets.go b/pkg/minikube/assets/vm_assets.go index f539a94882ef..b093fb6f043c 100644 --- a/pkg/minikube/assets/vm_assets.go +++ b/pkg/minikube/assets/vm_assets.go @@ -20,13 +20,13 @@ import ( "bytes" "embed" "fmt" - "text/template" "io" "os" "path" "path/filepath" "strconv" "strings" + "text/template" "time" "github.com/pkg/errors" diff --git a/pkg/minikube/download/licenses.go b/pkg/minikube/download/licenses.go index bcda1f6d292c..977f569015e0 100644 --- a/pkg/minikube/download/licenses.go +++ b/pkg/minikube/download/licenses.go @@ -67,15 +67,15 @@ func Licenses(dir string) error { return fmt.Errorf("failed to create temporary file: %v", err) } defer func() { - if err := os.Remove(tempFile.Name()); err != nil { - klog.Warningf("Failed to remove temp file %s: %v", tempFile.Name(), err) - } - }() + if err := os.Remove(tempFile.Name()); err != nil { + klog.Warningf("Failed to remove temp file %s: %v", tempFile.Name(), err) + } + }() defer func() { - if err := tempFile.Close(); err != nil { - klog.Warningf("Failed to close temp file %s: %v", tempFile.Name(), err) - } - }() + if err := tempFile.Close(); err != nil { + klog.Warningf("Failed to close temp file %s: %v", tempFile.Name(), err) + } + }() if _, err := io.Copy(tempFile, resp.Body); err != nil { return fmt.Errorf("failed to copy downloaded content from %s: %v", url, err) diff --git a/pkg/minikube/tunnel/route_windows_test.go b/pkg/minikube/tunnel/route_windows_test.go index 88843e4cb794..da42fdfe30a0 100644 --- a/pkg/minikube/tunnel/route_windows_test.go +++ b/pkg/minikube/tunnel/route_windows_test.go @@ -139,11 +139,13 @@ Persistent Routes: expectedRt := routingTable{ routingTableLine{ route: unsafeParseRoute("127.0.0.1", "10.96.0.0/12"), - line: " 10.96.0.0 255.240.0.0 127.0.0.1 127.0.0.1 281", + line: " 10.96.0.0 255.240.0.0" + + " 127.0.0.1 127.0.0.1 281", }, routingTableLine{ route: unsafeParseRoute("192.168.1.2", "10.211.55.0/24"), - line: " 10.211.55.0 255.255.255.0 192.168.1.2 10.211.55.3 281", + line: " 10.211.55.0 255.255.255.0" + + " 192.168.1.2 10.211.55.3 281", }, } if !reflect.DeepEqual(rt.String(), expectedRt.String()) {