chore: Switch from gometalinter to golangci-lint
gometalinter has been deprecated, with golangci-lint as its spiritual and recommended successor. Here we switch to using it with an equivalent configuration, albeit with newer versions of some linters. To maintain compatibility with existing settings, we have a couple of things disabled here, specifically: - tests We have a lot of unused code in our tests that choke deadcode. We should attempt to clean these up soon so that we can lint our testcode. - govet.check-shadowing = false This breaks on redefining `err` which we do all over the nomad codebase.
This commit is contained in:
parent
574dac202c
commit
0071a06c8b
|
@ -0,0 +1,71 @@
|
|||
run:
|
||||
# timeout for analysis, e.g. 30s, 5m, default is 1m
|
||||
deadline: 10m
|
||||
|
||||
tests: false
|
||||
|
||||
# which dirs to skip: they won't be analyzed;
|
||||
# can use regexp here: generated.*, regexp is applied on full path;
|
||||
# default value is empty list, but next dirs are always skipped independently
|
||||
# from this option's value:
|
||||
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
|
||||
skip-dirs:
|
||||
- ui
|
||||
|
||||
# which files to skip: they will be analyzed, but issues from them
|
||||
# won't be reported. Default value is empty list, but there is
|
||||
# no need to include all autogenerated files, we confidently recognize
|
||||
# autogenerated files. If it's not please let us know.
|
||||
skip-files:
|
||||
- ".*\\.generated\\.go$"
|
||||
- ".*bindata_assetfs\\.go$"
|
||||
|
||||
# output configuration options
|
||||
output:
|
||||
# colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number"
|
||||
format: colored-line-number
|
||||
|
||||
# print lines of code with issue, default is true
|
||||
print-issued-lines: true
|
||||
|
||||
# print linter name in the end of issue text, default is true
|
||||
print-linter-name: true
|
||||
|
||||
# all available settings of specific linters
|
||||
linters-settings:
|
||||
errcheck:
|
||||
# report about not checking of errors in type assetions: `a := b.(MyStruct)`;
|
||||
# default is false: such cases aren't reported by default.
|
||||
check-type-assertions: false
|
||||
|
||||
# [deprecated] comma-separated list of pairs of the form pkg:regex
|
||||
# the regex is used to ignore names within pkg. (default "fmt:.*").
|
||||
# see https://github.com/kisielk/errcheck#the-deprecated-method for details
|
||||
ignore: fmt:.*,io/ioutil:^Read.*
|
||||
|
||||
# path to a file containing a list of functions to exclude from checking
|
||||
# see https://github.com/kisielk/errcheck#excluding-functions for details
|
||||
# exclude: /path/to/file.txt
|
||||
govet:
|
||||
# report about shadowed variables
|
||||
check-shadowing: false
|
||||
gofmt:
|
||||
# simplify code: gofmt with `-s` option, true by default
|
||||
simplify: true
|
||||
|
||||
linters:
|
||||
disable-all: true
|
||||
enable:
|
||||
- goimports
|
||||
- misspell
|
||||
- govet
|
||||
- deadcode
|
||||
- varcheck
|
||||
- ineffassign
|
||||
- structcheck
|
||||
- unconvert
|
||||
- gofmt
|
||||
# Stretch Goal
|
||||
#- maligned
|
||||
fast: false
|
||||
|
25
GNUmakefile
25
GNUmakefile
|
@ -154,8 +154,7 @@ deps: ## Install build and development dependencies
|
|||
.PHONY: lint-deps
|
||||
lint-deps: ## Install linter dependencies
|
||||
@echo "==> Updating linter dependencies..."
|
||||
go get -u github.com/alecthomas/gometalinter
|
||||
gometalinter --install
|
||||
go get -u github.com/golangci/golangci-lint/cmd/golangci-lint
|
||||
|
||||
.PHONY: git-hooks
|
||||
git-dir = $(shell git rev-parse --git-dir)
|
||||
|
@ -167,27 +166,7 @@ $(git-dir)/hooks/%: dev/hooks/%
|
|||
.PHONY: check
|
||||
check: ## Lint the source code
|
||||
@echo "==> Linting source code..."
|
||||
@gometalinter \
|
||||
--deadline 10m \
|
||||
--vendor \
|
||||
--exclude='.*\.generated\.go' \
|
||||
--exclude='.*\.pb\.go' \
|
||||
--exclude='.*bindata_assetfs\.go' \
|
||||
--skip="ui/" \
|
||||
--sort="path" \
|
||||
--aggregate \
|
||||
--enable-gc \
|
||||
--disable-all \
|
||||
--enable goimports \
|
||||
--enable misspell \
|
||||
--enable vet \
|
||||
--enable deadcode \
|
||||
--enable varcheck \
|
||||
--enable ineffassign \
|
||||
--enable structcheck \
|
||||
--enable unconvert \
|
||||
--enable gofmt \
|
||||
./...
|
||||
@golangci-lint run -j 1
|
||||
@echo "==> Spell checking website..."
|
||||
@misspell -error -source=text website/source/
|
||||
|
||||
|
|
Loading…
Reference in New Issue