5adc314817
Changelog: https://golangci-lint.run/product/changelog/#1610 Removes `exportloopref` (no longer needed), replaces it with `copyloopvar` which is basically the opposite. Also adds: - `durationcheck` - `gocheckcompilerdirectives` - `reassign` - `mirror` - `tenv` --------- Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
80 lines
2.5 KiB
YAML
80 lines
2.5 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
|
|
|
|
linters:
|
|
disable-all: true
|
|
enable:
|
|
- goimports
|
|
- gosimple
|
|
- govet
|
|
- ineffassign
|
|
- misspell
|
|
- unconvert
|
|
- typecheck
|
|
- unused
|
|
- staticcheck
|
|
- bidichk
|
|
- durationcheck
|
|
- copyloopvar
|
|
- whitespace
|
|
- revive # only certain checks enabled
|
|
- durationcheck
|
|
- gocheckcompilerdirectives
|
|
- reassign
|
|
- mirror
|
|
- tenv
|
|
### linters we tried and will not be using:
|
|
###
|
|
# - 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
|
|
revive:
|
|
enable-all-rules: false
|
|
# here we enable specific useful rules
|
|
# see https://golangci-lint.run/usage/linters/#revive for supported rules
|
|
rules:
|
|
- name: receiver-naming
|
|
severity: warning
|
|
disabled: false
|
|
exclude: [""]
|
|
|
|
issues:
|
|
exclude-files:
|
|
- core/genesis_alloc.go
|
|
exclude-rules:
|
|
- path: crypto/bn256/cloudflare/optate.go
|
|
linters:
|
|
- deadcode
|
|
- staticcheck
|
|
- path: crypto/bn256/
|
|
linters:
|
|
- revive
|
|
- path: cmd/utils/flags.go
|
|
text: "SA1019: cfg.TxLookupLimit is deprecated: use 'TransactionHistory' instead."
|
|
- path: cmd/utils/flags.go
|
|
text: "SA1019: ethconfig.Defaults.TxLookupLimit is deprecated: use 'TransactionHistory' instead."
|
|
- 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.'
|
|
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'
|