b628d72766
This changes the CI / release builds to use the latest Go version. It also upgrades golangci-lint to a newer version compatible with Go 1.19. In Go 1.19, godoc has gained official support for links and lists. The syntax for code blocks in doc comments has changed and now requires a leading tab character. gofmt adapts comments to the new syntax automatically, so there are a lot of comment re-formatting changes in this PR. We need to apply the new format in order to pass the CI lint stage with Go 1.19. With the linter upgrade, I have decided to disable 'gosec' - it produces too many false-positive warnings. The 'deadcode' and 'varcheck' linters have also been removed because golangci-lint warns about them being unmaintained. 'unused' provides similar coverage and we already have it enabled, so we don't lose much with this change.
65 lines
2.2 KiB
YAML
65 lines
2.2 KiB
YAML
# This file configures github.com/golangci/golangci-lint.
|
|
|
|
run:
|
|
timeout: 20m
|
|
tests: true
|
|
# default is true. Enables skipping of directories:
|
|
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
|
|
skip-dirs-use-default: true
|
|
skip-files:
|
|
- core/genesis_alloc.go
|
|
|
|
linters:
|
|
disable-all: true
|
|
enable:
|
|
- goconst
|
|
- goimports
|
|
- gosimple
|
|
- govet
|
|
- ineffassign
|
|
- misspell
|
|
- unconvert
|
|
- typecheck
|
|
- unused
|
|
- staticcheck
|
|
- bidichk
|
|
- durationcheck
|
|
- exportloopref
|
|
- whitespace
|
|
|
|
# - structcheck # lots of false positives
|
|
# - errcheck #lot of false positives
|
|
# - contextcheck
|
|
# - errchkjson # lots of false positives
|
|
# - errorlint # this check crashes
|
|
# - exhaustive # silly check
|
|
# - makezero # false positives
|
|
# - nilerr # several intentional
|
|
|
|
linters-settings:
|
|
gofmt:
|
|
simplify: true
|
|
goconst:
|
|
min-len: 3 # minimum length of string constant
|
|
min-occurrences: 6 # minimum number of occurrences
|
|
|
|
issues:
|
|
exclude-rules:
|
|
- path: crypto/bn256/cloudflare/optate.go
|
|
linters:
|
|
- deadcode
|
|
- staticcheck
|
|
- path: internal/build/pgp.go
|
|
text: 'SA1019: "golang.org/x/crypto/openpgp" is deprecated: this package is unmaintained except for security fixes.'
|
|
- path: core/vm/contracts.go
|
|
text: 'SA1019: "golang.org/x/crypto/ripemd160" is deprecated: RIPEMD-160 is a legacy hash and should not be used for new applications.'
|
|
- path: accounts/usbwallet/trezor.go
|
|
text: 'SA1019: "github.com/golang/protobuf/proto" is deprecated: Use the "google.golang.org/protobuf/proto" package instead.'
|
|
- path: accounts/usbwallet/trezor/
|
|
text: 'SA1019: "github.com/golang/protobuf/proto" is deprecated: Use the "google.golang.org/protobuf/proto" package instead.'
|
|
exclude:
|
|
- 'SA1019: event.TypeMux is deprecated: use Feed'
|
|
- 'SA1019: strings.Title is deprecated'
|
|
- 'SA1019: strings.Title has been deprecated since Go 1.18 and an alternative has been available since Go 1.0: The rule Title uses for word boundaries does not handle Unicode punctuation properly. Use golang.org/x/text/cases instead.'
|
|
- 'SA1029: should not use built-in type string as key for value'
|