Table of Contents
💡 Feature Requests
Please file an issue to suggest new features. Vote on feature requests by adding a 👍. This helps maintainers prioritize what to work on.
🐛 Bugs
Please file an issue for bugs, missing documentation, or unexpected behavior.
Changelog
Follow the news and releases on our twitter and our blog. There is the most valuable changes log:
v1.52.2
- updated linters
tparallel
: from 0.3.0 to 0.3.1
- misc.
- fix: pre-commit
require_serial
andpass_filenames
- fix: pre-commit
v1.52.1
- misc.
- fix: improve panic management
- fix: the combination of --fix and --path-prefix
v1.52.0
- 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
v1.51.2
- 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
v1.51.1
- 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
v1.51.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
v1.50.1
- 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
v1.50.0
- 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
v1.49.0
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
v1.48.0
- 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
v1.47.3
- 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
v1.47.2
- updated linters:
revive
: ignore slow rules
v1.47.1
- 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
v1.47.0
- 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
v1.46.2
- 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
v1.46.1
- updated linters:
execinquery
: bump from v0.6.0 to v0.6.1
- documentation:
- add missing linters
v1.46.0
- 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
v1.45.2
- misc:
- fix: help command
v1.45.1
- 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)
v1.45.0
- 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
v1.44.2
- 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
v1.44.1
- 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
v1.44.0
- 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
November 2021
- 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
october 2021
- 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
September 2021
- 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
August 2021
- 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
July 2021
- 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
June 2021
- 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
May 2021
- 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
April 2021
- 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
March 2021
- 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
February 2021
- 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
January 2021
- 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
December 2020
- 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
November 2020
- 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
October 2020
- 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)
September 2020
- 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
August 2020
- 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)
July 2020
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
June 2020
- Add new linters:
gofumpt
May 2020
- Add new linters:
nolintlint
,goerr113
- Updated linters:
godot
,staticcheck
- Launch a website
April 2020
- 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
September 2019
- 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
- Fix false-positives in
- Support
--skip-dirs-use-default
- Add support for bash completions
July 2019
- Fix parallel writes race condition
- Update bodyclose with fixed panic
June 2019
- 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.
May 2019
- Add bodyclose linter.
- Support junit-xml output.
April 2019
- 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
March 2019
- 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
Future Plans
- Upstream all changes of forked linters.
- Make it easy to write own linter/checker: it should take a minimum code, have perfect documentation, debugging and testing tooling.
- Speed up SSA loading: on-disk cache and existing code profiling-optimizing.
- Analyze (don't only filter) only new code: analyze only changed files and dependencies, make incremental analysis, caches.
- Smart new issues detector: don't print existing issues on changed lines.
- Minimize false-positives by fixing linters and improving testing tooling.
- Automatic issues fixing (code rewrite, refactoring) where it's possible.
- Documentation for every issue type.