mirror of https://github.com/0xPolygon/go-ibft
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
505 lines
20 KiB
505 lines
20 KiB
# This file configures github.com/golangci/golangci-lint.
|
|
|
|
run:
|
|
go: '1.18'
|
|
timeout: 3m
|
|
tests: true
|
|
# default is true. Enables skipping of directories:
|
|
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
|
|
skip-dirs-use-default: true
|
|
|
|
service:
|
|
golangci-lint-version: 1.50.1
|
|
|
|
linters:
|
|
disable-all: true
|
|
enable:
|
|
- whitespace # Tool for detection of leading and trailing whitespace
|
|
- wsl # Forces you to use empty lines
|
|
- unconvert # Unnecessary type conversions
|
|
- tparallel # Detects inappropriate usage of t.Parallel() method in your Go test codes
|
|
- thelper # Detects golang test helpers without t.Helper() call and checks the consistency of test helpers
|
|
- stylecheck # Stylecheck is a replacement for golint
|
|
- prealloc # Finds slice declarations that could potentially be pre-allocated
|
|
- predeclared # Finds code that shadows one of Go's predeclared identifiers
|
|
- nolintlint # Ill-formed or insufficient nolint directives
|
|
- nlreturn # Checks for a new line before return and branch statements to increase code clarity
|
|
- misspell # Misspelled English words in comments
|
|
- makezero # Finds slice declarations with non-zero initial length
|
|
- lll # Long lines
|
|
- importas # Enforces consistent import aliases
|
|
- gosec # Security problems
|
|
- gofmt # Whether the code was gofmt-ed
|
|
- goimports # Unused imports
|
|
- goconst # Repeated strings that could be replaced by a constant
|
|
- forcetypeassert # Finds forced type assertions
|
|
- dogsled # Checks assignments with too many blank identifiers (e.g. x, , , _, := f())
|
|
- dupl # Code clone detection
|
|
- errname # Checks that sentinel errors are prefixed with the Err and error types are suffixed with the Error
|
|
- errorlint # errorlint is a linter for that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13
|
|
- ineffassign # Detects when assignments to existing variables are not used
|
|
- bodyclose # checks whether HTTP response body is closed successfully
|
|
- contextcheck # check the function whether use a non-inherited context
|
|
- decorder # check declaration order and count of types, constants, variables and functions
|
|
- exhaustive # check exhaustiveness of enum switch statements and map literals
|
|
- exportloopref # checks for pointers to enclosing loop variables
|
|
- gocognit
|
|
- gomoddirectives
|
|
- nestif # Reports deeply nested if statements
|
|
- nilerr # Finds the code that returns nil even if it checks that the error is not nil.
|
|
- nilnil # Checks that there is no simultaneous return of nil error and an invalid value.
|
|
- noctx # noctx finds sending http request without context.Context
|
|
- paralleltest
|
|
- tenv # tenv is analyzer that detects using os.Setenv instead of t.Setenv since Go1.17
|
|
- nlreturn
|
|
- errcheck # Errcheck is a program for checking for unchecked errors in go programs. These unchecked errors can be critical bugs in some cases
|
|
- gosimple # Linter for Go source code that specializes in simplifying code
|
|
- govet # Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string
|
|
- typecheck # Like the front-end of a Go compiler, parses and type-checks Go code
|
|
- unused # Checks Go code for unused constants, variables, functions and types
|
|
- containedctx # containedctx is a linter that detects struct contained context.Context field
|
|
- durationcheck # check for two durations multiplied together
|
|
- errchkjson
|
|
- gochecknoglobals # check that no global variables exist
|
|
- goerr113 # Golang linter to check the errors handling expressions
|
|
- ireturn # Accept Interfaces, Return Concrete Types
|
|
- nosprintfhostport # Checks for misuse of Sprintf to construct a host with port in a URL.
|
|
- promlinter # Check Prometheus metrics naming via promlint
|
|
- reassign # Checks that package variables are not reassigned
|
|
- revive # Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint.
|
|
- usestdlibvars # A linter that detect the possibility to use variables/constants from the Go standard library.
|
|
|
|
# is disabled because of generics. You can track the evolution of the generics support by following the https://github.com/golangci/golangci-lint/issues/2649
|
|
#- wastedassign # wastedassign finds wasted assignment statements.
|
|
|
|
linters-settings:
|
|
gofmt:
|
|
simplify: true
|
|
|
|
goconst:
|
|
min-len: 3
|
|
min-occurrences: 3
|
|
numbers: true
|
|
|
|
goimports:
|
|
local-prefixes: github.com/0xPolygon/go-ibft
|
|
|
|
nestif:
|
|
min-complexity: 4
|
|
|
|
prealloc:
|
|
for-loops: true
|
|
|
|
gocritic:
|
|
# Which checks should be enabled; can't be combined with 'disabled-checks';
|
|
# See https://go-critic.github.io/overview#checks-overview
|
|
# To check which checks are enabled run `GL_DEBUG=gocritic ./build/bin/golangci-lint run`
|
|
# By default list of stable checks is used.
|
|
enabled-checks:
|
|
- badLock
|
|
- filepathJoin
|
|
- sortSlice
|
|
- sprintfQuotedString
|
|
- syncMapLoadAndDelete
|
|
- weakCond
|
|
- boolExprSimplify
|
|
- httpNoBody
|
|
- ioutilDeprecated
|
|
- nestingReduce
|
|
- preferFilepathJoin
|
|
- redundantSprint
|
|
- stringConcatSimplify
|
|
- timeExprSimplify
|
|
- typeAssertChain
|
|
- yodaStyleExpr
|
|
- truncateCmp
|
|
- equalFold
|
|
- preferDecodeRune
|
|
- preferFprint
|
|
- preferStringWriter
|
|
- preferWriteByte
|
|
- sliceClear
|
|
#- ruleguard
|
|
|
|
# Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint run` to see all tags and checks.
|
|
# Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags".
|
|
enabled-tags:
|
|
- performance
|
|
- diagnostic
|
|
- opinionated
|
|
- style
|
|
disabled-tags:
|
|
- experimental
|
|
|
|
cyclop:
|
|
skip-tests: true
|
|
|
|
govet:
|
|
disable:
|
|
- deepequalerrors
|
|
- fieldalignment
|
|
- shadow
|
|
- unsafeptr
|
|
check-shadowing: true
|
|
enable-all: true
|
|
# settings:
|
|
# printf:
|
|
# # Run `go tool vet help printf` to see available settings for `printf` analyzer.
|
|
# funcs:
|
|
# - (github.com/ethereum/go-ethereum/log.Logger).Trace
|
|
# - (github.com/ethereum/go-ethereum/log.Logger).Debug
|
|
# - (github.com/ethereum/go-ethereum/log.Logger).Info
|
|
# - (github.com/ethereum/go-ethereum/log.Logger).Warn
|
|
# - (github.com/ethereum/go-ethereum/log.Logger).Error
|
|
# - (github.com/ethereum/go-ethereum/log.Logger).Crit
|
|
|
|
revive:
|
|
ignore-generated-header: true
|
|
severity: error
|
|
enable-all-rules: true
|
|
# Sets the default failure confidence.
|
|
# This means that linting errors with less than 0.8 confidence will be ignored.
|
|
# Default: 0.8
|
|
confidence: 0.1
|
|
rules:
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#add-constant
|
|
- name: add-constant
|
|
severity: warning
|
|
disabled: true
|
|
arguments:
|
|
- maxLitCount: "3"
|
|
allowStrs: '""'
|
|
allowInts: "0,1,2"
|
|
allowFloats: "0.0,0.,1.0,1.,2.0,2."
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#argument-limit
|
|
- name: argument-limit
|
|
severity: warning
|
|
disabled: false
|
|
arguments: [ 4 ]
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#atomic
|
|
- name: atomic
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#banned-characters
|
|
- name: banned-characters
|
|
severity: warning
|
|
disabled: false
|
|
arguments: [ "Ω", "Σ", "σ", "7" ]
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#bare-return
|
|
- name: bare-return
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#blank-imports
|
|
- name: blank-imports
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#bool-literal-in-expr
|
|
- name: bool-literal-in-expr
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#call-to-gc
|
|
- name: call-to-gc
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#cognitive-complexity
|
|
- name: cognitive-complexity
|
|
severity: warning
|
|
disabled: true
|
|
arguments: [ 7 ]
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#confusing-naming
|
|
- name: confusing-naming
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#confusing-results
|
|
- name: confusing-results
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#constant-logical-expr
|
|
- name: constant-logical-expr
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-as-argument
|
|
- name: context-as-argument
|
|
severity: warning
|
|
disabled: false
|
|
arguments:
|
|
- allowTypesBefore: "*testing.T,*github.com/user/repo/testing.Harness"
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-keys-type
|
|
- name: context-keys-type
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#cyclomatic
|
|
- name: cyclomatic
|
|
severity: warning
|
|
disabled: true
|
|
arguments: [ 3 ]
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#datarace
|
|
- name: datarace
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#deep-exit
|
|
- name: deep-exit
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#defer
|
|
- name: defer
|
|
severity: warning
|
|
disabled: false
|
|
arguments:
|
|
- [ "call-chain", "loop" ]
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#dot-imports
|
|
- name: dot-imports
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#duplicated-imports
|
|
- name: duplicated-imports
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#early-return
|
|
- name: early-return
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#empty-block
|
|
- name: empty-block
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#empty-lines
|
|
- name: empty-lines
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-naming
|
|
- name: error-naming
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-return
|
|
- name: error-return
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-strings
|
|
- name: error-strings
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#errorf
|
|
- name: errorf
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#exported
|
|
- name: exported
|
|
severity: warning
|
|
disabled: false
|
|
arguments:
|
|
- "checkPrivateReceivers"
|
|
- "sayRepetitiveInsteadOfStutters"
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#file-header
|
|
- name: file-header
|
|
severity: warning
|
|
disabled: true
|
|
arguments:
|
|
- This is the text that must appear at the top of source files.
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#flag-parameter
|
|
- name: flag-parameter
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#function-result-limit
|
|
- name: function-result-limit
|
|
severity: warning
|
|
disabled: false
|
|
arguments: [ 2 ]
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#function-length
|
|
- name: function-length
|
|
severity: warning
|
|
disabled: true
|
|
arguments: [ 10, 0 ]
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#get-return
|
|
- name: get-return
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#identical-branches
|
|
- name: identical-branches
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#if-return
|
|
- name: if-return
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#increment-decrement
|
|
- name: increment-decrement
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#indent-error-flow
|
|
- name: indent-error-flow
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#imports-blacklist
|
|
- name: imports-blacklist
|
|
severity: warning
|
|
disabled: false
|
|
arguments:
|
|
- "crypto/md5"
|
|
- "crypto/sha1"
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#import-shadowing
|
|
- name: import-shadowing
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#line-length-limit
|
|
- name: line-length-limit
|
|
severity: warning
|
|
disabled: false
|
|
arguments: [ 180 ]
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#max-public-structs
|
|
- name: max-public-structs
|
|
severity: warning
|
|
disabled: false
|
|
arguments: [ 3 ]
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#modifies-parameter
|
|
- name: modifies-parameter
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#modifies-value-receiver
|
|
- name: modifies-value-receiver
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#nested-structs
|
|
- name: nested-structs
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#optimize-operands-order
|
|
- name: optimize-operands-order
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#package-comments
|
|
- name: package-comments
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range
|
|
- name: range
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-in-closure
|
|
- name: range-val-in-closure
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-address
|
|
- name: range-val-address
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#receiver-naming
|
|
- name: receiver-naming
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#redefines-builtin-id
|
|
- name: redefines-builtin-id
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-of-int
|
|
- name: string-of-int
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-format
|
|
- name: string-format
|
|
severity: warning
|
|
disabled: false
|
|
arguments:
|
|
- - 'core.WriteError[1].Message'
|
|
- '/^([^A-Z]|$)/'
|
|
- must not start with a capital letter
|
|
- - 'fmt.Errorf[0]'
|
|
- '/(^|[^\.!?])$/'
|
|
- must not end in punctuation
|
|
- - panic
|
|
- '/^[^\n]*$/'
|
|
- must not contain line breaks
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#struct-tag
|
|
- name: struct-tag
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#superfluous-else
|
|
- name: superfluous-else
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#time-equal
|
|
- name: time-equal
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#time-naming
|
|
- name: time-naming
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-naming
|
|
- name: var-naming
|
|
severity: warning
|
|
disabled: false
|
|
arguments:
|
|
- [ "ID" ] # AllowList
|
|
- [ "VM" ] # DenyList
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-declaration
|
|
- name: var-declaration
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unconditional-recursion
|
|
- name: unconditional-recursion
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-naming
|
|
- name: unexported-naming
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-return
|
|
- name: unexported-return
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unhandled-error
|
|
- name: unhandled-error
|
|
severity: warning
|
|
disabled: false
|
|
arguments:
|
|
- "fmt.Printf"
|
|
- "myFunction"
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unnecessary-stmt
|
|
- name: unnecessary-stmt
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unreachable-code
|
|
- name: unreachable-code
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unused-parameter
|
|
- name: unused-parameter
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unused-receiver
|
|
- name: unused-receiver
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#useless-break
|
|
- name: useless-break
|
|
severity: warning
|
|
disabled: false
|
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#waitgroup-by-value
|
|
- name: waitgroup-by-value
|
|
severity: warning
|
|
disabled: false
|
|
|
|
issues:
|
|
max-issues-per-linter: 0
|
|
max-same-issues: 0
|
|
new-from-rev: main # report only new issues with reference to develop branch
|
|
#new-from-rev: ""
|
|
new: false
|
|
whole-files: true
|
|
exclude-rules:
|
|
- path: _test\.go
|
|
linters:
|
|
- gosec
|
|
- unparam
|
|
- lll
|
|
- containedctx
|
|
- goerr113
|
|
- revive
|
|
- gochecknoglobals
|
|
- exhaustive
|
|
include:
|
|
- EXC0012 # Exported (.+) should have comment( \(or a comment on this block\))? or be unexported
|
|
- EXC0013 # Package comment should be of the form "(.+)...
|
|
- EXC0014 # Comment on exported (.+) should be of the form "(.+)..."
|
|
- EXC0015 # Should have a package comment
|
|
|