From 34aeb1df5c3c129bb0a8ed0bfc3316a2cc56fcd4 Mon Sep 17 00:00:00 2001 From: Masayuki Morita Date: Mon, 27 Dec 2021 10:17:40 +0900 Subject: [PATCH] Use golangci-lint instead of golint We have been using golint as a linter, but golint was officially deprecated. https://github.com/golang/go/issues/38968 The revive is a drop-in replacement of golint. https://github.com/mgechev/revive It's possible to use revive as it is, but I'd like to use revive via golangci-lint so that we can add more linters easily. https://github.com/golangci/golangci-lint The golangci-lint is a meta linter. I'll take this opportunity to introduce some additional checks. --- .github/workflows/lint.yaml | 22 ++++++++++++++++++++++ .golangci.yml | 12 ++++++++++++ Makefile | 8 ++------ go.mod | 2 -- go.sum | 9 --------- tools.go | 7 ------- 6 files changed, 36 insertions(+), 24 deletions(-) create mode 100644 .github/workflows/lint.yaml create mode 100644 .golangci.yml delete mode 100644 tools.go diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml new file mode 100644 index 0000000..ef94149 --- /dev/null +++ b/.github/workflows/lint.yaml @@ -0,0 +1,22 @@ +name: lint +permissions: + contents: read +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + golangci: + name: lint + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - uses: actions/checkout@v2 + - name: golangci-lint + uses: golangci/golangci-lint-action@v2 + with: + version: v1.43.0 diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..711e375 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,12 @@ +# https://golangci-lint.run/usage/configuration/ +linters: + disable-all: true + enable: + - errcheck + - goimports + - gosec + - gosimple + - govet + - ineffassign + - revive + - staticcheck diff --git a/Makefile b/Makefile index 3ab06cb..3184eba 100644 --- a/Makefile +++ b/Makefile @@ -4,10 +4,6 @@ ifndef GOBIN GOBIN := $(shell echo "$${GOPATH%%:*}/bin") endif -GOLINT := $(GOBIN)/golint - -$(GOLINT): ; @go install golang.org/x/lint/golint - .DEFAULT_GOAL := build .PHONY: deps @@ -23,8 +19,8 @@ install: deps go install .PHONY: lint -lint: $(GOLINT) - golint $$(go list ./... | grep -v /vendor/) +lint: + golangci-lint run ./... .PHONY: vet vet: diff --git a/go.mod b/go.mod index 3c0a1b9..8d237ff 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,6 @@ require ( github.com/mattn/go-shellwords v1.0.10 github.com/mitchellh/cli v1.1.1 github.com/spf13/pflag v1.0.2 - golang.org/x/lint v0.0.0-20200302205851-738671d3881b ) require ( @@ -35,6 +34,5 @@ require ( github.com/zclconf/go-cty v1.2.0 // indirect golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f // indirect golang.org/x/text v0.3.3 // indirect - golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7 // indirect golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 // indirect ) diff --git a/go.sum b/go.sum index a5d8983..5f21f7e 100644 --- a/go.sum +++ b/go.sum @@ -79,19 +79,13 @@ github.com/zclconf/go-cty v1.2.0 h1:sPHsy7ADcIZQP3vILvTjrh74ZA175TFP5vqiNK1UmlI= github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -103,9 +97,6 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7 h1:EBZoQjiKKPaLbPrbpssUfuHtwM6KV/vb4U85g/cigFY= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= diff --git a/tools.go b/tools.go deleted file mode 100644 index 238cfd3..0000000 --- a/tools.go +++ /dev/null @@ -1,7 +0,0 @@ -// +build tools - -package tools - -import ( - _ "golang.org/x/lint/golint" // executable dependency for development -)