Follow the news and releases on [Mastodon](https://fosstodon.org/@golangcilint) and on [Twitter](https://twitter.com/golangci). There is the most valuable changes log: ### v1.57.2 1. Updated linters * `contextcheck`: from 1.1.4 to 1.1.5 * `copyloopvar`: from 1.0.8 to 1.0.10 * `ginkgolinter`: from 0.16.1 to 0.16.2 * `goconst`: from 1.7.0 to 1.7.1 * `gomoddirectives`: from 0.2.3 to 0.2.4 * `intrange`: from 0.1.0 to 0.1.1 2. Misc. * fix: display warnings on deprecated linter options * fix: missing `colored-tab` output format * fix: TeamCity `inspectionType` service message 3. Documentation * Remove invalid example about mixing files and directory * Improve linters page ### v1.57.1 1. Fixes: * Ignore issues with invalid position (e.g. `contextcheck`). ### v1.57.0 1. New linters * `copyloopvar`: https://github.com/karamaru-alpha/copyloopvar * `intrange`: https://github.com/ckaznocha/intrange 2. Updated linters * `dupword`: from 0.0.13 to 0.0.14 * `gci`: from 0.12.1 to 0.12.3 * `ginkgolinter`: from 0.15.2 to 0.16.1 (new option `force-expect-to`, `validate-async-intervals`, and `forbid-spec-pollution`) * `go-critic`: from 0.11.1 to 0.11.2 * `go-critic`: support of `enable-all` and `disable-all` options * `go-spancheck`: from 0.5.2 to 0.5.3 * `gomodguard`: from 1.3.0 to 1.3.1 * `govet`: deprecation of `check-shadowing` ⚠️ * `govet`: disable temporarily `httpresponse` because of a bug https://github.com/golang/go/issues/66259 * `misspell`: add `extra-words` * `musttag`: from 0.8.0 to 0.9.0 * `nakedret`: from 2.0.2 to 2.0.4 * `paralleltest`: from 1.0.9 to 1.0.10 * `perfsprint`: from 0.6.0 to 0.7.1 (new option `strconcat`) * `protogetter`: from 0.3.4 to 0.3.5 * `revive`: add `exclude` option * `sloglint`: from 0.4.0 to 0.5.0 (new option `no-global`) * `staticcheck`: from 0.4.6 to 0.4.7 * `testifylint`: from 1.1.2 to 1.2.0 (new option `bool-compare`) * `unconvert`: to HEAD (new options `fast-math` and `safe`) * `wrapcheck`: from 2.8.1 to 2.8.3 * Disable `copyloopvar` and `intrange` on Go < 1.22 3. 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 4. Misc. * ⚠️ Inactivate deprecated linters (`deadcode`, `exhaustivestruct`, `golint`, `ifshort`, `interfacer`, `maligned`, `nosnakecase`, `scopelint`, `structcheck`, `varcheck`) * ⚠️ Deprecated CLI flags have been removed (deprecated since 2018) * ⚠️ Move `show-stats` option from `run` to `output` configuration section * ⚠️ Replace `run.skip-xxx` options by `issues.exclude-xxx` options * ⚠️ Replace `output.format` by `output.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 5. 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 **⚠️ Important ⚠️** 1. Deprecated linters are inactivated, you still need to disable them if you are using `enable-all`. 2. Deprecated CLI flags (about linter settings and `deadline`) have been removed. ### v1.56.2 1. updated linters * `go-critic`: from 0.11.0 to 0.11.1 * `gosec`: from 2.18.2 to 2.19.0 * `testifylint`: from 1.1.1 to 1.1.2 * `usestdlibvars`: from 1.24.0 to 1.25.0 * `wsl`: from 4.2.0 to 4.2.1 2. misc. * Fix missing version in Docker image 3. Documentation * Explain the limitation of `new-from-rev` and `new-from-patch` ### v1.56.1 1. updated linters * `errcheck`: from 1.6.3 to 1.7.0 * `govet`: disable `loopclosure` with go1.22 * `revive`: from 1.3.6 to 1.3.7 * `testifylint`: from 1.1.0 to 1.1.1 ### v1.56.0 1. new linters * `spancheck`: https://github.com/jjti/go-spancheck 2. updated linters * `depguard`: from 2.1.0 to 2.2.0 * `exhaustive`: from 0.11.0 to 0.12.0 * `exhaustruct`: from 3.1.0 to 3.2.0 * `gci`: from 0.11.2 to 0.12.1 * `ginkgolinter`: from 0.14.1 to 0.15.2 * `go-check-sumtype`: from 0.1.3 to 0.1.4 * `go-critic`: from 0.9.0 to 0.11.0 * `go-errorlint`: from 1.4.5 to 1.4.8 * `go-spancheck`: from 0.4.2 to 0.5.2 * `goconst`: from 1.6.0 to 1.7.0 * `godot`: from 1.4.15 to 1.4.16 * `gofumpt`: from 0.5.0 to 0.6.0 * `inamedparam`: from 0.1.2 to 0.1.3 * `ineffassign`: from 0.0.0-20230610083614-0e73809eb601 to 0.1.0 * `ireturn`: from 0.2.2 to 0.3.0 * `misspell`: add mode option * `musttag`: from v0.7.2 to v0.8.0 * `paralleltest`: from 1.0.8 to 1.0.9 * `perfsprint`: from 0.2.0 to 0.6.0 * `protogetter`: from 0.2.3 to 0.3.4 * `revive`: from 1.3.4 to 1.3.6 * `sloglint`: add static-msg option * `sloglint`: from 0.1.2 to 0.4.0 * `testifylint`: from 0.2.3 to 1.1.0 * `unparam`: from 20221223090309-7455f1af531d to 20240104100049-c549a3470d14 * `whitespace`: update after moving to the `analysis` package * `wsl`: from 3.4.0 to 4.2.0 * `zerologlint`: from 0.1.3 to 0.1.5 3. misc. * 🎉 go1.22 support * Implement stats per linter with a flag * Make versioning inside Docker image consistent with binaries * Parse Go RC version 4. Documentation * Fix `noctx` description * Add missing fields to `.golangci.reference.yml` * Improve `.golangci.reference.yml` defaults * `typecheck`: improve FAQ * `exhaustruct`: note that struct regular expressions are expected to match the entire `package/name/structname` * `wrapcheck`: adjust `ignoreSigs` to new defaults **Important** `testifylint` has [breaking changes](https://github.com/Antonboom/testifylint/releases/tag/v1.0.0) about enabling/disabling checks: - If you were using the option `enable` with a filtered list of checks, you should either add `disable-all: true` (1) or use `disable` field (2). ```yml # 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 ``` ```yml # Example (2) testifylint: disable: - suite-dont-use-pkg ``` ### v1.55.2 1. updated linters * `ireturn`: from 0.2.1 to 0.2.2 * `ginkgolinter`: from 0.14.0 to 0.14.1 ### v1.55.1 1. updated linters * `gosec`: from 2.18.1 to 2.18.2 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 ### v1.55.0 1. new linters * `gochecksumtype`: https://github.com/alecthomas/go-check-sumtype * `inamedparam`: https://github.com/macabu/inamedparam * `perfsprint`: https://github.com/catenacyber/perfsprint * `protogetter`: https://github.com/ghostiam/protogetter * `sloglint`: https://github.com/go-simpler/sloglint * `testifylint`: https://github.com/Antonboom/testifylint 2. updated linters * `bidichk`: from 0.2.4 to 0.2.7 * `decorder`: from 0.4.0 to 0.4.1 * `dupword`: from 0.0.12 to 0.0.13 * `errchkjson`: from 0.3.1 to 0.3.6 * `gci`: from 0.11.0 to 0.11.2 * `ginkgolinter`: from 0.13.5 to 0.14.0 * `go-errorlint`: from 1.4.4 to 1.4.5 * `gocognit`: from 1.0.7 to 1.1.0 * `goconst`: from 1.5.1 to 1.6.0 * `godot`: from 1.4.14 to 1.4.15 * `gofmt`: update to HEAD * `goimports`: update to HEAD * `gosec`: from 2.17.0 to 2.18.1 * `gosmopolitan`: from 1.2.1 to 1.2.2 * `govet`: add `appends` analyzer * `ireturn`: from 0.2.0 to 0.2.1 * `protogetter`: from 0.2.2 to 0.2.3 * `revgrep`: from 745bb2f7c2e6 to v0.5.0 * `revive`: from 1.3.2 to 1.3.4 * `sqlclosecheck`: from 0.4.0 to 0.5.1 * `staticcheck`: from 0.4.5 to 0.4.6 * `tagalign`: from 1.3.2 to 1.3.3 * `unused`: support passing in options 3. misc. * Add a pre-commit hook to check all files 4. Documentation * add source options to exclude-rules docs * `gosec`: add G602 to includes/excludes inside .golangci.reference.yml ### v1.54.2 1. updated linters: * `errname`: from 0.1.10 to 0.1.12 * `ginkgolinter`: from 0.13.3 to 0.13.5 * `go-errorlint`: from 1.4.3 to 1.4.4 * `godot`: from 1.4.11 to 1.4.14 * `gosec`: from 2.16.0 to 2.17.0 * `musttag`: from 0.7.1 to 0.7.2 * `nilnil`: from 0.1.5 to 0.1.7 * `staticcheck`: from 0.4.3 to 0.4.5 * `usestdlibvars`: from 1.23.0 to 1.24.0 * `govet`: add missing `directive` and `slog` passes ### v1.54.1 1. updated linters: * `go-critic`: from 0.8.2 to 0.9.0 2. misc. * plugin: temporarily hide warning about using plugins using the old API ### v1.54.0 1. updated linters: * `decorder`: from 0.2.3 to 0.4.0 * `dupword`: from 0.0.11 to 0.0.12 * `errorlint`: from 1.4.2 to 1.4.3 * `exhaustruct`: from 2.3.0 to 3.1.0 * `forbidigo`: from 1.5.3 to 1.6.0 * `funlen`: from 0.0.3 to 0.1.0 * `gci`: from 0.10.1 to 0.11.0 * `ginkgolinter`: from 0.12.1 to 0.13.3 * `go-critic`: from 0.8.1 to 0.8.2 * `go-errorlint`: from 1.4.2 to 1.4.3 * `go-exhaustruct`: from 2.3.0 to 3.1.0 * `gocognit`: from 1.0.6 to 1.0.7 * `gocritic`: from 0.8.1 to 0.8.2 * `gofmt`: autofix missing newline at EOF * `misspell`: 0.4.0 to 0.4.1 * `musttag`: from 0.7.0 to 0.7.1 * `paralleltest`: from 1.0.7 to 1.0.8 * `tagalign`: from 1.2.2 to 1.3.2 * `typecheck`: explain it and remove it from the linter list * `zerologlint`: from 0.1.2 to 0.1.3 2. misc. * 🎉 go1.21 support * plugin: include custom linters in `enable-all` * plugin: allow to use settings for plugins 3. 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](https://github.com/GaijinEntertainment/go-exhaustruct/releases/tag/v3.0.0). ### v1.53.3 1. updated linters: * `cyclop`: from 1.2.0 to 1.2.1 * `exhaustive`: from 0.10.0 to 0.11.0 * `forbidigo`: from 1.5.1 to 1.5.3 * `ginkgolinter`: from 0.12.2 to 0.12.1 * `ineffassign`: bump to HEAD * `nakedret`: from 2.0.1 to 2.0.2 * `zerologlint`: from 0.1.1 to 0.1.2 2. misc. * codeclimate: reduce memory allocation * support illumos/amd64 ### v1.53.2 1. updated linters * `depguard`: from v2.0.1 to 2.1.0 2. misc. * `depguard`: throw error only when the linter is called ### v1.53.1 1. misc. * `depguard`: fix GOROOT detection * `importas`: fix duplication detection when aliases use regular expression replacement pattern ### v1.53.0 1. new linters * `gosmopolitan`: https://github.com/xen0n/gosmopolitan * `mirror`: https://github.com/butuzov/mirror * `tagalign`: https://github.com/4meepo/tagalign * `zerologlint`: https://github.com/ykadowak/zerologlint 2. updated linters * `bodyclose`: bump to HEAD * `containedctx`: from 1.0.2 to 1.0.3 * `depguard`: migrate to v2 * `errname`: from 0.1.9 to 0.1.10 * `exhaustive`: from 0.9.5 to 0.10.0 * `forbidigo`: better support for configuring complex rules * `gci`: improve error message * `ginkgolinter`: add suppress-async-assertion option * `ginkgolinter`: from 0.9.0 to 0.12.0 * `go-critic`: from 0.7.0 to 0.8.1 * `go-errorlint`: from 1.4.0 to 1.4.2 * `gofumpt`: from 0.4.0 to 0.5.0 * `gosec`: convert global settings as map with proper key type * `gosec`: from 2.15.0 to 2.16.0 * `importas`: detect duplicate alias or package in the configuration * `importas`: fix typo in logs * `ireturn`: from 0.1.1 to 0.2.0 * `musttag`: from 0.5.0 to 0.7.0 * `nakedret`: to 2.0.1 * `nilnil`: from 0.1.3 to 0.1.5 * `paralleltest`: from 1.0.6 to 1.0.7 * `revive`: from 1.3.1 to 1.3.2 * `tagliatelle`: from 0.4.0 to 0.5.0 * `usestdlibvars`: fix configuration 3. 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 4. Documentation * `mnd`: clarify ignore usage examples to be regexps * `tagliatelle`: update documentation * improve features section * update supported Go versions FAQ ### v1.52.2 1. updated linters * `tparallel`: from 0.3.0 to 0.3.1 2. misc. * fix: pre-commit `require_serial` and `pass_filenames` ### v1.52.1 1. misc. * fix: improve panic management * fix: the combination of --fix and --path-prefix ### v1.52.0 1. updated linters * `asciicheck`: from 0.1.1 to 0.2.0 * `bidichk`: from 0.2.3 to 0.2.4 * `contextcheck`: from 1.1.3 to 1.1.4 * `dupword`: from 0.0.9 to 0.0.11 * `durationcheck`: from 0.0.9 to 0.0.10 * `errchkjson`: from 0.3.0 to 0.3.1 * `errname`: from 0.1.7 to 0.1.9 * `forbidigo`: from 1.4.0 to 1.5.1 * `gci`: from 0.9.1 to 0.10.1 * `ginkgolinter`: from 0.8.1 to 0.9.0 * `go-critic`: from 0.6.7 to 0.7.0 * `go-errorlint`: from 1.1.0 to 1.4.0 * `godox`: bump to HEAD * `lll`: skip go command * `loggercheck`: from 0.9.3 to 0.9.4 * `musttag`: from 0.4.5 to 0.5.0 * `nilnil`: from 0.1.1 to 0.1.3 * `noctx`: from 0.0.1 to 0.0.2 * `revive`: from 1.2.5 to 1.3.1 * `rowserrcheck`: remove limitation related to generics support * `staticcheck`: from 0.4.2 to 0.4.3 * `testpackage`: from 1.1.0 to 1.1.1 * `tparallel`: from 0.2.1 to 0.3.0 * `wastedassign`: remove limitation related to generics support * `wrapcheck`: from 2.8.0 to 2.8.1 2. misc. * Add TeamCity output format * Consider path prefix when matching path patterns * Add Go version to version information 3. 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 1. updated linters * `forbidigo`: from 1.3.0 to 1.4.0 * `gci`: from 0.9.0 to 0.9.1 * `go-critic`: from 0.6.5 to 0.6.7 * `go-errorlint`: from 1.0.6 to 1.1.0 * `gosec`: from 2.14.0 to 2.15.0 * `musttag`: from 0.4.4 to 0.4.5 * `staticcheck`: from 0.4.0 to 0.4.2 * `tools`: from 0.5.0 to 0.6.0 * `usestdlibvars`: from 1.21.1 to 1.23.0 * `wsl`: from 3.3.0 to 3.4.0 * `govet`: enable `timeformat` by default 2. misc. * fix: cache status size calculation * add new source archive 3. Documentation * Improve installation section * Replace links to godoc.org with pkg.go.dev ### v1.51.1 1. updated linters * `ginkgolinter`: from 0.7.1 to 0.8.1 * `ineffassign`: bump to HEAD * `musttag`: from 0.4.3 to 0.4.4 * `sqlclosecheck`: from 0.3.0 to 0.4.0 * `staticcheck`: bump to v0.4.0 * `wastedassign`: from 2.0.6 to 2.0.7 * `wrapcheck`: from 2.7.0 to 2.8.0 ### v1.51.0 1. new linters * `ginkgolinter`: https://github.com/nunnatsa/ginkgolinter * `musttag`: https://github.com/tmzane/musttag * `gocheckcompilerdirectives`: https://github.com/leighmcculloch/gocheckcompilerdirectives 2. updated linters * `bodyclose`: to HEAD * `dupword`: from 0.0.7 to 0.0.9 * `errcheck`: from 1.6.2 to 1.6.3 * `exhaustive`: from 0.8.3 to 0.9.5 * `exportloopref`: from 0.1.8 to 0.1.11 * `gci`: from 0.8.1 to 0.9.0 * `ginkgolinter`: from 0.6.0 to 0.7.1 * `go-errorlint`: from 1.0.5 to 1.0.6 * `go-ruleguard`: from 0.3.21 to 0.3.22 * `gocheckcompilerdirectives`: from 1.1.0 to 1.2.1 * `gochecknoglobals`: from 0.1.0 to 0.2.1 * `gomodguard`: from 1.2.4 to 1.3.0 * `gosec`: from 2.13.1 to 2.14.0 * `govet`: Add `timeformat` to analysers * `grouper`: from 1.1.0 to 1.1.1 * `musttag`: from 0.4.1 to 0.4.3 * `revive`: from 1.2.4 to 1.2.5 * `tagliatelle`: from 0.3.1 to 0.4.0 * `tenv`: from 1.7.0 to 1.7.1 * `unparam`: bump to HEAD * `usestdlibvars`: from 1.20.0 to 1.21.1 * `wsl`: fix `force-err-cuddling` flag 3. misc. * go1.20 support * remove deprecated linters from presets * Build NetBSD binaries * Build loong64 binaries 4. Documentation * `goimport`: improve documentation for local-prefixes * `gomnd`: add missing always ignored functions * `nolint`: fix typo * `tagliatelle` 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 1. updated linters * `contextcheck`: from 1.1.2 to 1.1.3 * `go-mnd`: from 2.5.0 to 2.5.1 * `wrapcheck`: from 2.6.2 to 2.7.0 * `revive`: fix configuration parsing * `lll`: skip imports 2. misc. * windows: remove redundant character escape '\/' * code-climate: add default severity ### v1.50.0 1. new linters * `dupword`: https://github.com/Abirdcfly/dupword * `testableexamples`: https://github.com/maratori/testableexamples 2. updated linters * `contextcheck`: change owner * `contextcheck`: from 1.0.6 to 1.1.2 * `depguard`: from 1.1.0 to 1.1.1 * `exhaustive`: add missing config * `exhaustive`: from 0.8.1 to 0.8.3 * `gci`: from 0.6.3 to 0.8.0 * `go-critic`: from 0.6.4 to 0.6.5 * `go-errorlint`: from 1.0.2 to 1.0.5 * `go-reassign`: v0.1.2 to v0.2.0 * `gofmt`: add option `rewrite-rules` * `gofumpt` from 0.3.1 to 0.4.0 * `goimports`: update to HEAD * `interfacebloat`: fix configuration loading * `logrlint`: rename `logrlint` to `loggercheck` * `paralleltest`: add tests of the ignore-missing option * `revive`: from 1.2.3 to 1.2.4 * `usestdlibvars`: from 1.13.0 to 1.20.0 * `wsl`: support all configs and update docs 3. misc. * Normalize `exclude-rules` paths for Windows * add riscv64 to the install script 4. Documentation * cli: remove reference to old service ### v1.49.0 IMPORTANT: `varcheck` and `deadcode` has been removed of default linters. 1. new linters * `interfacebloat`: https://github.com/sashamelentyev/interfacebloat * `logrlint`: https://github.com/timonwong/logrlint * `reassign`: https://github.com/curioswitch/go-reassign 2. updated linters * `go-colorable`: from 0.1.12 to 0.1.13 * `go-critic`: from 0.6.3 to 0.6.4 * `go-errorlint`: from 1.0.0 to 1.0.2 * `go-exhaustruct`: from 2.2.2 to 2.3.0 * `gopsutil`: from 3.22.6 to 3.22.7 * `gosec`: from 2.12.0 to 2.13.1 * `revive`: from 1.2.1 to 1.2.3 * `usestdlibvars`: from 1.8.0 to 1.13.0 * `contextcheck`: from v1.0.4 to v1.0.6 && re-enable * `nosnakecase`: This linter is deprecated. * `varcheck`: This linter is deprecated use `unused` instead. * `deadcode`: This linter is deprecated use `unused` instead. * `structcheck`: This linter is deprecated use `unused` instead. 3. documentation * `revive`: fix wrong URL * Add a section about default exclusions * `usestdlibvars`: fix typo in documentation * `nolintlint`: remove allow-leading-space option * Update documentation and assets 4. misc. * dev: rewrite the internal tests framework * fix: exit early on run --version * fix: set an explicit `GOROOT` in the Docker image for `go-critic` ### v1.48.0 1. new linters * `usestdlibvars`:https://github.com/sashamelentyev/usestdlibvars 2. updated linters * `contextcheck`: disable linter * `errcheck`: from 1.6.1 to 1.6.2 * `gci`: add missing `custom-order` setting * `gci`: from 0.5.0 to 0.6.0 * `ifshort`: deprecate linter * `nolint`: drop allow-leading-space option and add "nolint:all" * `revgrep`: bump to HEAD 3. documentation * remove outdated info on source install 4. misc * go1.19 support ### v1.47.3 1. updated linters: * remove some go1.18 limitations * `asasalint`: from 0.0.10 to 0.0.11 * `decorder`: from 0.2.2 to v0.2.3 * `gci`: fix panic with invalid configuration option * `gci`: from 0.4.3 to v0.5.0 * `go-exhaustruct`: from 2.2.0 to 2.2.2 * `gomodguard`: from 1.2.3 to 1.2.4 * `nosnakecase`: from 1.5.0 to 1.7.0 * `honnef.co/go/tools`: from 0.3.2 to v0.3.3 2. misc * cgo: fix linters ignoring CGo files ### v1.47.2 1. updated linters: * `revive`: ignore slow rules ### v1.47.1 1. updated linters: * `gci`: from 0.4.2 to 0.4.3 * `gci`: remove the use of stdin * `gci`: fix options display * `tenv`: from 1.6.0 to 1.7.0 * `unparam`: bump to HEAD ### v1.47.0 1. new linters: * `asasalint`: https://github.com/alingse/asasalint * `nosnakecase`: https://github.com/sivchari/nosnakecase 2. updated linters: * `decorder`: from 0.2.1 to 0.2.2 * `errcheck`: from 1.6.0 to 1.6.1 * `errname`: from 0.1.6 to 0.1.7 * `exhaustive`: from 0.7.11 to 0.8.1 * `gci`: fix issues and re-enable autofix * `gci`: from 0.3.4 to 0.4.2 * `go-exhaustruct`: from 2.1.0 to 2.2.0 * `go-ruleguard`: from 0.3.19 to 0.3.21 * `gocognit`: from 1.0.5 to 1.0.6 * `gocyclo`: from 0.5.1 to 0.6.0 * `golang.org/x/tools`: bump to HEAD * `gosec`: allow `global` config * `gosec`: from 2.11.0 to 2.12.0 * `nonamedreturns`: from 1.0.1 to 1.0.4 * `paralleltest`: from 1.0.3 to 1.0.6 * `staticcheck`: fix generics * `staticcheck`: from 0.3.1 to 0.3.2 * `tenv`: from 1.5.0 to 1.6.0 * `testpackage`: from 1.0.1 to 1.1.0 * `thelper`: from 0.6.2 to 0.6.3 * `wrapcheck`: from 2.6.1 to 2.6.2 3. documentation: * add thanks page * add a clear explanation about the `staticcheck` integration. * `depguard`: add `ignore-file-rules` * `depguard`: adjust phrasing * `gocritic`: add `enable` and `disable` ruleguard settings * `gomnd`: fix typo * `gosec`: add configs for all existing rules * `govet`: add settings for `shadow` and `unusedresult` * `thelper`: add `fuzz` config and description * linters: add defaults ### v1.46.2 1. updated linters: * `execinquery`: bump from v1.2.0 to v1.2.1 * `errorlint`: bump to v1.0.0 * `thelper`: allow to disable one option 2. documentation: * rename `.golangci.example.yml` to `.golangci.reference.yml` * add `containedctx` linter to the list of available linters ### v1.46.1 1. updated linters: * `execinquery`: bump from v0.6.0 to v0.6.1 2. documentation: * add missing linters ### v1.46.0 1. new linters: * `execinquery`: https://github.com/lufeee/execinquery * `nonamedreturns`: https://github.com/firefart/nonamedreturns * `nosprintfhostport`: https://github.com/stbenjam/no-sprintf-host-port * `exhaustruct`: https://github.com/GaijinEntertainment/go-exhaustruct 2. updated linters: * `bidichk`: from 0.2.2 to 0.2.3 * `deadcode`: bump to HEAD * `errchkjson`: from 0.2.3 to 0.3.0 * `errname`: from 0.1.5 to 0.1.6 * `go-critic`: from 0.6.2 to 0.6.3 * `gocyclo`: from 0.4.0 to 0.5.1 * `gofumpt` from 0.3.0 to 0.3.1 * `gomoddirectives`: from 0.2.2 to 0.2.3 * `gosec`: from 2.10.0 to 2.11.0 * `honnef.co/go/tools`: from 0.2.2to 0.3.1 (go1.18 support) * `nilnil`: from 0.1.0 to 0.1.1 * `nonamedreturns`: bump from 1.0.0 to 1.0.1 * `predeclared`: from 0.2.1 to 0.2.2 * `promlinter`: bump to v0.2.0 * `revive`: from 1.1.4 to 1.2.1 * `tenv`: from 1.4.7 to 1.5.0 * `thelper`: from 0.5.1 to 0.6.2 * `unused`: fix false-positive * `varnamelen`: bump to v0.8.0 * `wrapcheck`: from 2.5.0 to 2.6.1 * `exhaustivestruct`: This linter is deprecated use `exhaustruct` instead. 3. documentation: * Update "Shell Completion" instruction on Linux * Update FAQ page 4. misc: * log: enable override coloring based on `CLICOLOR` and `CLICOLOR_FORCE` ### v1.45.2 1. misc: * fix: help command ### v1.45.1 1. updated linters: * `interfacer`: inactivate with go1.18 * `govet`: inactivate unsupported analyzers (go1.18) * `depguard`: reduce requirements * `structcheck`: inactivate with go1.18 * `varnamelen`: bump from v0.6.0 to v0.6.1 2. misc: * Automatic Go version detection 🎉 (go1.18) * docker: update base images (go1.18) ### v1.45.0 1. updated linters: * `cobra`: from 1.3.0 to 1.4.0 * `containedctx`: from 1.0.1 to 1.0.2 * `errcheck`: add an option to remove default exclusions * `gci`: from 0.3.1 to 0.3.2 * `go-header`: from 0.4.2 to 0.4.3 * `gofumpt`: add module-path setting * `gofumpt`: from 0.2.1 to 0.3.0 * `gopsutil`: from 3.22.1 to 3.22.2 * `gosec`: from 2.9.6 to 2.10.0 * `makezero`: from 1.1.0 to 1.1.1 * `revive`: fix default values * `wrapcheck`: from 2.4.0 to 2.5.0 2. documentation: * docs: add "back to the top" button * docs: add `forbidigo` example that uses comments * docs: improve linters page 3. 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 1. updated linters: * `gci`: bump to HEAD * `gci`: restore defaults for sections * `whitespace`: from 0.0.4 to 0.0.5 2. documentation: * add link to configuration in the linters list ### v1.44.1 1. updated linters: * `bidichk`: from 0.2.1 to 0.2.2 * `errchkjson`: from 0.2.1 to 0.2.3 * `thelper`: from 0.5.0 to 0.5.1 * `tagliatelle`: from 0.3.0 to 0.3.1 * `gopsutil`: from 3.21.12 to 3.22.1 * `gci`: from 0.2.9 to 0.3.0 * `revive`: from v1.1.3 to v1.1.4 * `varnamelen`: from v0.5.0 to v0.6.0 2. documentation: * linters: improve configuration pages * `decorder`: fix `disable-init-func-first-check: false` elaboration 3. misc: * fix debug output ### v1.44.0 1. new linters: * `containedctx`: https://github.com/sivchari/containedctx * `decorder`: https://gitlab.com/bosi/decorder * `errchkjson`: https://github.com/breml/errchkjson * `maintidx`: https://github.com/yagipy/maintidx * `grouper`: https://github.com/leonklingele/grouper 2. updated linters: * `asciicheck`: bump to v0.1.1 * `bidichk`: from 0.1.1 to 0.2.1 * `bodyclose`: bump to HEAD * `decorder`: from 0.2.0 to 0.2.1 * `depguard`: from 1.0.1 to 1.1.0 * `errchkjson`: from 0.2.0 to 0.2.1 * `errorlint`: bump to HEAD * `exhaustive`: drop deprecated/unused settings * `exhaustive`: from v0.2.3 to 0.7.11 * `forbidigo`: from 1.2.0 to 1.3.0 * `forcetypeassert`: bump to v0.1.0 * `gocritic`: from 0.6.1 to 0.6.2 * `gocritic`: support autofix * `gocyclo`: from 0.3.1 to 0.4.0 * `godot`: add period option * `gofumpt`: from 0.1.1 to 0.2.1 * `gomnd`: from 2.4.0 to 2.5.0 * `gomnd`: new configuration * `gosec`: from 2.9.1 to 2.9.6 * `ifshort`: from 1.0.3 to 1.0.4 * `ineffassign`: bump to HEAD * `makezero`: to v1.1.0 * `promlinter`: from v0.1.0 to HEAD * `revive`: fix `enableAllRules` * `revive`: from 1.1.2 to 1.1.3 * `staticcheck`: from 0.2.1 to 0.2.2 * `tagliatelle`: from 0.2.0 to 0.3.0 * `thelper`: from 0.4.0 to 0.5.0 * `unparam`: bump to HEAD * `varnamelen`: bump to v0.5.0 * `wrapcheck`: update configuration to include `ignoreSignRegexps` 3. documentation: * linters: improve pages about configuration * improve page about false-positive * `nolintlint`: fix wrong default value in comment * `revive`: add a more detailed configuration 4. misc: * outputs: Add support for multiple outputs * outputs: Print error text in `` 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 1. new linters: * `bidichk`: https://github.com/breml/bidichk 2. update linters: * `nestif`: from 0.3.0 to 0.3.1 * `rowserrcheck`: from 1.1.0 to 1.1.1 * `gopsutil`: from 3.21.9 to 3.21.10 * `wrapcheck`: from 2.3.1 to 2.4.0 * `gocritic`: add support for variable substitution in `ruleguard` path settings 3. documentation: * improve `go-critic` documentation * improve `nolintlint` documentation 4. Misc: * cli: don't hide `enable-all` option ### october 2021 1. new linters: * `contextcheck`: https://github.com/kkHAIKE/contextcheck * `varnamelen`: https://github.com/blizzy78/varnamelen 2. update linters: * `gochecknoglobals`: to v0.1.0 * `gosec`: filter issues according to the severity and confidence * `errcheck`: empty selector name. * `ifshort`: from 1.0.2 to 1.0.3 * `go-critic`: from 0.5.6 to 0.6.0 * `gosec`: from 2.8.1 to 2.9.1 * `durationcheck`: from 0.0.8 to 0.0.9 * `wrapcheck`: from 2.3.0 to 2.3.1 * `revive`: from 1.1.1 to 1.1.2 ### September 2021 1. new linters: * `ireturn`: https://github.com/butuzov/ireturn * `nilnil`: https://github.com/Antonboom/nilnil * `tenv`: https://github.com/sivchari/tenv 2. update linters: * `errcheck`: update to HEAD * `errname`: from 0.1.4 to 0.1.5 * `gci`: Parse the settings more similarly to the CLI * `godot`: from 1.4.9 to 1.4.11 * `ireturn`: from 0.1.0 to 0.1.1 * `nlreturn`: add block-size option * `paralleltest`: from 1.0.2 to 1.0.3 3. Misc: * new-from-rev: add support for finding issues in entire files in a diff ### August 2021 1. new linters: * `errname`: https://github.com/Antonboom/errname 2. update linters: * `errname`: from 0.1.3 to 0.1.4 * `go-critic`: fix invalid type conversions. * `godot`: from 1.4.8 to 1.4.9 * `gomodguard`: from 1.2.2 to 1.2.3 * `revive`: from 1.0.9 to 1.1.1 * `staticcheck`: bump to 2021.1.1 (v0.2.1) * `wrapcheck`: bump to v2.3.0 3. Misc: * build binaries and Docker images with go1.17 ### July 2021 1. update linters: * `errcheck`: allow exclude config without extra file * `exhaustive`: from 0.1.0 to 0.2.3 * `gocognit`: from 1.0.1 to 1.0.5 * `godot`: from 1.4.7 to 1.4.8 * `gomoddirectives`: from 0.2.1 to 0.2.2 * `revive`: from 1.0.8 to 1.0.9 2. documentation: * improve `goconst` documentation * improve `goimports` description ### June 2021 1. update linters: * `durationcheck`: from 0.0.7 to 0.0.8 * `gci`: from 0.2.8 to 0.2.9 * `goconst`: from 0.5.6 to 0.5.7 * `gofumpt`: Add lang-version option * `gomodguard`: from 1.2.1 to 1.2.2 * `gosec`: from 2.8.0 to 2.8.1 * `revive`: add enable-all-rules. * `revive`: allow to disable rule * `revive`: fix exclude comment rule for const block * `revive`: from 1.0.7 to 1.0.8 * `wrapcheck`: from 2.1.0 to 2.2.0 2. documentation: * add all integrations to docs introduction page 3. Misc: * 🎉 Un-deprecate enable-all option * output: generate HTML report * Support RISV64 ### May 2021 1. new linters: * `tagliatelle`: https://github.com/ldez/tagliatelle * `promlinter`: https://github.com/yeya24/promlinter 2. update linters: * `durationcheck`: from 0.0.6 to 0.0.7 * `errorlint`: bump to HEAD * `forbidigo`: from 1.1.0 to 1.2.0 * `go-critic`: from 0.5.5 to 0.5.6 * `godot`: from 1.4.6 to 1.4.7 * ⚠ `golint`: deprecated * `gomnd`: from 2.3.2 to 2.4.0 * `gomodguard`: fix problem where duplicate issues were reported * `gosec`: from 2.7.0 to 2.8.0 * `govet`: fix `sigchanyzer` * `govet`: Update vet passes * `importas`: allow repeated aliases * `importas`: bump to HEAD * `makezero`: bump to HEAD * `nolintlint`: fix false positive * `revive`: convert hard coded excludes into default exclude patterns * `revive`: fix add-constant rule support * `revive`: fix excludes * `revive`: from 1.0.6 to 1.0.7 * `revive`: improve 'exported' rule output * `rowserrcheck`: bump to v1.1.0 * `staticcheck`: configuration for `staticcheck`, `gosimple`, `stylecheck` * `staticcheck`: from 0.1.3 to 0.1.4 * `staticcheck`: from v0.1.4 to v0.2.0 * `wastedassign`: from 0.2.0 to 1.0.0 * `wastedassign`: from 1.0.0 to v2.0.6 * `wrapcheck`: from 1.2.0 to 2.1.0 3. documentation: * improve linters page * `exhaustivestruct` example explanation * fix pattern of `forbidigo` in example config yaml * bump documentation dependencies * fix typos 4. Misc: * set the minimum Go version to go1.15 * non-zero exit code when a linter produces a panic ### April 2021 1. new linters: * `tagliatelle`: https://github.com/ldez/tagliatelle * `promlinter`: https://github.com/yeya24/promlinter 2. update linters: * `godot`: from 1.4.4 to 1.4.6 * `wrapcheck`: from 1.0.0 to 1.2.0 * `go-mnd`: from 2.3.1 to 2.3.2 * `wsl`: from 3.2.0 to 3.3.0 * `revive`: from 1.0.5 to 1.0.6 * `importas`: bump to HEAD * `staticcheck`: configurable Go version * `gosec`: add configuration * `typecheck`: improve error stack parsing 3. documentation: * bump documentation dependencies * fix typos 4. Misc: * fix: comma in exclude pattern leads to unexpected results ### March 2021 1. new linters: * `gomoddirectives`: https://github.com/ldez/gomoddirectives 2. update linters: * `go-critic`: from 0.5.4 to 0.5.5 * `gofumpt`: from v0.1.0 to v0.1.1 * `gosec`: from 2.6.1 to 2.7.0 * `ifshort`: bump to v1.0.2 * `importas`: bump to HEAD * `makezero`: bump to HEAD * `nolintlint`: allow to fix //nolint lines * `revive`: from 1.0.3 to 1.0.5 * `revive`: the default configuration is only applied when no dedicated configuration * `rowserrcheck`: 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.0 * `wrapcheck`: bump to v1.0.0 3. documentation: * improve [linters page](https://golangci-lint.run/usage/linters/) (versions, deprecation, and presets) * add [cache directory](https://golangci-lint.run/usage/configuration/#cache) information * adding missing format options * fix typos 4. Misc: * Set `version` command output to Stdout * fix linters load mode * Restore fast linters meaning ### February 2021 1. new linters: * `durationcheck`: https://github.com/charithe/durationcheck * `revive`: https://github.com/mgechev/revive * `cyclop`: https://github.com/bkielbasa/cyclop * `wastedassign`: https://github.com/sanposhiho/wastedassign * `importas`: https://github.com/julz/importas * `nilerr`: https://github.com/gostaticanalysis/nilerr * `forcetypeassert`: https://github.com/gostaticanalysis/forcetypeassert * `govet`: add `stringintconv` and `ifaceassert` 2. update linters: * `prealloc`: Use upstream version * `errcheck`: Use upstream version * `ineffassign`: Use upstream version * `gocyclo`: Use upstream version * `godot` from 1.3.2 to 1.4.3 * `exhaustivestruct` from 1.1.0 to 1.2.0 * `forbidigo` from 1.0.0 to 1.1.0 * `thelper` from 0.2.1 to 0.3.1 * `ruleguard`: print error message and exit with non-zero status when parsing error occurs * fix wrong load mode for `asciicheck`, `exhaustivestruct`, `exportloopref`, and `makezero` * `wsl`: bump to v3.2.0 * `durationcheck`: from 0.0.4 to 0.0.6 * `staticcheck`: from 2020.1.6 to v0.1.2 (2020.2.2) * `thelper` from 0.3.1 to 0.4.0 * `bodyclose`: bump to HEAD * `go-err113`: bump to HEAD * ⚠ `interfacer`: deprecated * ⚠ `maligned`: deprecated (govet `fieldalignment` as replacement) * `govet`: use same default linter as go vet * `go-printf-func-name`: to `v0.0.0-20200119135958-7558a9eaa5af` * `godox`: to `v0.0.0-20210227103229-6504466cf951` * `asciicheck`: to `v0.0.0-20200416200610-e657995f937b` * `wrapcheck`: to `v0.0.0-20201130113247-1683564d9756` * `unparam`: to `v0.0.0-20210104141923-aac4ce9116a7` 3. CLI: truncate multiline descriptions 4. fix: new-from-rev for a large repository 5. Support RelatedInformation for analysis Diagnostic 6. use go1.16 to create binaries 7. fix: MIPS release 8. 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 1. new linters: * `predeclared`: https://github.com/nishanths/predeclared * `ifshort`: https://github.com/esimonov/ifshort 2. update linters: * `go-critic` from 0.5.2 to 0.5.3 * `thelper` from 0.1.0 to 0.2.1 * Validate `go-critic` settings * `gofumpt` to v0.1.0 * `gci` to v0.2.8 * `go-mnd` to v2.3.1 * `gosec` from 2.5.0 to 2.6.1 * `godot` from 1.3.2 to 1.4.3 * `ifshort` to v1.0.1 * `rowserrcheck`: fix reports false positive 3. fix: modules-download-mode support 4. documentation: * bump documentation dependencies ### December 2020 1. new linters: * `forbidigo`: https://github.com/ashanbrown/forbidigo * `makezero`: https://github.com/ashanbrown/makezero * `thelper`: https://github.com/kulti/thelper 2. update linters: * `go-header` from v0.3.1 to v0.4.2 * `go-mnd` from v2.0.0 to v2.2.0 * `godot` from v1.3.0 to v1.3.2 * `gci` from v0.2.4 to v0.2.7 * `gomodguard` from v1.1.0 to v1.2.0 * `go-errorlint` from v0.0.0-20201006195004-351e25ade6e3 to v0.0.0-20201127212506-19bd8db6546f * `gofumpt` from v0.0.0-20200802201014-ab5a8192947d to v0.0.0-20201129102820-5c11c50e9475 * `nolintlint` fix comment analysis. (#1571) 3. result/processors: treat all non-Go source as special autogenerated files 4. throw an error on panic. (#1540) 5. resolve custom linters' path relative to config file directory (#1572) 6. treat all non-Go source as special autogenerated files 7. documentation: * add settings examples for `gocritic` (#1562) * removing reference to no-longer-existing linter-in-the-cloud (#1553) 8. 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) ### November 2020 1. new linters: * `paralleltest`: https://github.com/kunwardeep/paralleltest 2. update linters: * `godot` from v0.4.9 to v1.3.0 * `exportloopref` from v0.1.7 to v0.1.8 * `gosec` from 2.4.0 to 2.5.0 * `goconst` using upstream https://github.com/jgautheron/goconst 3. `DefaultExcludePatterns` should only be used for specified linter (#1494) 4. unknown linter breaks //nolint (#1497) 5. report all unknown linters at once (#1477) 6. CI: * fix Docker tag for Alpine build 7. documentation: * missing sort-results in the docs (#1514) * add description of Homebrew's official formula (#1421) 8. 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) ### October 2020 1. new linters: * `exhaustivestruct`: https://github.com/mbilski/exhaustivestruct * `go-errorlint`: https://github.com/polyfloyd/go-errorlint * `tparallel`: https://github.com/moricho/tparallel * `wrapcheck`: https://github.com/tomarrell/wrapcheck 2. update linters: * `honnef.co/go/tools` from 2020.1.5 to 2020.1.6 * `exhaustivestruct` from v1.0.1 to v1.1.0 * `exhaustive` to v0.1.0 * `gochecknoglobals`: use https://github.com/leighmcculloch/gochecknoglobals 3. add support for powershell completion (#1408) 4. add `.golangci.yaml` to list of configuration files searched on startup (#1364) 5. support for only specifying default severity (#1396) 6. documentation: * mention macports installation procedure on macOS (#1352) * sort linters (#1451) 7. 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) 8. 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 1. update linters: * `godot` from 0.4.8 to 0.4.9 * `exhaustive` from v0.0.0-20200708172631-8866003e3856 to v0.0.0-20200811152831-6cf413ae40e0 * `gofumpt` from v0.0.0-20200709182408-4fd085cb6d5f to v0.0.0-20200802201014-ab5a8192947d 2. add support for fish completion (#1201) 3. documentation: * fix typo in performance docs (#1350) 4. 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) 5. 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) ### August 2020 1. new `nlreturn` linter: https://github.com/ssgreg/nlreturn 2. new `gci` linter: https://github.com/daixiang0/gci 3. support `latest` version of golangci-lint in golangci-lint-action 4. update `gosec` linter from 2.3.0 to 2.4.0 5. update `godot` linter from 0.4.2 to 0.4.8 6. update `go-critic` from 0.5.0 to 0.5.2 (#1307) 7. update `nlreturn` from 2.0.1 to 2.0.2 (#1287), 2.0.2 to 2.1.0 (#1327) 8. update `gci` to v0.2.1 (#1292), to v0.2.2 (#1305), to v0.2.4 (#1337), 9. update `funlen` from 0.0.2 to 0.0.3 (#1341) 10. upgrade to golang 1.15 for smaller binary (#1303) 11. support short and json formats for version cmd (#1315) 12. add home directory to config file search paths (#1325) 13. allow for serializing multiple golangci-lint invocations (#1302) ### July 2020 1. `gofumpt` linter: * update linter * add `extra-rules` option * support auto-fixing 2. upgrade `exhaustive` linter 3. upgrade `exportloopref` linter 4. improve 'no such linter' error message 5. sorting result.Issues implementation 6. enhancements in CI: * Run `nancy` validation for all dependencies * Move dependabot config to `.github` folder 7. 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 ### June 2020 1. Add new linters: `gofumpt` ### May 2020 1. Add new linters: `nolintlint`, `goerr113` 2. Updated linters: `godot`, `staticcheck` 3. Launch a [website](https://golangci-lint.run) ### April 2020 1. Add new linters: `testpackage`, `nestif`, `godot`, `gomodguard`, `asciicheck` 2. Add GitHub Actions output format 3. Update linters: `wsl`, `gomodguard`, `gosec` 4. Support `disabled-tags` setting for `gocritic` 5. Mitigate OOM and "failed prerequisites" 6. Self-isolate due to unexpected pandemics 7. Support case-sensitive excludes 8. Allow granular re-enabling excludes by ID, e.g. `EXC0002` ### September 2019 1. Support go1.13 2. Add new linters: `funlen`, `whitespace` (with auto-fix) and `godox` 3. Update linters: `gochecknoglobals`, `scopelint`, `gosec` 4. Provide pre-built binary for ARM and FreeBSD 5. Fix false-positives in `unused` 6. Support `--skip-dirs-use-default` 7. Add support for bash completions ### July 2019 1. Fix parallel writes race condition 2. Update bodyclose with fixed panic ### June 2019 1. Treat Go source files as a plain text by `misspell`: it allows detecting issues in strings, variable names, etc. 2. Implement richer and more stable auto-fix of `misspell` issues. ### May 2019 1. Add [bodyclose](https://github.com/timakin/bodyclose) linter. 2. Support junit-xml output. ### April 2019 1. Update go-critic, new checkers were added: badCall, dupImports, evalOrder, newDeref 2. Fix staticcheck panic on packages that do not compile 3. Make install script work on Windows 4. Fix compatibility with the latest x/tools version and update golang.org/x/tools 5. Correct import path of module sourcegraph/go-diff 6. Fix `max-issues-per-linter` name 7. Fix linting of preprocessed files (e.g. `*.qtpl.go`, goyacc) 8. Enable auto-fixing when running via pre-commit ### March 2019 1. Support the newest `go vet` (with `go/analysis`) 2. Support configuration of `go vet`: e.g. you can set print functions by `linters-settings.govet.settings.printf.funcs` 3. Update megacheck (staticcheck) to 2019.1.1 4. Add [information](https://github.com/golangci/golangci-lint#memory-usage-of-golangci-lint) about controlling space-time trade-off into README 5. Exclude issues by source code line regexp by `issues.exclude-rules[i].source` 6. Build and test on go 1.12 7. Support `--color` option 8. Update x/tools to fix c++ issues 9. Include support for log level 10. Sort linters list in help commands