Follow the news and releases on Mastodon and on Twitter.
There is the most valuable changes log:
- Updated linters
contextcheck
: from 1.1.4 to 1.1.5copyloopvar
: from 1.0.8 to 1.0.10ginkgolinter
: from 0.16.1 to 0.16.2goconst
: from 1.7.0 to 1.7.1gomoddirectives
: from 0.2.3 to 0.2.4intrange
: from 0.1.0 to 0.1.1
- Misc.
- fix: display warnings on deprecated linter options
- fix: missing
colored-tab
output format - fix: TeamCity
inspectionType
service message
- Documentation
- Remove invalid example about mixing files and directory
- Improve linters page
- Fixes:
- Ignore issues with invalid position (e.g.
contextcheck
).
- Ignore issues with invalid position (e.g.
- New linters
copyloopvar
: https://github.com/karamaru-alpha/copyloopvarintrange
: https://github.com/ckaznocha/intrange
- Updated linters
dupword
: from 0.0.13 to 0.0.14gci
: from 0.12.1 to 0.12.3ginkgolinter
: from 0.15.2 to 0.16.1 (new optionforce-expect-to
,validate-async-intervals
, andforbid-spec-pollution
)go-critic
: from 0.11.1 to 0.11.2go-critic
: support ofenable-all
anddisable-all
optionsgo-spancheck
: from 0.5.2 to 0.5.3gomodguard
: from 1.3.0 to 1.3.1govet
: deprecation ofcheck-shadowing
⚠️ govet
: disable temporarilyhttpresponse
because of a bug golang/go#66259misspell
: addextra-words
musttag
: from 0.8.0 to 0.9.0nakedret
: from 2.0.2 to 2.0.4paralleltest
: from 1.0.9 to 1.0.10perfsprint
: from 0.6.0 to 0.7.1 (new optionstrconcat
)protogetter
: from 0.3.4 to 0.3.5revive
: addexclude
optionsloglint
: from 0.4.0 to 0.5.0 (new optionno-global
)staticcheck
: from 0.4.6 to 0.4.7testifylint
: from 1.1.2 to 1.2.0 (new optionbool-compare
)unconvert
: to HEAD (new optionsfast-math
andsafe
)wrapcheck
: from 2.8.1 to 2.8.3- Disable
copyloopvar
andintrange
on Go < 1.22
- Enhancements
- 🧩 New custom linters system https://golangci-lint.run/plugins/module-plugins/
- 🎉 Allow running only a specific linter without modifying the file configuration (
--enable-only
) - Allow custom sort order for the reports (
output.sort-order
) - Automatically adjust the maximum concurrency to the container CPU quota if
run.concurrency=0
- Add
verify
command to check the configuration against the JSON Schema - Option to strictly follow Go generated file convention (
issues.exclude-generated-strict
) - Syntax to not override
severity
from linters (@linter
) - Use severities from
gosec
- Create automatically directory related to
output.formats.path
- Use the first issue without inline on
mergeLineIssues
on multiple issues
- Misc.
⚠️ Inactivate deprecated linters (deadcode
,exhaustivestruct
,golint
,ifshort
,interfacer
,maligned
,nosnakecase
,scopelint
,structcheck
,varcheck
)⚠️ Deprecated CLI flags have been removed (deprecated since 2018)⚠️ Moveshow-stats
option fromrun
tooutput
configuration section⚠️ Replacerun.skip-xxx
options byissues.exclude-xxx
options⚠️ Replaceoutput.format
byoutput.formats
with a new file configuration syntax- Internal rewrite of the CLI
- Improve 'no go files to analyze' message
- Use
GOTOOLCHAIN=auto
inside the Docker images
- Documentation
⚠️ Define the linter deprecation cycle https://golangci-lint.run/product/roadmap/#linter-deprecation-cycle- 🎉 Use information from the previous release to create linter pages
- 🎉 Publish JSON schema on https://golangci-lint.run/jsonschema/golangci.jsonschema.json
- Reorganize documentation pages
- Add an explanation about the configuration file inside golangci-lint repository
- Deprecated linters are inactivated, you still need to disable them if you are using
enable-all
. - Deprecated CLI flags (about linter settings and
deadline
) have been removed.
- updated linters
go-critic
: from 0.11.0 to 0.11.1gosec
: from 2.18.2 to 2.19.0testifylint
: from 1.1.1 to 1.1.2usestdlibvars
: from 1.24.0 to 1.25.0wsl
: from 4.2.0 to 4.2.1
- misc.
- Fix missing version in Docker image
- Documentation
- Explain the limitation of
new-from-rev
andnew-from-patch
- Explain the limitation of
- updated linters
errcheck
: from 1.6.3 to 1.7.0govet
: disableloopclosure
with go1.22revive
: from 1.3.6 to 1.3.7testifylint
: from 1.1.0 to 1.1.1
- new linters
spancheck
: https://github.com/jjti/go-spancheck
- updated linters
depguard
: from 2.1.0 to 2.2.0exhaustive
: from 0.11.0 to 0.12.0exhaustruct
: from 3.1.0 to 3.2.0gci
: from 0.11.2 to 0.12.1ginkgolinter
: from 0.14.1 to 0.15.2go-check-sumtype
: from 0.1.3 to 0.1.4go-critic
: from 0.9.0 to 0.11.0go-errorlint
: from 1.4.5 to 1.4.8go-spancheck
: from 0.4.2 to 0.5.2goconst
: from 1.6.0 to 1.7.0godot
: from 1.4.15 to 1.4.16gofumpt
: from 0.5.0 to 0.6.0inamedparam
: from 0.1.2 to 0.1.3ineffassign
: from 0.0.0-20230610083614-0e73809eb601 to 0.1.0ireturn
: from 0.2.2 to 0.3.0misspell
: add mode optionmusttag
: from v0.7.2 to v0.8.0paralleltest
: from 1.0.8 to 1.0.9perfsprint
: from 0.2.0 to 0.6.0protogetter
: from 0.2.3 to 0.3.4revive
: from 1.3.4 to 1.3.6sloglint
: add static-msg optionsloglint
: from 0.1.2 to 0.4.0testifylint
: from 0.2.3 to 1.1.0unparam
: from 20221223090309-7455f1af531d to 20240104100049-c549a3470d14whitespace
: update after moving to theanalysis
packagewsl
: from 3.4.0 to 4.2.0zerologlint
: from 0.1.3 to 0.1.5
- misc.
- 🎉 go1.22 support
- Implement stats per linter with a flag
- Make versioning inside Docker image consistent with binaries
- Parse Go RC version
- Documentation
- Fix
noctx
description - Add missing fields to
.golangci.reference.yml
- Improve
.golangci.reference.yml
defaults typecheck
: improve FAQexhaustruct
: note that struct regular expressions are expected to match the entirepackage/name/structname
wrapcheck
: adjustignoreSigs
to new defaults
- Fix
Important
testifylint
has breaking changes about enabling/disabling checks:
-
If you were using the option
enable
with a filtered list of checks, you should either adddisable-all: true
(1) or usedisable
field (2).# Example (1) testifylint: disable-all: true enable: - bool-compare - compares - empty - error-is-as - error-nil - expected-actual - go-require - float-compare - len - nil-compare - require-error # - suite-dont-use-pkg - suite-extra-assert-call - suite-thelper
# Example (2) testifylint: disable: - suite-dont-use-pkg
- updated linters
ireturn
: from 0.2.1 to 0.2.2ginkgolinter
: from 0.14.0 to 0.14.1
- updated linters
gosec
: from 2.18.1 to 2.18.2
- misc.
revgrep
: from v0.5.0 to v0.5.2 (support git < 2.41.0)- output: convert backslashes to forward slashes for GitHub Action annotations printer
- new linters
gochecksumtype
: https://github.com/alecthomas/go-check-sumtypeinamedparam
: https://github.com/macabu/inamedparamperfsprint
: https://github.com/catenacyber/perfsprintprotogetter
: https://github.com/ghostiam/protogettersloglint
: https://github.com/go-simpler/sloglinttestifylint
: https://github.com/Antonboom/testifylint
- updated linters
bidichk
: from 0.2.4 to 0.2.7decorder
: from 0.4.0 to 0.4.1dupword
: from 0.0.12 to 0.0.13errchkjson
: from 0.3.1 to 0.3.6gci
: from 0.11.0 to 0.11.2ginkgolinter
: from 0.13.5 to 0.14.0go-errorlint
: from 1.4.4 to 1.4.5gocognit
: from 1.0.7 to 1.1.0goconst
: from 1.5.1 to 1.6.0godot
: from 1.4.14 to 1.4.15gofmt
: update to HEADgoimports
: update to HEADgosec
: from 2.17.0 to 2.18.1gosmopolitan
: from 1.2.1 to 1.2.2govet
: addappends
analyzerireturn
: from 0.2.0 to 0.2.1protogetter
: from 0.2.2 to 0.2.3revgrep
: from 745bb2f7c2e6 to v0.5.0revive
: from 1.3.2 to 1.3.4sqlclosecheck
: from 0.4.0 to 0.5.1staticcheck
: from 0.4.5 to 0.4.6tagalign
: from 1.3.2 to 1.3.3unused
: support passing in options
- misc.
- Add a pre-commit hook to check all files
- Documentation
- add source options to exclude-rules docs
gosec
: add G602 to includes/excludes inside .golangci.reference.yml
- updated linters:
errname
: from 0.1.10 to 0.1.12ginkgolinter
: from 0.13.3 to 0.13.5go-errorlint
: from 1.4.3 to 1.4.4godot
: from 1.4.11 to 1.4.14gosec
: from 2.16.0 to 2.17.0musttag
: from 0.7.1 to 0.7.2nilnil
: from 0.1.5 to 0.1.7staticcheck
: from 0.4.3 to 0.4.5usestdlibvars
: from 1.23.0 to 1.24.0govet
: add missingdirective
andslog
passes
- updated linters:
go-critic
: from 0.8.2 to 0.9.0
- misc.
- plugin: temporarily hide warning about using plugins using the old API
- updated linters:
decorder
: from 0.2.3 to 0.4.0dupword
: from 0.0.11 to 0.0.12errorlint
: from 1.4.2 to 1.4.3exhaustruct
: from 2.3.0 to 3.1.0forbidigo
: from 1.5.3 to 1.6.0funlen
: from 0.0.3 to 0.1.0gci
: from 0.10.1 to 0.11.0ginkgolinter
: from 0.12.1 to 0.13.3go-critic
: from 0.8.1 to 0.8.2go-errorlint
: from 1.4.2 to 1.4.3go-exhaustruct
: from 2.3.0 to 3.1.0gocognit
: from 1.0.6 to 1.0.7gocritic
: from 0.8.1 to 0.8.2gofmt
: autofix missing newline at EOFmisspell
: 0.4.0 to 0.4.1musttag
: from 0.7.0 to 0.7.1paralleltest
: from 1.0.7 to 1.0.8tagalign
: from 1.2.2 to 1.3.2typecheck
: explain it and remove it from the linter listzerologlint
: from 0.1.2 to 0.1.3
- misc.
- 🎉 go1.21 support
- plugin: include custom linters in
enable-all
- plugin: allow to use settings for plugins
- Documentation
- Add linter descriptions.
Important
ruleguard
(a "rule" inside gocritic
) was disabled in this release (v1.54.0) and was enabled again in the next release (v1.54.1).
exhaustruct
has breaking changes with regular expressions, more details here.
- updated linters:
cyclop
: from 1.2.0 to 1.2.1exhaustive
: from 0.10.0 to 0.11.0forbidigo
: from 1.5.1 to 1.5.3ginkgolinter
: from 0.12.2 to 0.12.1ineffassign
: bump to HEADnakedret
: from 2.0.1 to 2.0.2zerologlint
: from 0.1.1 to 0.1.2
- misc.
- codeclimate: reduce memory allocation
- support illumos/amd64
- updated linters
depguard
: from v2.0.1 to 2.1.0
- misc.
depguard
: throw error only when the linter is called
- misc.
depguard
: fix GOROOT detectionimportas
: fix duplication detection when aliases use regular expression replacement pattern
- new linters
gosmopolitan
: https://github.com/xen0n/gosmopolitanmirror
: https://github.com/butuzov/mirrortagalign
: https://github.com/4meepo/tagalignzerologlint
: https://github.com/ykadowak/zerologlint
- updated linters
bodyclose
: bump to HEADcontainedctx
: from 1.0.2 to 1.0.3depguard
: migrate to v2errname
: from 0.1.9 to 0.1.10exhaustive
: from 0.9.5 to 0.10.0forbidigo
: better support for configuring complex rulesgci
: improve error messageginkgolinter
: add suppress-async-assertion optionginkgolinter
: from 0.9.0 to 0.12.0go-critic
: from 0.7.0 to 0.8.1go-errorlint
: from 1.4.0 to 1.4.2gofumpt
: from 0.4.0 to 0.5.0gosec
: convert global settings as map with proper key typegosec
: from 2.15.0 to 2.16.0importas
: detect duplicate alias or package in the configurationimportas
: fix typo in logsireturn
: from 0.1.1 to 0.2.0musttag
: from 0.5.0 to 0.7.0nakedret
: to 2.0.1nilnil
: from 0.1.3 to 0.1.5paralleltest
: from 1.0.6 to 1.0.7revive
: from 1.3.1 to 1.3.2tagliatelle
: from 0.4.0 to 0.5.0usestdlibvars
: fix configuration
- misc.
golang.org/x/tools
: from 0.7.0 to 0.9.2- add loongarch64 to the install script
- output: add colored-tab
- remove warning when the config file is explicitly stdin
- rules: support inverted path match
- Documentation
mnd
: clarify ignore usage examples to be regexpstagliatelle
: update documentation- improve features section
- update supported Go versions FAQ
- updated linters
tparallel
: from 0.3.0 to 0.3.1
- misc.
- fix: pre-commit
require_serial
andpass_filenames
- fix: pre-commit
- misc.
- fix: improve panic management
- fix: the combination of --fix and --path-prefix
- updated linters
asciicheck
: from 0.1.1 to 0.2.0bidichk
: from 0.2.3 to 0.2.4contextcheck
: from 1.1.3 to 1.1.4dupword
: from 0.0.9 to 0.0.11durationcheck
: from 0.0.9 to 0.0.10errchkjson
: from 0.3.0 to 0.3.1errname
: from 0.1.7 to 0.1.9forbidigo
: from 1.4.0 to 1.5.1gci
: from 0.9.1 to 0.10.1ginkgolinter
: from 0.8.1 to 0.9.0go-critic
: from 0.6.7 to 0.7.0go-errorlint
: from 1.1.0 to 1.4.0godox
: bump to HEADlll
: skip go commandloggercheck
: from 0.9.3 to 0.9.4musttag
: from 0.4.5 to 0.5.0nilnil
: from 0.1.1 to 0.1.3noctx
: from 0.0.1 to 0.0.2revive
: from 1.2.5 to 1.3.1rowserrcheck
: remove limitation related to generics supportstaticcheck
: from 0.4.2 to 0.4.3testpackage
: from 1.1.0 to 1.1.1tparallel
: from 0.2.1 to 0.3.0wastedassign
: remove limitation related to generics supportwrapcheck
: from 2.8.0 to 2.8.1
- misc.
- Add TeamCity output format
- Consider path prefix when matching path patterns
- Add Go version to version information
- Documentation
- Add Tekton in Trusted By page
- Clarify that custom linters are not enabled by default
- Remove description for deprecated "go" option
- updated linters
forbidigo
: from 1.3.0 to 1.4.0gci
: from 0.9.0 to 0.9.1go-critic
: from 0.6.5 to 0.6.7go-errorlint
: from 1.0.6 to 1.1.0gosec
: from 2.14.0 to 2.15.0musttag
: from 0.4.4 to 0.4.5staticcheck
: from 0.4.0 to 0.4.2tools
: from 0.5.0 to 0.6.0usestdlibvars
: from 1.21.1 to 1.23.0wsl
: from 3.3.0 to 3.4.0govet
: enabletimeformat
by default
- misc.
- fix: cache status size calculation
- add new source archive
- Documentation
- Improve installation section
- Replace links to godoc.org with pkg.go.dev
- updated linters
ginkgolinter
: from 0.7.1 to 0.8.1ineffassign
: bump to HEADmusttag
: from 0.4.3 to 0.4.4sqlclosecheck
: from 0.3.0 to 0.4.0staticcheck
: bump to v0.4.0wastedassign
: from 2.0.6 to 2.0.7wrapcheck
: from 2.7.0 to 2.8.0
- new linters
ginkgolinter
: https://github.com/nunnatsa/ginkgolintermusttag
: https://github.com/tmzane/musttaggocheckcompilerdirectives
: https://github.com/leighmcculloch/gocheckcompilerdirectives
- updated linters
bodyclose
: to HEADdupword
: from 0.0.7 to 0.0.9errcheck
: from 1.6.2 to 1.6.3exhaustive
: from 0.8.3 to 0.9.5exportloopref
: from 0.1.8 to 0.1.11gci
: from 0.8.1 to 0.9.0ginkgolinter
: from 0.6.0 to 0.7.1go-errorlint
: from 1.0.5 to 1.0.6go-ruleguard
: from 0.3.21 to 0.3.22gocheckcompilerdirectives
: from 1.1.0 to 1.2.1gochecknoglobals
: from 0.1.0 to 0.2.1gomodguard
: from 1.2.4 to 1.3.0gosec
: from 2.13.1 to 2.14.0govet
: Addtimeformat
to analysersgrouper
: from 1.1.0 to 1.1.1musttag
: from 0.4.1 to 0.4.3revive
: from 1.2.4 to 1.2.5tagliatelle
: from 0.3.1 to 0.4.0tenv
: from 1.7.0 to 1.7.1unparam
: bump to HEADusestdlibvars
: from 1.20.0 to 1.21.1wsl
: fixforce-err-cuddling
flag
- misc.
- go1.20 support
- remove deprecated linters from presets
- Build NetBSD binaries
- Build loong64 binaries
- Documentation
goimport
: improve documentation for local-prefixesgomnd
: add missing always ignored functionsnolint
: fix typotagliatelle
usage typo- add note about binary requirement for plugin
- cache preserving and colored output on docker runs
- improve documentation about debugging.
- improve Editor Integration section
- More specific default cache directory
- update output example to use valid checkstyle example; add json example
- updated linters
contextcheck
: from 1.1.2 to 1.1.3go-mnd
: from 2.5.0 to 2.5.1wrapcheck
: from 2.6.2 to 2.7.0revive
: fix configuration parsinglll
: skip imports
- misc.
- windows: remove redundant character escape '/'
- code-climate: add default severity
- new linters
dupword
: https://github.com/Abirdcfly/dupwordtestableexamples
: https://github.com/maratori/testableexamples
- updated linters
contextcheck
: change ownercontextcheck
: from 1.0.6 to 1.1.2depguard
: from 1.1.0 to 1.1.1exhaustive
: add missing configexhaustive
: from 0.8.1 to 0.8.3gci
: from 0.6.3 to 0.8.0go-critic
: from 0.6.4 to 0.6.5go-errorlint
: from 1.0.2 to 1.0.5go-reassign
: v0.1.2 to v0.2.0gofmt
: add optionrewrite-rules
gofumpt
from 0.3.1 to 0.4.0goimports
: update to HEADinterfacebloat
: fix configuration loadinglogrlint
: renamelogrlint
tologgercheck
paralleltest
: add tests of the ignore-missing optionrevive
: from 1.2.3 to 1.2.4usestdlibvars
: from 1.13.0 to 1.20.0wsl
: support all configs and update docs
- misc.
- Normalize
exclude-rules
paths for Windows - add riscv64 to the install script
- Normalize
- Documentation
- cli: remove reference to old service
IMPORTANT: varcheck
and deadcode
has been removed of default linters.
- new linters
interfacebloat
: https://github.com/sashamelentyev/interfacebloatlogrlint
: https://github.com/timonwong/logrlintreassign
: https://github.com/curioswitch/go-reassign
- updated linters
go-colorable
: from 0.1.12 to 0.1.13go-critic
: from 0.6.3 to 0.6.4go-errorlint
: from 1.0.0 to 1.0.2go-exhaustruct
: from 2.2.2 to 2.3.0gopsutil
: from 3.22.6 to 3.22.7gosec
: from 2.12.0 to 2.13.1revive
: from 1.2.1 to 1.2.3usestdlibvars
: from 1.8.0 to 1.13.0contextcheck
: from v1.0.4 to v1.0.6 && re-enablenosnakecase
: This linter is deprecated.varcheck
: This linter is deprecated useunused
instead.deadcode
: This linter is deprecated useunused
instead.structcheck
: This linter is deprecated useunused
instead.
- documentation
revive
: fix wrong URL- Add a section about default exclusions
usestdlibvars
: fix typo in documentationnolintlint
: remove allow-leading-space option- Update documentation and assets
- misc.
- dev: rewrite the internal tests framework
- fix: exit early on run --version
- fix: set an explicit
GOROOT
in the Docker image forgo-critic
- new linters
usestdlibvars
:https://github.com/sashamelentyev/usestdlibvars
- updated linters
contextcheck
: disable lintererrcheck
: from 1.6.1 to 1.6.2gci
: add missingcustom-order
settinggci
: from 0.5.0 to 0.6.0ifshort
: deprecate linternolint
: drop allow-leading-space option and add "nolint:all"revgrep
: bump to HEAD
- documentation
- remove outdated info on source install
- misc
- go1.19 support
- updated linters:
- remove some go1.18 limitations
asasalint
: from 0.0.10 to 0.0.11decorder
: from 0.2.2 to v0.2.3gci
: fix panic with invalid configuration optiongci
: from 0.4.3 to v0.5.0go-exhaustruct
: from 2.2.0 to 2.2.2gomodguard
: from 1.2.3 to 1.2.4nosnakecase
: from 1.5.0 to 1.7.0honnef.co/go/tools
: from 0.3.2 to v0.3.3
- misc
- cgo: fix linters ignoring CGo files
- updated linters:
revive
: ignore slow rules
- updated linters:
gci
: from 0.4.2 to 0.4.3gci
: remove the use of stdingci
: fix options displaytenv
: from 1.6.0 to 1.7.0unparam
: bump to HEAD
- new linters:
asasalint
: https://github.com/alingse/asasalintnosnakecase
: https://github.com/sivchari/nosnakecase
- updated linters:
decorder
: from 0.2.1 to 0.2.2errcheck
: from 1.6.0 to 1.6.1errname
: from 0.1.6 to 0.1.7exhaustive
: from 0.7.11 to 0.8.1gci
: fix issues and re-enable autofixgci
: from 0.3.4 to 0.4.2go-exhaustruct
: from 2.1.0 to 2.2.0go-ruleguard
: from 0.3.19 to 0.3.21gocognit
: from 1.0.5 to 1.0.6gocyclo
: from 0.5.1 to 0.6.0golang.org/x/tools
: bump to HEADgosec
: allowglobal
configgosec
: from 2.11.0 to 2.12.0nonamedreturns
: from 1.0.1 to 1.0.4paralleltest
: from 1.0.3 to 1.0.6staticcheck
: fix genericsstaticcheck
: from 0.3.1 to 0.3.2tenv
: from 1.5.0 to 1.6.0testpackage
: from 1.0.1 to 1.1.0thelper
: from 0.6.2 to 0.6.3wrapcheck
: from 2.6.1 to 2.6.2
- documentation:
- add thanks page
- add a clear explanation about the
staticcheck
integration. depguard
: addignore-file-rules
depguard
: adjust phrasinggocritic
: addenable
anddisable
ruleguard settingsgomnd
: fix typogosec
: add configs for all existing rulesgovet
: add settings forshadow
andunusedresult
thelper
: addfuzz
config and description- linters: add defaults
- updated linters:
execinquery
: bump from v1.2.0 to v1.2.1errorlint
: bump to v1.0.0thelper
: allow to disable one option
- documentation:
- rename
.golangci.example.yml
to.golangci.reference.yml
- add
containedctx
linter to the list of available linters
- rename
- updated linters:
execinquery
: bump from v0.6.0 to v0.6.1
- documentation:
- add missing linters
- new linters:
execinquery
: https://github.com/lufeee/execinquerynonamedreturns
: https://github.com/firefart/nonamedreturnsnosprintfhostport
: https://github.com/stbenjam/no-sprintf-host-portexhaustruct
: https://github.com/GaijinEntertainment/go-exhaustruct
- updated linters:
bidichk
: from 0.2.2 to 0.2.3deadcode
: bump to HEADerrchkjson
: from 0.2.3 to 0.3.0errname
: from 0.1.5 to 0.1.6go-critic
: from 0.6.2 to 0.6.3gocyclo
: from 0.4.0 to 0.5.1gofumpt
from 0.3.0 to 0.3.1gomoddirectives
: from 0.2.2 to 0.2.3gosec
: from 2.10.0 to 2.11.0honnef.co/go/tools
: from 0.2.2to 0.3.1 (go1.18 support)nilnil
: from 0.1.0 to 0.1.1nonamedreturns
: bump from 1.0.0 to 1.0.1predeclared
: from 0.2.1 to 0.2.2promlinter
: bump to v0.2.0revive
: from 1.1.4 to 1.2.1tenv
: from 1.4.7 to 1.5.0thelper
: from 0.5.1 to 0.6.2unused
: fix false-positivevarnamelen
: bump to v0.8.0wrapcheck
: from 2.5.0 to 2.6.1exhaustivestruct
: This linter is deprecated useexhaustruct
instead.
- documentation:
- Update "Shell Completion" instruction on Linux
- Update FAQ page
- misc:
- log: enable override coloring based on
CLICOLOR
andCLICOLOR_FORCE
- log: enable override coloring based on
- misc:
- fix: help command
- updated linters:
interfacer
: inactivate with go1.18govet
: inactivate unsupported analyzers (go1.18)depguard
: reduce requirementsstructcheck
: inactivate with go1.18varnamelen
: bump from v0.6.0 to v0.6.1
- misc:
- Automatic Go version detection 🎉 (go1.18)
- docker: update base images (go1.18)
- updated linters:
cobra
: from 1.3.0 to 1.4.0containedctx
: from 1.0.1 to 1.0.2errcheck
: add an option to remove default exclusionsgci
: from 0.3.1 to 0.3.2go-header
: from 0.4.2 to 0.4.3gofumpt
: add module-path settinggofumpt
: from 0.2.1 to 0.3.0gopsutil
: from 3.22.1 to 3.22.2gosec
: from 2.9.6 to 2.10.0makezero
: from 1.1.0 to 1.1.1revive
: fix default valueswrapcheck
: from 2.4.0 to 2.5.0
- documentation:
- docs: add "back to the top" button
- docs: add
forbidigo
example that uses comments - docs: improve linters page
- misc:
- go1.18 support 🎉
- Add an option to manage the targeted version of Go
- Default to YAML when config file has no extension
- updated linters:
gci
: bump to HEADgci
: restore defaults for sectionswhitespace
: from 0.0.4 to 0.0.5
- documentation:
- add link to configuration in the linters list
- updated linters:
bidichk
: from 0.2.1 to 0.2.2errchkjson
: from 0.2.1 to 0.2.3thelper
: from 0.5.0 to 0.5.1tagliatelle
: from 0.3.0 to 0.3.1gopsutil
: from 3.21.12 to 3.22.1gci
: from 0.2.9 to 0.3.0revive
: from v1.1.3 to v1.1.4varnamelen
: from v0.5.0 to v0.6.0
- documentation:
- linters: improve configuration pages
decorder
: fixdisable-init-func-first-check: false
elaboration
- misc:
- fix debug output
- new linters:
containedctx
: https://github.com/sivchari/containedctxdecorder
: https://gitlab.com/bosi/decordererrchkjson
: https://github.com/breml/errchkjsonmaintidx
: https://github.com/yagipy/maintidxgrouper
: https://github.com/leonklingele/grouper
- updated linters:
asciicheck
: bump to v0.1.1bidichk
: from 0.1.1 to 0.2.1bodyclose
: bump to HEADdecorder
: from 0.2.0 to 0.2.1depguard
: from 1.0.1 to 1.1.0errchkjson
: from 0.2.0 to 0.2.1errorlint
: bump to HEADexhaustive
: drop deprecated/unused settingsexhaustive
: from v0.2.3 to 0.7.11forbidigo
: from 1.2.0 to 1.3.0forcetypeassert
: bump to v0.1.0gocritic
: from 0.6.1 to 0.6.2gocritic
: support autofixgocyclo
: from 0.3.1 to 0.4.0godot
: add period optiongofumpt
: from 0.1.1 to 0.2.1gomnd
: from 2.4.0 to 2.5.0gomnd
: new configurationgosec
: from 2.9.1 to 2.9.6ifshort
: from 1.0.3 to 1.0.4ineffassign
: bump to HEADmakezero
: to v1.1.0promlinter
: from v0.1.0 to HEADrevive
: fixenableAllRules
revive
: from 1.1.2 to 1.1.3staticcheck
: from 0.2.1 to 0.2.2tagliatelle
: from 0.2.0 to 0.3.0thelper
: from 0.4.0 to 0.5.0unparam
: bump to HEADvarnamelen
: bump to v0.5.0wrapcheck
: update configuration to includeignoreSignRegexps
- documentation:
- linters: improve pages about configuration
- improve page about false-positive
nolintlint
: fix wrong default value in commentrevive
: add a more detailed configuration
- misc:
- outputs: Add support for multiple outputs
- outputs: Print error text in
<failure>
tag content for more readable JUnit output - outputs: ensure that the Issues key in JSON format is a list
- Return error if any linter fails to run
- cli: Show deprecated mark in the CLI linters help
- new linters:
bidichk
: https://github.com/breml/bidichk
- update linters:
nestif
: from 0.3.0 to 0.3.1rowserrcheck
: from 1.1.0 to 1.1.1gopsutil
: from 3.21.9 to 3.21.10wrapcheck
: from 2.3.1 to 2.4.0gocritic
: add support for variable substitution inruleguard
path settings
- documentation:
- improve
go-critic
documentation - improve
nolintlint
documentation
- improve
- Misc:
- cli: don't hide
enable-all
option
- cli: don't hide
- new linters:
contextcheck
: https://github.com/kkHAIKE/contextcheckvarnamelen
: https://github.com/blizzy78/varnamelen
- update linters:
gochecknoglobals
: to v0.1.0gosec
: filter issues according to the severity and confidenceerrcheck
: empty selector name.ifshort
: from 1.0.2 to 1.0.3go-critic
: from 0.5.6 to 0.6.0gosec
: from 2.8.1 to 2.9.1durationcheck
: from 0.0.8 to 0.0.9wrapcheck
: from 2.3.0 to 2.3.1revive
: from 1.1.1 to 1.1.2
- new linters:
- update linters:
errcheck
: update to HEADerrname
: from 0.1.4 to 0.1.5gci
: Parse the settings more similarly to the CLIgodot
: from 1.4.9 to 1.4.11ireturn
: from 0.1.0 to 0.1.1nlreturn
: add block-size optionparalleltest
: from 1.0.2 to 1.0.3
- Misc:
- new-from-rev: add support for finding issues in entire files in a diff
- new linters:
errname
: https://github.com/Antonboom/errname
- update linters:
errname
: from 0.1.3 to 0.1.4go-critic
: fix invalid type conversions.godot
: from 1.4.8 to 1.4.9gomodguard
: from 1.2.2 to 1.2.3revive
: from 1.0.9 to 1.1.1staticcheck
: bump to 2021.1.1 (v0.2.1)wrapcheck
: bump to v2.3.0
- Misc:
- build binaries and Docker images with go1.17
- update linters:
errcheck
: allow exclude config without extra fileexhaustive
: from 0.1.0 to 0.2.3gocognit
: from 1.0.1 to 1.0.5godot
: from 1.4.7 to 1.4.8gomoddirectives
: from 0.2.1 to 0.2.2revive
: from 1.0.8 to 1.0.9
- documentation:
- improve
goconst
documentation - improve
goimports
description
- improve
- update linters:
durationcheck
: from 0.0.7 to 0.0.8gci
: from 0.2.8 to 0.2.9goconst
: from 0.5.6 to 0.5.7gofumpt
: Add lang-version optiongomodguard
: from 1.2.1 to 1.2.2gosec
: from 2.8.0 to 2.8.1revive
: add enable-all-rules.revive
: allow to disable rulerevive
: fix exclude comment rule for const blockrevive
: from 1.0.7 to 1.0.8wrapcheck
: from 2.1.0 to 2.2.0
- documentation:
- add all integrations to docs introduction page
- Misc:
- 🎉 Un-deprecate enable-all option
- output: generate HTML report
- Support RISV64
- new linters:
tagliatelle
: https://github.com/ldez/tagliatellepromlinter
: https://github.com/yeya24/promlinter
- update linters:
durationcheck
: from 0.0.6 to 0.0.7errorlint
: bump to HEADforbidigo
: from 1.1.0 to 1.2.0go-critic
: from 0.5.5 to 0.5.6godot
: from 1.4.6 to 1.4.7- ⚠
golint
: deprecated gomnd
: from 2.3.2 to 2.4.0gomodguard
: fix problem where duplicate issues were reportedgosec
: from 2.7.0 to 2.8.0govet
: fixsigchanyzer
govet
: Update vet passesimportas
: allow repeated aliasesimportas
: bump to HEADmakezero
: bump to HEADnolintlint
: fix false positiverevive
: convert hard coded excludes into default exclude patternsrevive
: fix add-constant rule supportrevive
: fix excludesrevive
: from 1.0.6 to 1.0.7revive
: improve 'exported' rule outputrowserrcheck
: bump to v1.1.0staticcheck
: configuration forstaticcheck
,gosimple
,stylecheck
staticcheck
: from 0.1.3 to 0.1.4staticcheck
: from v0.1.4 to v0.2.0wastedassign
: from 0.2.0 to 1.0.0wastedassign
: from 1.0.0 to v2.0.6wrapcheck
: from 1.2.0 to 2.1.0
- documentation:
- improve linters page
exhaustivestruct
example explanation- fix pattern of
forbidigo
in example config yaml - bump documentation dependencies
- fix typos
- Misc:
- set the minimum Go version to go1.15
- non-zero exit code when a linter produces a panic
- new linters:
tagliatelle
: https://github.com/ldez/tagliatellepromlinter
: https://github.com/yeya24/promlinter
- update linters:
godot
: from 1.4.4 to 1.4.6wrapcheck
: from 1.0.0 to 1.2.0go-mnd
: from 2.3.1 to 2.3.2wsl
: from 3.2.0 to 3.3.0revive
: from 1.0.5 to 1.0.6importas
: bump to HEADstaticcheck
: configurable Go versiongosec
: add configurationtypecheck
: improve error stack parsing
- documentation:
- bump documentation dependencies
- fix typos
- Misc:
- fix: comma in exclude pattern leads to unexpected results
- new linters:
gomoddirectives
: https://github.com/ldez/gomoddirectives
- update linters:
go-critic
: from 0.5.4 to 0.5.5gofumpt
: from v0.1.0 to v0.1.1gosec
: from 2.6.1 to 2.7.0ifshort
: bump to v1.0.2importas
: bump to HEADmakezero
: bump to HEADnolintlint
: allow to fix //nolint linesrevive
: from 1.0.3 to 1.0.5revive
: the default configuration is only applied when no dedicated configurationrowserrcheck
: bump to HEAD- ⚠
scopelint
: deprecated staticcheck
: from v0.1.2 (2020.2.2) to v0.1.3 (2020.2.3)- 🎉
typecheck
: display compilation errors as report instead of error wastedassign
: bump to v0.2.0wrapcheck
: bump to v1.0.0
- documentation:
- improve linters page (versions, deprecation, and presets)
- add cache directory information
- adding missing format options
- fix typos
- Misc:
- Set
version
command output to Stdout - fix linters load mode
- Restore fast linters meaning
- Set
- new linters:
durationcheck
: https://github.com/charithe/durationcheckrevive
: https://github.com/mgechev/revivecyclop
: https://github.com/bkielbasa/cyclopwastedassign
: https://github.com/sanposhiho/wastedassignimportas
: https://github.com/julz/importasnilerr
: https://github.com/gostaticanalysis/nilerrforcetypeassert
: https://github.com/gostaticanalysis/forcetypeassertgovet
: addstringintconv
andifaceassert
- update linters:
prealloc
: Use upstream versionerrcheck
: Use upstream versionineffassign
: Use upstream versiongocyclo
: Use upstream versiongodot
from 1.3.2 to 1.4.3exhaustivestruct
from 1.1.0 to 1.2.0forbidigo
from 1.0.0 to 1.1.0thelper
from 0.2.1 to 0.3.1ruleguard
: print error message and exit with non-zero status when parsing error occurs- fix wrong load mode for
asciicheck
,exhaustivestruct
,exportloopref
, andmakezero
wsl
: bump to v3.2.0durationcheck
: from 0.0.4 to 0.0.6staticcheck
: from 2020.1.6 to v0.1.2 (2020.2.2)thelper
from 0.3.1 to 0.4.0bodyclose
: bump to HEADgo-err113
: bump to HEAD- ⚠
interfacer
: deprecated - ⚠
maligned
: deprecated (govetfieldalignment
as replacement) govet
: use same default linter as go vetgo-printf-func-name
: tov0.0.0-20200119135958-7558a9eaa5af
godox
: tov0.0.0-20210227103229-6504466cf951
asciicheck
: tov0.0.0-20200416200610-e657995f937b
wrapcheck
: tov0.0.0-20201130113247-1683564d9756
unparam
: tov0.0.0-20210104141923-aac4ce9116a7
- CLI: truncate multiline descriptions
- fix: new-from-rev for a large repository
- Support RelatedInformation for analysis Diagnostic
- use go1.16 to create binaries
- fix: MIPS release
- documentation:
- bump documentation dependencies
- fix
go-header
usage - improve
gocritic
description - update deprecated hyperlink for Sublime Text plugin
- add docs on using homebrew tap
- new linters:
predeclared
: https://github.com/nishanths/predeclaredifshort
: https://github.com/esimonov/ifshort
- update linters:
go-critic
from 0.5.2 to 0.5.3thelper
from 0.1.0 to 0.2.1- Validate
go-critic
settings gofumpt
to v0.1.0gci
to v0.2.8go-mnd
to v2.3.1gosec
from 2.5.0 to 2.6.1godot
from 1.3.2 to 1.4.3ifshort
to v1.0.1rowserrcheck
: fix reports false positive
- fix: modules-download-mode support
- documentation:
- bump documentation dependencies
- new linters:
forbidigo
: https://github.com/ashanbrown/forbidigomakezero
: https://github.com/ashanbrown/makezerothelper
: https://github.com/kulti/thelper
- update linters:
go-header
from v0.3.1 to v0.4.2go-mnd
from v2.0.0 to v2.2.0godot
from v1.3.0 to v1.3.2gci
from v0.2.4 to v0.2.7gomodguard
from v1.1.0 to v1.2.0go-errorlint
from v0.0.0-20201006195004-351e25ade6e3 to v0.0.0-20201127212506-19bd8db6546fgofumpt
from v0.0.0-20200802201014-ab5a8192947d to v0.0.0-20201129102820-5c11c50e9475nolintlint
fix comment analysis. (#1571)
- result/processors: treat all non-Go source as special autogenerated files
- throw an error on panic. (#1540)
- resolve custom linters' path relative to config file directory (#1572)
- treat all non-Go source as special autogenerated files
- documentation:
- add settings examples for
gocritic
(#1562) - removing reference to no-longer-existing linter-in-the-cloud (#1553)
- add settings examples for
- others:
- bump
gopkg.in/yaml.v2
from 2.3.0 to 2.4.0 (#1528) - bump
gatsby-remark-responsive-iframe
in /docs (#1533) - bump
gatsby-remark-images
from 3.3.29 to 3.6.0 in /docs (#1531) - bump
ini
from 1.3.5 to 1.3.8 in /tools (#1560) - bump
react-headroom
from 3.0.0 to 3.0.1 in /docs (#1532) - bump
react-live
from 2.2.2 to 2.2.3 in /docs (#1534) - bump
react
from 16.13.1 to 16.14.0 in /docs (#1481) - Fix
forbidigo
linter name in reports (#1590)
- bump
- new linters:
paralleltest
: https://github.com/kunwardeep/paralleltest
- update linters:
godot
from v0.4.9 to v1.3.0exportloopref
from v0.1.7 to v0.1.8gosec
from 2.4.0 to 2.5.0goconst
using upstream https://github.com/jgautheron/goconst
DefaultExcludePatterns
should only be used for specified linter (#1494)- unknown linter breaks //nolint (#1497)
- report all unknown linters at once (#1477)
- CI:
- fix Docker tag for Alpine build
- documentation:
- missing sort-results in the docs (#1514)
- add description of Homebrew's official formula (#1421)
- others:
- bump
golang.org/x/text
to v0.3.4 (#1293) - bump
github.com/fatih/color
to from 1.9.0 to 1.10.0 (#1485) - bump
lodash
from 4.17.15 to 4.17.19 in /.github/peril (#1252) - bump
polished
from 3.6.6 to 4.0.3 in /docs (#1482) - bump
gatsby-alias-imports
from 1.0.4 to 1.0.6 in /docs (#1479) - bump
puppeteer
from 5.3.1 to 5.4.1 in /docs (#1480) - bump
gatsby-remark-embedder
from 3.0.0 to 4.0.0 in /docs (#1478)
- bump
- new linters:
exhaustivestruct
: https://github.com/mbilski/exhaustivestructgo-errorlint
: https://github.com/polyfloyd/go-errorlinttparallel
: https://github.com/moricho/tparallelwrapcheck
: https://github.com/tomarrell/wrapcheck
- update linters:
honnef.co/go/tools
from 2020.1.5 to 2020.1.6exhaustivestruct
from v1.0.1 to v1.1.0exhaustive
to v0.1.0gochecknoglobals
: use https://github.com/leighmcculloch/gochecknoglobals
- add support for powershell completion (#1408)
- add
.golangci.yaml
to list of configuration files searched on startup (#1364) - support for only specifying default severity (#1396)
- documentation:
- mention macports installation procedure on macOS (#1352)
- sort linters (#1451)
- CI:
- add codeQL scanning (#1405)
- fix version details in Docker image (#1471)
- releasing docker image for arm64 (#1383)
- change interval for npm to monthly (#1424)
- others:
- use tag version for cobra (#1458)
- bump
nancy
to 1.0.1 (#1410) - bump
gatsby-plugin-catch-links
in /docs (#1415) - bump
gatsby-plugin-mdx
from 1.2.40 to 1.2.43 in /docs (#1419) - bump
gatsby-plugin-sharp
from 2.6.31 to 2.6.40 in /docs (#1423) - bump
gatsby-plugin-sitemap
from 2.4.12 to 2.4.14 in /docs (#1417) - bump
github.com/mattn/go-colorable
from 0.1.7 to 0.1.8 (#1413) - bump
github.com/sirupsen/logrus
from 1.6.0 to 1.7.0 (#1412) - bump
github.com/sourcegraph/go-diff
from 0.6.0 to 0.6.1 (#1414) - bump
golangci/golangci-lint-action
from v2 to v2.3.0 (#1447) (#1469) - bump
puppeteer
from 3.3.0 to 5.3.1 in /docs (#1418)
- update linters:
godot
from 0.4.8 to 0.4.9exhaustive
from v0.0.0-20200708172631-8866003e3856 to v0.0.0-20200811152831-6cf413ae40e0gofumpt
from v0.0.0-20200709182408-4fd085cb6d5f to v0.0.0-20200802201014-ab5a8192947d
- add support for fish completion (#1201)
- documentation:
- fix typo in performance docs (#1350)
- CI:
- prevent macos to be marked as passing upon failure (#1381)
- check only for go.mod file (#1397)
- check if go.mod and go.sum are up to dated (#1377)
- trigger Netlify (#1358)
- others:
- bump
github.com/sourcegraph/go-diff
from 0.5.3 to 0.6.0 (#1353) - bump
github.com/valyala/quicktemplate
from 1.6.2 to 1.6.3 (#1385) - ignore known dependency failure in nancy (#1378)
- bump
@mdx-js/mdx
from 1.6.16 to 1.6.18 in /docs (#1401) - bump
gatsby
from 2.24.52 to 2.24.65 in /docs (#1400) - bump
gatsby-plugin-canonical-urls
in /docs (#1390) - bump
gatsby-plugin-google-analytics
in /docs (#1388) - bump
gatsby-plugin-manifest
from 2.4.23 to 2.4.27 in /docs (#1355) - bump
gatsby-plugin-mdx
from 1.2.35 to 1.2.40 in /docs (#1386) - bump
gatsby-plugin-offline
from 3.2.23 to 3.2.27 in /docs (#1368) - bump
gatsby-plugin-sharp
from 2.6.25 to 2.6.31 in /docs (#1354) - bump
gatsby-plugin-sitemap
from 2.4.11 to 2.4.12 in /docs (#1344) - bump
gatsby-remark-autolink-headers
in /docs (#1387) - bump
gatsby-remark-images
from 3.3.25 to 3.3.28 in /docs (#1345) - bump
gatsby-remark-images
from 3.3.28 to 3.3.29 in /docs (#1365) - bump
gatsby-remark-mermaid
from 2.0.0 to 2.1.0 in /docs (#1369) - bump
gatsby-source-filesystem
in /docs (#1366) - bump
gatsby-source-filesystem
in /docs (#1389) - bump
gatsby-transformer-sharp
in /docs (#1402) - bump
gatsby-transformer-yaml
from 2.4.10 to 2.4.11 in /docs (#1367) - bump
node-fetch
in /.github/contributors (#1363) - bump
polished
from 3.6.5 to 3.6.6 in /docs (#1347)
- bump
- new
nlreturn
linter: https://github.com/ssgreg/nlreturn - new
gci
linter: https://github.com/daixiang0/gci - support
latest
version of golangci-lint in golangci-lint-action - update
gosec
linter from 2.3.0 to 2.4.0 - update
godot
linter from 0.4.2 to 0.4.8 - update
go-critic
from 0.5.0 to 0.5.2 (#1307) - update
nlreturn
from 2.0.1 to 2.0.2 (#1287), 2.0.2 to 2.1.0 (#1327) - update
gci
to v0.2.1 (#1292), to v0.2.2 (#1305), to v0.2.4 (#1337), - update
funlen
from 0.0.2 to 0.0.3 (#1341) - upgrade to golang 1.15 for smaller binary (#1303)
- support short and json formats for version cmd (#1315)
- add home directory to config file search paths (#1325)
- allow for serializing multiple golangci-lint invocations (#1302)
gofumpt
linter:- update linter
- add
extra-rules
option - support auto-fixing
- upgrade
exhaustive
linter - upgrade
exportloopref
linter - improve 'no such linter' error message
- sorting result.Issues implementation
- enhancements in CI:
- Run
nancy
validation for all dependencies - Move dependabot config to
.github
folder
- Run
- other
- bump
lodash
from 4.17.15 to 4.17.19 in /tools - bump
golangci/golangci-lint-action
from v1.2.2 to v2 - bump
github.com/valyala/quicktemplate
from 1.5.0 to 1.5.1
- bump
- Add new linters:
gofumpt
- Add new linters:
nolintlint
,goerr113
- Updated linters:
godot
,staticcheck
- Launch a website
- Add new linters:
testpackage
,nestif
,godot
,gomodguard
,asciicheck
- Add GitHub Actions output format
- Update linters:
wsl
,gomodguard
,gosec
- Support
disabled-tags
setting forgocritic
- Mitigate OOM and "failed prerequisites"
- Self-isolate due to unexpected pandemics
- Support case-sensitive excludes
- Allow granular re-enabling excludes by ID, e.g.
EXC0002
- Support go1.13
- Add new linters:
funlen
,whitespace
(with auto-fix) andgodox
- Update linters:
gochecknoglobals
,scopelint
,gosec
- Provide pre-built binary for ARM and FreeBSD
- Fix false-positives in
unused
- Support
--skip-dirs-use-default
- Add support for bash completions
- Fix parallel writes race condition
- Update bodyclose with fixed panic
- Treat Go source files as a plain text by
misspell
: it allows detecting issues in strings, variable names, etc. - Implement richer and more stable auto-fix of
misspell
issues.
- Add bodyclose linter.
- Support junit-xml output.
- Update go-critic, new checkers were added: badCall, dupImports, evalOrder, newDeref
- Fix staticcheck panic on packages that do not compile
- Make install script work on Windows
- Fix compatibility with the latest x/tools version and update golang.org/x/tools
- Correct import path of module sourcegraph/go-diff
- Fix
max-issues-per-linter
name - Fix linting of preprocessed files (e.g.
*.qtpl.go
, goyacc) - Enable auto-fixing when running via pre-commit
- Support the newest
go vet
(withgo/analysis
) - Support configuration of
go vet
: e.g. you can set print functions bylinters-settings.govet.settings.printf.funcs
- Update megacheck (staticcheck) to 2019.1.1
- Add information about controlling space-time trade-off into README
- Exclude issues by source code line regexp by
issues.exclude-rules[i].source
- Build and test on go 1.12
- Support
--color
option - Update x/tools to fix c++ issues
- Include support for log level
- Sort linters list in help commands