From f1e92bcfb84d51419e9d1aee0f6bbd7cd5f3a3e8 Mon Sep 17 00:00:00 2001 From: Istio Automation Date: Thu, 10 Apr 2025 08:32:19 -0400 Subject: [PATCH] Automator: update common-files@master in istio/istio.io@master (#16401) --- .devcontainer/devcontainer.json | 2 +- common/.commonfiles.sha | 2 +- common/config/.golangci-format.yml | 56 ---- common/config/.golangci.yml | 441 +++++++++++++---------------- common/config/license-lint.yml | 3 + common/scripts/format_go.sh | 2 +- common/scripts/lint_go.sh | 4 +- common/scripts/setup_env.sh | 2 +- 8 files changed, 210 insertions(+), 302 deletions(-) delete mode 100644 common/config/.golangci-format.yml diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 12b4c721ae..679b4ee30d 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "istio build-tools", - "image": "gcr.io/istio-testing/build-tools:master-3a91dee3a2fe2662a8f6c29f82d06d0b705d8e88", + "image": "gcr.io/istio-testing/build-tools:master-fcd42145fc132acd1e8f607e9e7aca15058e9fb9", "privileged": true, "remoteEnv": { "USE_GKE_GCLOUD_AUTH_PLUGIN": "True", diff --git a/common/.commonfiles.sha b/common/.commonfiles.sha index 8d21c69f66..5fd61f1274 100644 --- a/common/.commonfiles.sha +++ b/common/.commonfiles.sha @@ -1 +1 @@ -7ae681fbe157f8a5ba0c2851dd351a58b1a1ca5f +a1d5c4198ab79a14c09c034f2d95245efa3e2bcb diff --git a/common/config/.golangci-format.yml b/common/config/.golangci-format.yml deleted file mode 100644 index 16b8b1c0bd..0000000000 --- a/common/config/.golangci-format.yml +++ /dev/null @@ -1,56 +0,0 @@ -# WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY -# -# The original version of this file is located in the https://github.com/istio/common-files repo. -# If you're looking at this file in a different repo and want to make a change, please go to the -# common-files repo, make the change there and check it in. Then come back to this repo and run -# "make update-common". - -run: - # Timeout for analysis, e.g. 30s, 5m. - # Default: 1m - timeout: 20m - build-tags: - - integ - - integfuzz -linters: - disable-all: true - enable: - - goimports - - gofumpt - - gci - fast: false -linters-settings: - gci: - sections: - - standard # Captures all standard packages if they do not match another section. - - default # Contains all imports that could not be matched to another section type. - - prefix(istio.io/) # Groups all imports with the specified Prefix. - goimports: - # put imports beginning with prefix after 3rd-party packages; - # it's a comma-separated list of prefixes - local-prefixes: istio.io/ -issues: - # Which dirs to exclude: issues from them won't be reported. - # Can use regexp here: `generated.*`, regexp is applied on full path, - # including the path prefix if one is set. - # Default dirs are skipped independently of this option's value (see exclude-dirs-use-default). - # "/" will be replaced by current OS file path separator to properly work on Windows. - # Default: [] - exclude-dirs: - - genfiles$ - - vendor$ - # Which files to exclude: they will be analyzed, but issues from them won't be reported. - # There is no need to include all autogenerated files, - # we confidently recognize autogenerated files. - # If it's not, please let us know. - # "/" will be replaced by current OS file path separator to properly work on Windows. - # Default: [] - exclude-files: - - ".*\\.pb\\.go" - - ".*\\.gen\\.go" - # Maximum issues count per one linter. - # Set to 0 to disable. - # Default: 50 - max-issues-per-linter: 0 - # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. - max-same-issues: 0 diff --git a/common/config/.golangci.yml b/common/config/.golangci.yml index cb8ac8c11e..a3908b1d12 100644 --- a/common/config/.golangci.yml +++ b/common/config/.golangci.yml @@ -1,262 +1,221 @@ -# WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY -# -# The original version of this file is located in the https://github.com/istio/common-files repo. -# If you're looking at this file in a different repo and want to make a change, please go to the -# common-files repo, make the change there and check it in. Then come back to this repo and run -# "make update-common". - +version: "2" run: - # Timeout for analysis, e.g. 30s, 5m. - # Default: 1m - timeout: 20m build-tags: - integ - integfuzz linters: - disable-all: true + default: none enable: - - errcheck - copyloopvar - depguard + - errcheck - gocritic - - gofumpt - - goimports - - revive - - gosimple + - gosec - govet - ineffassign - lll - misspell + - revive - staticcheck - - stylecheck - - typecheck - unconvert - unparam - unused - - gci - - gosec - fast: false -linters-settings: - errcheck: - # report about not checking of errors in type assertions: `a := b.(MyStruct)`; - # default is false: such cases aren't reported by default. - check-type-assertions: false - # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; - # default is false: such cases aren't reported by default. - check-blank: false - govet: - disable: - # report about shadowed variables - - shadow - goimports: - # put imports beginning with prefix after 3rd-party packages; - # it's a comma-separated list of prefixes - local-prefixes: istio.io/ - misspell: - # Correct spellings using locale preferences for US or UK. - # Default is to use a neutral variety of English. - # Setting locale to US will correct the British spelling of 'colour' to 'color'. - locale: US - ignore-words: - - cancelled - lll: - # max line length, lines longer will be reported. Default is 120. - # '\t' is counted as 1 character by default, and can be changed with the tab-width option - line-length: 160 - # tab width in spaces. Default to 1. - tab-width: 1 - revive: - ignore-generated-header: false - severity: "warning" - confidence: 0.0 + settings: + depguard: + rules: + DenyGogoProtobuf: + files: + - $all + deny: + - pkg: github.com/gogo/protobuf + desc: gogo/protobuf is deprecated, use golang/protobuf + errcheck: + check-type-assertions: false + check-blank: false + gocritic: + disable-all: true + enabled-checks: + - appendCombine + - argOrder + - assignOp + - badCond + - boolExprSimplify + - builtinShadow + - captLocal + - caseOrder + - codegenComment + - commentedOutCode + - commentedOutImport + - defaultCaseOrder + - deprecatedComment + - docStub + - dupArg + - dupBranchBody + - dupCase + - dupSubExpr + - elseif + - emptyFallthrough + - equalFold + - flagDeref + - flagName + - hexLiteral + - indexAlloc + - initClause + - methodExprCall + - nilValReturn + - octalLiteral + - offBy1 + - rangeExprCopy + - regexpMust + - sloppyLen + - stringXbytes + - switchTrue + - typeAssertChain + - typeSwitchVar + - typeUnparen + - underef + - unlambda + - unnecessaryBlock + - unslice + - valSwap + - weakCond + gosec: + includes: + - G401 + - G402 + - G404 + govet: + disable: + - shadow + lll: + line-length: 160 + tab-width: 1 + misspell: + locale: US + ignore-rules: + - cancelled + revive: + confidence: 0 + severity: warning + rules: + - name: blank-imports + - name: context-keys-type + - name: time-naming + - name: var-declaration + - name: unexported-return + - name: errorf + - name: context-as-argument + - name: dot-imports + - name: error-return + - name: error-strings + - name: error-naming + - name: increment-decrement + - name: var-naming + - name: package-comments + - name: range + - name: receiver-naming + - name: indent-error-flow + - name: superfluous-else + - name: modifies-parameter + - name: unreachable-code + - name: struct-tag + - name: constant-logical-expr + - name: bool-literal-in-expr + - name: redefines-builtin-id + - name: imports-blocklist + - name: range-val-in-closure + - name: range-val-address + - name: waitgroup-by-value + - name: atomic + - name: call-to-gc + - name: duplicated-imports + - name: string-of-int + - name: defer + arguments: + - - call-chain + - name: unconditional-recursion + - name: identical-branches + unparam: + check-exported: false + exclusions: + generated: lax + presets: + - comments + - common-false-positives + - legacy + - std-error-handling rules: - - name: blank-imports - - name: context-keys-type - - name: time-naming - - name: var-declaration - - name: unexported-return - - name: errorf - - name: context-as-argument - - name: dot-imports - - name: error-return - - name: error-strings - - name: error-naming - - name: increment-decrement - - name: var-naming - - name: package-comments - - name: range - - name: receiver-naming - - name: indent-error-flow - - name: superfluous-else - - name: modifies-parameter - - name: unreachable-code - - name: struct-tag - - name: constant-logical-expr - - name: bool-literal-in-expr - - name: redefines-builtin-id - - name: imports-blocklist - - name: range-val-in-closure - - name: range-val-address - - name: waitgroup-by-value - - name: atomic - - name: call-to-gc - - name: duplicated-imports - - name: string-of-int - - name: defer - arguments: - - - "call-chain" - - name: unconditional-recursion - - name: identical-branches - # the following rules can be enabled in the future - # - name: empty-lines - # - name: confusing-results - # - name: empty-block - # - name: get-return - # - name: confusing-naming - # - name: unexported-naming - # - name: early-return - # - name: unused-parameter - # - name: unnecessary-stmt - # - name: deep-exit - # - name: import-shadowing - # - name: modifies-value-receiver - # - name: unused-receiver - # - name: bare-return - # - name: flag-parameter - # - name: unhandled-error - # - name: if-return - unparam: - # Inspect exported functions, default is false. Set to true if no external program/library imports your code. - # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find external interfaces. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false - gci: - sections: - - standard # Captures all standard packages if they do not match another section. - - default # Contains all imports that could not be matched to another section type. - - prefix(istio.io/) # Groups all imports with the specified Prefix. - gocritic: - # Disable all checks. - # Default: false - disable-all: true - # Which checks should be enabled in addition to default checks. Since we don't want - # all of the default checks, we do the disable-all first. - enabled-checks: - - appendCombine - - argOrder - - assignOp - - badCond - - boolExprSimplify - - builtinShadow - - captLocal - - caseOrder - - codegenComment - - commentedOutCode - - commentedOutImport - - defaultCaseOrder - - deprecatedComment - - docStub - - dupArg - - dupBranchBody - - dupCase - - dupSubExpr - - elseif - - emptyFallthrough - - equalFold - - flagDeref - - flagName - - hexLiteral - - indexAlloc - - initClause - - methodExprCall - - nilValReturn - - octalLiteral - - offBy1 - - rangeExprCopy - - regexpMust - - sloppyLen - - stringXbytes - - switchTrue - - typeAssertChain - - typeSwitchVar - - typeUnparen - - underef - - unlambda - - unnecessaryBlock - - unslice - - valSwap - - weakCond - depguard: - rules: - DenyGogoProtobuf: - files: - - $all - deny: - - pkg: github.com/gogo/protobuf - desc: "gogo/protobuf is deprecated, use golang/protobuf" - gosec: - includes: - - G401 - - G402 - - G404 + - linters: + - errcheck + - maligned + path: _test\.go$|tests/|samples/ + - path: _test\.go$ + text: 'dot-imports: should not use dot imports' + - linters: + - staticcheck + text: 'SA1019: package github.com/golang/protobuf/jsonpb' + - linters: + - staticcheck + text: 'SA1019: "github.com/golang/protobuf/jsonpb"' + - linters: + - staticcheck + text: 'SA1019: grpc.Dial is deprecated: use NewClient instead' + - linters: + - staticcheck + text: 'SA1019: grpc.DialContext is deprecated: use NewClient instead' + - linters: + - staticcheck + text: 'SA1019: grpc.WithBlock is deprecated' + - linters: + - staticcheck + text: 'SA1019: grpc.FailOnNonTempDialError' + - linters: + - staticcheck + text: 'SA1019: grpc.WithReturnConnectionError' + - path: (.+)\.go$ + text: composite literal uses unkeyed fields + # TODO: remove following rule in the future + - linters: + - staticcheck + text: 'QF' + - linters: + - staticcheck + text: 'ST1005' + - linters: + - staticcheck + text: 'S1007' + paths: + - .*\.pb\.go + - .*\.gen\.go + - genfiles$ + - vendor$ + - third_party$ + - builtin$ + - examples$ issues: - # List of regexps of issue texts to exclude, empty list by default. - # But independently from this option we use default exclude patterns, - # it can be disabled by `exclude-use-default: false`. To list all - # excluded by default patterns execute `golangci-lint run --help` - exclude: - - composite literal uses unkeyed fields - # Which dirs to exclude: issues from them won't be reported. - # Can use regexp here: `generated.*`, regexp is applied on full path, - # including the path prefix if one is set. - # Default dirs are skipped independently of this option's value (see exclude-dirs-use-default). - # "/" will be replaced by current OS file path separator to properly work on Windows. - # Default: [] - exclude-dirs: - - genfiles$ - - vendor$ - # Which files to exclude: they will be analyzed, but issues from them won't be reported. - # There is no need to include all autogenerated files, - # we confidently recognize autogenerated files. - # If it's not, please let us know. - # "/" will be replaced by current OS file path separator to properly work on Windows. - # Default: [] - exclude-files: - - ".*\\.pb\\.go" - - ".*\\.gen\\.go" - exclude-rules: - # Exclude some linters from running on test files. - - path: _test\.go$|^tests/|^samples/ - linters: - - errcheck - - maligned - - path: _test\.go$ - text: "dot-imports: should not use dot imports" - # We need to use the deprecated module since the jsonpb replacement is not backwards compatible. - - linters: [staticcheck] - text: "SA1019: package github.com/golang/protobuf/jsonpb" - - linters: [staticcheck] - text: 'SA1019: "github.com/golang/protobuf/jsonpb"' - # This is not helpful. The new function is not very usable and the current function will not be removed - - linters: [staticcheck] - text: 'SA1019: grpc.Dial is deprecated: use NewClient instead' - - linters: [staticcheck] - text: 'SA1019: grpc.DialContext is deprecated: use NewClient instead' - - linters: [staticcheck] - text: "SA1019: grpc.WithBlock is deprecated" - - linters: [staticcheck] - text: "SA1019: grpc.FailOnNonTempDialError" - - linters: [staticcheck] - text: "SA1019: grpc.WithReturnConnectionError" - # Independently from option `exclude` we use default exclude patterns, - # it can be disabled by this option. To list all - # excluded by default patterns execute `golangci-lint run --help`. - # Default value for this option is true. - exclude-use-default: true - # Maximum issues count per one linter. - # Set to 0 to disable. - # Default: 50 max-issues-per-linter: 0 - # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. max-same-issues: 0 +formatters: + enable: + - gci + - gofumpt + - goimports + settings: + gci: + sections: + - standard + - default + - prefix(istio.io/) + goimports: + local-prefixes: + - istio.io/ + exclusions: + generated: lax + paths: + - .*\.pb\.go + - .*\.gen\.go + - genfiles$ + - vendor$ + - third_party$ + - builtin$ + - examples$ diff --git a/common/config/license-lint.yml b/common/config/license-lint.yml index 8743adf162..ecd3b5914a 100644 --- a/common/config/license-lint.yml +++ b/common/config/license-lint.yml @@ -140,3 +140,6 @@ allowlisted_modules: # Apache 2.0 - github.com/aws/smithy-go + +# Simplified BSD License: https://github.com/gomarkdown/markdown/blob/master/LICENSE.txt +- github.com/gomarkdown/markdown diff --git a/common/scripts/format_go.sh b/common/scripts/format_go.sh index 1860527076..cc7cd95829 100755 --- a/common/scripts/format_go.sh +++ b/common/scripts/format_go.sh @@ -21,4 +21,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -golangci-lint run --fix -c ./common/config/.golangci-format.yml +golangci-lint run --fix -c ./common/config/.golangci.yml diff --git a/common/scripts/lint_go.sh b/common/scripts/lint_go.sh index df465a98fa..138fad5085 100755 --- a/common/scripts/lint_go.sh +++ b/common/scripts/lint_go.sh @@ -21,8 +21,10 @@ # See the License for the specific language governing permissions and # limitations under the License. +GOLANGCILINT_RUN_ARGS=(--output.text.path stdout --output.junit-xml.path "${ARTIFACTS}"/junit-lint.xml) + if [[ "${ARTIFACTS}" != "" ]]; then - golangci-lint run -v -c ./common/config/.golangci.yml --out-format colored-line-number,junit-xml:"${ARTIFACTS}"/junit-lint.xml + golangci-lint run -v -c ./common/config/.golangci.yml "${GOLANGCILINT_RUN_ARGS[@]}" else golangci-lint run -v -c ./common/config/.golangci.yml fi diff --git a/common/scripts/setup_env.sh b/common/scripts/setup_env.sh index dbca904bbb..c80de2178f 100755 --- a/common/scripts/setup_env.sh +++ b/common/scripts/setup_env.sh @@ -75,7 +75,7 @@ fi TOOLS_REGISTRY_PROVIDER=${TOOLS_REGISTRY_PROVIDER:-gcr.io} PROJECT_ID=${PROJECT_ID:-istio-testing} if [[ "${IMAGE_VERSION:-}" == "" ]]; then - IMAGE_VERSION=master-3a91dee3a2fe2662a8f6c29f82d06d0b705d8e88 + IMAGE_VERSION=master-fcd42145fc132acd1e8f607e9e7aca15058e9fb9 fi if [[ "${IMAGE_NAME:-}" == "" ]]; then IMAGE_NAME=build-tools