switch from metalinter to golangci-lint

This commit is contained in:
max furman 2019-08-27 16:39:48 -07:00
parent 0939f0d053
commit d3e74a0d2e
6 changed files with 83 additions and 90 deletions

5
.gitignore vendored
View file

@ -18,3 +18,8 @@
coverage.txt coverage.txt
vendor vendor
output output
# Ignore modules until switch from gopkg
go.mod
go.sum

68
.golangci.yml Normal file
View file

@ -0,0 +1,68 @@
linters-settings:
govet:
check-shadowing: true
settings:
printf:
funcs:
- (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof
- (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf
- (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf
- (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf
golint:
min-confidence: 0
gocyclo:
min-complexity: 10
maligned:
suggest-new: true
dupl:
threshold: 100
goconst:
min-len: 2
min-occurrences: 2
depguard:
list-type: blacklist
packages:
# logging is allowed only by logutils.Log, logrus
# is allowed to use only in logutils package
- github.com/sirupsen/logrus
misspell:
locale: US
lll:
line-length: 140
goimports:
local-prefixes: github.com/golangci/golangci-lint
gocritic:
enabled-tags:
- performance
- style
- experimental
disabled-checks:
- wrapperFunc
- dupImport # https://github.com/go-critic/go-critic/issues/845
linters:
disable-all: true
enable:
- gofmt
- golint
- vet
- misspell
- ineffassign
- deadcode
run:
skip-dirs:
- pkg
issues:
exclude:
- can't lint
- declaration of "err" shadows declaration at line
- should have a package comment, unless it's in another file for this package
- error strings should not be capitalized or end with punctuation or a newline
# golangci.com configuration
# https://github.com/golangci/golangci/wiki/Configuration
service:
golangci-lint-version: 1.17.x # use the fixed version to not introduce new linters unexpectedly
prepare:
- echo "here I can run custom commands, but no preparation needed for this repo"

46
Gopkg.lock generated
View file

@ -9,13 +9,6 @@
pruneopts = "UT" pruneopts = "UT"
revision = "e2d15f34fcf99d5dbb871c820ec73f710fca9815" revision = "e2d15f34fcf99d5dbb871c820ec73f710fca9815"
[[projects]]
digest = "1:304cb78c285eaf02ab529ad02a257cad9b4845022915e6c82f87860ac53222d8"
name = "github.com/alecthomas/gometalinter"
packages = ["."]
pruneopts = "UT"
revision = "bae2f1293d092fd8167939d5108d1b025eaef9de"
[[projects]] [[projects]]
branch = "master" branch = "master"
digest = "1:c198fdc381e898e8fb62b8eb62758195091c313ad18e52a3067366e1dda2fb3c" digest = "1:c198fdc381e898e8fb62b8eb62758195091c313ad18e52a3067366e1dda2fb3c"
@ -32,17 +25,6 @@
pruneopts = "UT" pruneopts = "UT"
revision = "2972be24d48e78746da79ba8e24e8b488c9880de" revision = "2972be24d48e78746da79ba8e24e8b488c9880de"
[[projects]]
digest = "1:848ef40f818e59905140552cc49ff3dc1a15f955e4b56d1c5c2cc4b54dbadf0c"
name = "github.com/client9/misspell"
packages = [
".",
"cmd/misspell",
]
pruneopts = "UT"
revision = "b90dc15cfd220ecf8bbc9043ecb928cef381f011"
version = "v0.3.4"
[[projects]] [[projects]]
digest = "1:21ac9938fb1098b3a7b0dd909fb30878d33231177fac11a2821114eb9c1088ff" digest = "1:21ac9938fb1098b3a7b0dd909fb30878d33231177fac11a2821114eb9c1088ff"
name = "github.com/dgraph-io/badger" name = "github.com/dgraph-io/badger"
@ -82,13 +64,6 @@
revision = "72cd26f257d44c1114970e19afddcd812016007e" revision = "72cd26f257d44c1114970e19afddcd812016007e"
version = "v1.4.1" version = "v1.4.1"
[[projects]]
digest = "1:4ee452f8994700dcab9e816aef1cb9eb2317218734c6ccf5135746e6c19f3dce"
name = "github.com/golang/lint"
packages = ["golint"]
pruneopts = "UT"
revision = "06c8688daad7faa9da5a0c2f163a3d14aac986ca"
[[projects]] [[projects]]
digest = "1:97df918963298c287643883209a2c3f642e6593379f97ab400c2a2e219ab647d" digest = "1:97df918963298c287643883209a2c3f642e6593379f97ab400c2a2e219ab647d"
name = "github.com/golang/protobuf" name = "github.com/golang/protobuf"
@ -105,14 +80,6 @@
pruneopts = "UT" pruneopts = "UT"
revision = "6f45313302b9c56850fc17f99e40caebce98c716" revision = "6f45313302b9c56850fc17f99e40caebce98c716"
[[projects]]
branch = "master"
digest = "1:824d147914b40e56e9e1eebd602bc6bb9761989d52fd8e4a498428467980eb17"
name = "github.com/gordonklaus/ineffassign"
packages = ["."]
pruneopts = "UT"
revision = "1003c8bd00dc2869cb5ca5282e6ce33834fed514"
[[projects]] [[projects]]
branch = "master" branch = "master"
digest = "1:e51f40f0c19b39c1825eadd07d5c0a98a2ad5942b166d9fc4f54750ce9a04810" digest = "1:e51f40f0c19b39c1825eadd07d5c0a98a2ad5942b166d9fc4f54750ce9a04810"
@ -314,14 +281,6 @@
pruneopts = "UT" pruneopts = "UT"
revision = "a0934e12468769d8cbede3ed316c47a4b88de4ca" revision = "a0934e12468769d8cbede3ed316c47a4b88de4ca"
[[projects]]
branch = "master"
digest = "1:ba52e5a5fb800ce55108b7a5f181bb809aab71c16736051312b0aa969f82ad39"
name = "github.com/tsenart/deadcode"
packages = ["."]
pruneopts = "UT"
revision = "210d2dc333e90c7e3eedf4f2242507a8e83ed4ab"
[[projects]] [[projects]]
branch = "master" branch = "master"
digest = "1:6743b69de0d73e91004e4e201cf4965b59a0fa5caf6f0ffbe0cb9ee8807738a7" digest = "1:6743b69de0d73e91004e4e201cf4965b59a0fa5caf6f0ffbe0cb9ee8807738a7"
@ -472,11 +431,7 @@
analyzer-name = "dep" analyzer-name = "dep"
analyzer-version = 1 analyzer-version = 1
input-imports = [ input-imports = [
"github.com/alecthomas/gometalinter",
"github.com/client9/misspell/cmd/misspell",
"github.com/go-chi/chi", "github.com/go-chi/chi",
"github.com/golang/lint/golint",
"github.com/gordonklaus/ineffassign",
"github.com/newrelic/go-agent", "github.com/newrelic/go-agent",
"github.com/pkg/errors", "github.com/pkg/errors",
"github.com/rs/xid", "github.com/rs/xid",
@ -495,7 +450,6 @@
"github.com/smallstep/cli/usage", "github.com/smallstep/cli/usage",
"github.com/smallstep/nosql", "github.com/smallstep/nosql",
"github.com/smallstep/nosql/database", "github.com/smallstep/nosql/database",
"github.com/tsenart/deadcode",
"github.com/urfave/cli", "github.com/urfave/cli",
"golang.org/x/crypto/ocsp", "golang.org/x/crypto/ocsp",
"golang.org/x/net/http2", "golang.org/x/net/http2",

View file

@ -23,23 +23,6 @@
# non-go = false # non-go = false
# go-tests = true # go-tests = true
# unused-packages = true # unused-packages = true
required = [
"github.com/alecthomas/gometalinter",
"github.com/golang/lint/golint",
"github.com/client9/misspell/cmd/misspell",
"github.com/gordonklaus/ineffassign",
"github.com/tsenart/deadcode",
]
[[constraint]]
name = "github.com/golang/lint"
revision = "06c8688daad7faa9da5a0c2f163a3d14aac986ca"
[[constraint]]
name = "github.com/alecthomas/gometalinter"
revision = "bae2f1293d092fd8167939d5108d1b025eaef9de"
[[override]] [[override]]
name = "gopkg.in/alecthomas/kingpin.v3-unstable" name = "gopkg.in/alecthomas/kingpin.v3-unstable"
revision = "63abe20a23e29e80bbef8089bd3dee3ac25e5306" revision = "63abe20a23e29e80bbef8089bd3dee3ac25e5306"

View file

@ -22,25 +22,18 @@ all: build test lint
bootstra%: bootstra%:
$Q which dep || go get github.com/golang/dep/cmd/dep $Q which dep || go get github.com/golang/dep/cmd/dep
$Q dep ensure $Q dep ensure
$Q GO111MODULE=on go get github.com/golangci/golangci-lint/cmd/golangci-lint@v1.17.1
vendor: Gopkg.lock vendor: Gopkg.lock
$Q dep ensure $Q dep ensure
BOOTSTRAP=\
github.com/golang/lint/golint \
github.com/client9/misspell/cmd/misspell \
github.com/gordonklaus/ineffassign \
github.com/tsenart/deadcode \
github.com/alecthomas/gometalinter
define VENDOR_BIN_TMPL define VENDOR_BIN_TMPL
vendor/bin/$(notdir $(1)): vendor vendor/bin/$(notdir $(1)): vendor
$Q go build -o $$@ ./vendor/$(1) $Q go build -o $$@ ./vendor/$(1)
VENDOR_BINS += vendor/bin/$(notdir $(1)) VENDOR_BINS += vendor/bin/$(notdir $(1))
endef endef
$(foreach pkg,$(BOOTSTRAP),$(eval $(call VENDOR_BIN_TMPL,$(pkg))))
.PHONY: bootstra% vendor .PHONY: bootstra% vendor
################################################# #################################################
@ -126,24 +119,11 @@ integration: bin/$(BINNAME)
# Linting # Linting
######################################### #########################################
LINTERS=\
gofmt \
golint \
vet \
misspell \
ineffassign \
deadcode
$(patsubst %,%-bin,$(filter-out gofmt vet,$(LINTERS))): %-bin: vendor/bin/%
gofmt-bin vet-bin:
$(LINTERS): %: vendor/bin/gometalinter %-bin vendor
$Q PATH=`pwd`/vendor/bin:$$PATH gometalinter --tests --disable-all --vendor \
--deadline=5m -s data -s pkg --enable $@ ./...
fmt: fmt:
$Q gofmt -l -w $(SRC) $Q gofmt -l -w $(SRC)
lint: $(LINTERS) lint:
$Q LOG_LEVEL=error golangci-lint run
.PHONY: $(LINTERS) lint fmt .PHONY: $(LINTERS) lint fmt

View file

@ -124,11 +124,14 @@ func TestAuthorityNew(t *testing.T) {
assert.True(t, auth.initOnce) assert.True(t, auth.initOnce)
assert.NotNil(t, auth.intermediateIdentity) assert.NotNil(t, auth.intermediateIdentity)
for _, p := range tc.config.AuthorityConfig.Provisioners { for _, p := range tc.config.AuthorityConfig.Provisioners {
_p, ok := auth.provisioners.Load(p.GetID()) var _p provisioner.Interface
_p, ok = auth.provisioners.Load(p.GetID())
assert.True(t, ok) assert.True(t, ok)
assert.Equals(t, p, _p) assert.Equals(t, p, _p)
if kid, encryptedKey, ok := p.GetEncryptedKey(); ok { var kid, encryptedKey string
key, ok := auth.provisioners.LoadEncryptedKey(kid) if kid, encryptedKey, ok = p.GetEncryptedKey(); ok {
var key string
key, ok = auth.provisioners.LoadEncryptedKey(kid)
assert.True(t, ok) assert.True(t, ok)
assert.Equals(t, encryptedKey, key) assert.Equals(t, encryptedKey, key)
} }