github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/CHANGELOG.md (about) 1 Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci). 2 There is the most valuable changes log: 3 4 ### v1.53.3 5 6 1. updated linters: 7 * `cyclop`: from 1.2.0 to 1.2.1 8 * `exhaustive`: from 0.10.0 to 0.11.0 9 * `forbidigo`: from 1.5.1 to 1.5.3 10 * `ginkgolinter`: from 0.12.2 to 0.12.1 11 * `ineffassign`: bump to HEAD 12 * `nakedret`: from 2.0.1 to 2.0.2 13 * `zerologlint`: from 0.1.1 to 0.1.2 14 2. misc. 15 * codeclimate: reduce memory allocation 16 * support illumos/amd64 17 18 ### v1.53.2 19 20 1. updated linters 21 * `depguard`: from v2.0.1 to 2.1.0 22 2. misc. 23 * `depguard`: throw error only when the linter is called 24 25 ### v1.53.1 26 27 1. misc. 28 * `depguard`: fix GOROOT detection 29 * `importas`: fix duplication detection when aliases use regular expression replacement pattern 30 31 ### v1.53.0 32 33 1. new linters 34 * `gosmopolitan`: https://github.com/xen0n/gosmopolitan 35 * `mirror`: https://github.com/butuzov/mirror 36 * `tagalign`: https://github.com/4meepo/tagalign 37 * `zerologlint`: https://github.com/ykadowak/zerologlint 38 2. updated linters 39 * `bodyclose`: bump to HEAD 40 * `containedctx`: from 1.0.2 to 1.0.3 41 * `depguard`: migrate to v2 42 * `errname`: from 0.1.9 to 0.1.10 43 * `exhaustive`: from 0.9.5 to 0.10.0 44 * `forbidigo`: better support for configuring complex rules 45 * `gci`: improve error message 46 * `ginkgolinter`: add suppress-async-assertion option 47 * `ginkgolinter`: from 0.9.0 to 0.12.0 48 * `go-critic`: from 0.7.0 to 0.8.1 49 * `go-errorlint`: from 1.4.0 to 1.4.2 50 * `gofumpt`: from 0.4.0 to 0.5.0 51 * `gosec`: convert global settings as map with proper key type 52 * `gosec`: from 2.15.0 to 2.16.0 53 * `importas`: detect duplicate alias or package in the configuration 54 * `importas`: fix typo in logs 55 * `ireturn`: from 0.1.1 to 0.2.0 56 * `musttag`: from 0.5.0 to 0.7.0 57 * `nakedret`: to 2.0.1 58 * `nilnil`: from 0.1.3 to 0.1.5 59 * `paralleltest`: from 1.0.6 to 1.0.7 60 * `revive`: from 1.3.1 to 1.3.2 61 * `tagliatelle`: from 0.4.0 to 0.5.0 62 * `usestdlibvars`: fix configuration 63 3. misc. 64 * `golang.org/x/tools`: from 0.7.0 to 0.9.2 65 * add loongarch64 to the install script 66 * output: add colored-tab 67 * remove warning when the config file is explicitly stdin 68 * rules: support inverted path match 69 4. Documentation 70 * `mnd`: clarify ignore usage examples to be regexps 71 * `tagliatelle`: update documentation 72 * improve features section 73 * update supported Go versions FAQ 74 75 ### v1.52.2 76 77 1. updated linters 78 * `tparallel`: from 0.3.0 to 0.3.1 79 2. misc. 80 * fix: pre-commit `require_serial` and `pass_filenames` 81 82 ### v1.52.1 83 84 1. misc. 85 * fix: improve panic management 86 * fix: the combination of --fix and --path-prefix 87 88 ### v1.52.0 89 90 1. updated linters 91 * `asciicheck`: from 0.1.1 to 0.2.0 92 * `bidichk`: from 0.2.3 to 0.2.4 93 * `contextcheck`: from 1.1.3 to 1.1.4 94 * `dupword`: from 0.0.9 to 0.0.11 95 * `durationcheck`: from 0.0.9 to 0.0.10 96 * `errchkjson`: from 0.3.0 to 0.3.1 97 * `errname`: from 0.1.7 to 0.1.9 98 * `forbidigo`: from 1.4.0 to 1.5.1 99 * `gci`: from 0.9.1 to 0.10.1 100 * `ginkgolinter`: from 0.8.1 to 0.9.0 101 * `go-critic`: from 0.6.7 to 0.7.0 102 * `go-errorlint`: from 1.1.0 to 1.4.0 103 * `godox`: bump to HEAD 104 * `lll`: skip go command 105 * `loggercheck`: from 0.9.3 to 0.9.4 106 * `musttag`: from 0.4.5 to 0.5.0 107 * `nilnil`: from 0.1.1 to 0.1.3 108 * `noctx`: from 0.0.1 to 0.0.2 109 * `revive`: from 1.2.5 to 1.3.1 110 * `rowserrcheck`: remove limitation related to generics support 111 * `staticcheck`: from 0.4.2 to 0.4.3 112 * `testpackage`: from 1.1.0 to 1.1.1 113 * `tparallel`: from 0.2.1 to 0.3.0 114 * `wastedassign`: remove limitation related to generics support 115 * `wrapcheck`: from 2.8.0 to 2.8.1 116 2. misc. 117 * Add TeamCity output format 118 * Consider path prefix when matching path patterns 119 * Add Go version to version information 120 3. Documentation 121 * Add Tekton in Trusted By page 122 * Clarify that custom linters are not enabled by default 123 * Remove description for deprecated "go" option 124 125 ### v1.51.2 126 127 1. updated linters 128 * `forbidigo`: from 1.3.0 to 1.4.0 129 * `gci`: from 0.9.0 to 0.9.1 130 * `go-critic`: from 0.6.5 to 0.6.7 131 * `go-errorlint`: from 1.0.6 to 1.1.0 132 * `gosec`: from 2.14.0 to 2.15.0 133 * `musttag`: from 0.4.4 to 0.4.5 134 * `staticcheck`: from 0.4.0 to 0.4.2 135 * `tools`: from 0.5.0 to 0.6.0 136 * `usestdlibvars`: from 1.21.1 to 1.23.0 137 * `wsl`: from 3.3.0 to 3.4.0 138 * `govet`: enable `timeformat` by default 139 2. misc. 140 * fix: cache status size calculation 141 * add new source archive 142 3. Documentation 143 * Improve installation section 144 * Replace links to godoc.org with pkg.go.dev 145 146 ### v1.51.1 147 148 1. updated linters 149 * `ginkgolinter`: from 0.7.1 to 0.8.1 150 * `ineffassign`: bump to HEAD 151 * `musttag`: from 0.4.3 to 0.4.4 152 * `sqlclosecheck`: from 0.3.0 to 0.4.0 153 * `staticcheck`: bump to v0.4.0 154 * `wastedassign`: from 2.0.6 to 2.0.7 155 * `wrapcheck`: from 2.7.0 to 2.8.0 156 157 ### v1.51.0 158 159 1. new linters 160 * `ginkgolinter`: https://github.com/nunnatsa/ginkgolinter 161 * `musttag`: https://github.com/tmzane/musttag 162 * `gocheckcompilerdirectives`: https://github.com/leighmcculloch/gocheckcompilerdirectives 163 2. updated linters 164 * `bodyclose`: to HEAD 165 * `dupword`: from 0.0.7 to 0.0.9 166 * `errcheck`: from 1.6.2 to 1.6.3 167 * `exhaustive`: from 0.8.3 to 0.9.5 168 * `exportloopref`: from 0.1.8 to 0.1.11 169 * `gci`: from 0.8.1 to 0.9.0 170 * `ginkgolinter`: from 0.6.0 to 0.7.1 171 * `go-errorlint`: from 1.0.5 to 1.0.6 172 * `go-ruleguard`: from 0.3.21 to 0.3.22 173 * `gocheckcompilerdirectives`: from 1.1.0 to 1.2.1 174 * `gochecknoglobals`: from 0.1.0 to 0.2.1 175 * `gomodguard`: from 1.2.4 to 1.3.0 176 * `gosec`: from 2.13.1 to 2.14.0 177 * `govet`: Add `timeformat` to analysers 178 * `grouper`: from 1.1.0 to 1.1.1 179 * `musttag`: from 0.4.1 to 0.4.3 180 * `revive`: from 1.2.4 to 1.2.5 181 * `tagliatelle`: from 0.3.1 to 0.4.0 182 * `tenv`: from 1.7.0 to 1.7.1 183 * `unparam`: bump to HEAD 184 * `usestdlibvars`: from 1.20.0 to 1.21.1 185 * `wsl`: fix `force-err-cuddling` flag 186 3. misc. 187 * go1.20 support 188 * remove deprecated linters from presets 189 * Build NetBSD binaries 190 * Build loong64 binaries 191 4. Documentation 192 * `goimport`: improve documentation for local-prefixes 193 * `gomnd`: add missing always ignored functions 194 * `nolint`: fix typo 195 * `tagliatelle` usage typo 196 * add note about binary requirement for plugin 197 * cache preserving and colored output on docker runs 198 * improve documentation about debugging. 199 * improve Editor Integration section 200 * More specific default cache directory 201 * update output example to use valid checkstyle example; add json example 202 203 ### v1.50.1 204 205 1. updated linters 206 * `contextcheck`: from 1.1.2 to 1.1.3 207 * `go-mnd`: from 2.5.0 to 2.5.1 208 * `wrapcheck`: from 2.6.2 to 2.7.0 209 * `revive`: fix configuration parsing 210 * `lll`: skip imports 211 2. misc. 212 * windows: remove redundant character escape '\/' 213 * code-climate: add default severity 214 215 ### v1.50.0 216 217 1. new linters 218 * `dupword`: https://github.com/Abirdcfly/dupword 219 * `testableexamples`: https://github.com/maratori/testableexamples 220 2. updated linters 221 * `contextcheck`: change owner 222 * `contextcheck`: from 1.0.6 to 1.1.2 223 * `depguard`: from 1.1.0 to 1.1.1 224 * `exhaustive`: add missing config 225 * `exhaustive`: from 0.8.1 to 0.8.3 226 * `gci`: from 0.6.3 to 0.8.0 227 * `go-critic`: from 0.6.4 to 0.6.5 228 * `go-errorlint`: from 1.0.2 to 1.0.5 229 * `go-reassign`: v0.1.2 to v0.2.0 230 * `gofmt`: add option `rewrite-rules` 231 * `gofumpt` from 0.3.1 to 0.4.0 232 * `goimports`: update to HEAD 233 * `interfacebloat`: fix configuration loading 234 * `logrlint`: rename `logrlint` to `loggercheck` 235 * `paralleltest`: add tests of the ignore-missing option 236 * `revive`: from 1.2.3 to 1.2.4 237 * `usestdlibvars`: from 1.13.0 to 1.20.0 238 * `wsl`: support all configs and update docs 239 3. misc. 240 * Normalize `exclude-rules` paths for Windows 241 * add riscv64 to the install script 242 4. Documentation 243 * cli: remove reference to old service 244 245 ### v1.49.0 246 247 IMPORTANT: `varcheck` and `deadcode` has been removed of default linters. 248 249 1. new linters 250 * `interfacebloat`: https://github.com/sashamelentyev/interfacebloat 251 * `logrlint`: https://github.com/timonwong/logrlint 252 * `reassign`: https://github.com/curioswitch/go-reassign 253 2. updated linters 254 * `go-colorable`: from 0.1.12 to 0.1.13 255 * `go-critic`: from 0.6.3 to 0.6.4 256 * `go-errorlint`: from 1.0.0 to 1.0.2 257 * `go-exhaustruct`: from 2.2.2 to 2.3.0 258 * `gopsutil`: from 3.22.6 to 3.22.7 259 * `gosec`: from 2.12.0 to 2.13.1 260 * `revive`: from 1.2.1 to 1.2.3 261 * `usestdlibvars`: from 1.8.0 to 1.13.0 262 * `contextcheck`: from v1.0.4 to v1.0.6 && re-enable 263 * `nosnakecase`: This linter is deprecated. 264 * `varcheck`: This linter is deprecated use `unused` instead. 265 * `deadcode`: This linter is deprecated use `unused` instead. 266 * `structcheck`: This linter is deprecated use `unused` instead. 267 3. documentation 268 * `revive`: fix wrong URL 269 * Add a section about default exclusions 270 * `usestdlibvars`: fix typo in documentation 271 * `nolintlint`: remove allow-leading-space option 272 * Update documentation and assets 273 4. misc. 274 * dev: rewrite the internal tests framework 275 * fix: exit early on run --version 276 * fix: set an explicit `GOROOT` in the Docker image for `go-critic` 277 278 ### v1.48.0 279 280 1. new linters 281 * `usestdlibvars`:https://github.com/sashamelentyev/usestdlibvars 282 2. updated linters 283 * `contextcheck`: disable linter 284 * `errcheck`: from 1.6.1 to 1.6.2 285 * `gci`: add missing `custom-order` setting 286 * `gci`: from 0.5.0 to 0.6.0 287 * `ifshort`: deprecate linter 288 * `nolint`: drop allow-leading-space option and add "nolint:all" 289 * `revgrep`: bump to HEAD 290 3. documentation 291 * remove outdated info on source install 292 4. misc 293 * go1.19 support 294 295 ### v1.47.3 296 297 1. updated linters: 298 * remove some go1.18 limitations 299 * `asasalint`: from 0.0.10 to 0.0.11 300 * `decorder`: from 0.2.2 to v0.2.3 301 * `gci`: fix panic with invalid configuration option 302 * `gci`: from 0.4.3 to v0.5.0 303 * `go-exhaustruct`: from 2.2.0 to 2.2.2 304 * `gomodguard`: from 1.2.3 to 1.2.4 305 * `nosnakecase`: from 1.5.0 to 1.7.0 306 * `honnef.co/go/tools`: from 0.3.2 to v0.3.3 307 2. misc 308 * cgo: fix linters ignoring CGo files 309 310 ### v1.47.2 311 312 1. updated linters: 313 * `revive`: ignore slow rules 314 315 ### v1.47.1 316 317 1. updated linters: 318 * `gci`: from 0.4.2 to 0.4.3 319 * `gci`: remove the use of stdin 320 * `gci`: fix options display 321 * `tenv`: from 1.6.0 to 1.7.0 322 * `unparam`: bump to HEAD 323 324 ### v1.47.0 325 326 1. new linters: 327 * `asasalint`: https://github.com/alingse/asasalint 328 * `nosnakecase`: https://github.com/sivchari/nosnakecase 329 2. updated linters: 330 * `decorder`: from 0.2.1 to 0.2.2 331 * `errcheck`: from 1.6.0 to 1.6.1 332 * `errname`: from 0.1.6 to 0.1.7 333 * `exhaustive`: from 0.7.11 to 0.8.1 334 * `gci`: fix issues and re-enable autofix 335 * `gci`: from 0.3.4 to 0.4.2 336 * `go-exhaustruct`: from 2.1.0 to 2.2.0 337 * `go-ruleguard`: from 0.3.19 to 0.3.21 338 * `gocognit`: from 1.0.5 to 1.0.6 339 * `gocyclo`: from 0.5.1 to 0.6.0 340 * `golang.org/x/tools`: bump to HEAD 341 * `gosec`: allow `global` config 342 * `gosec`: from 2.11.0 to 2.12.0 343 * `nonamedreturns`: from 1.0.1 to 1.0.4 344 * `paralleltest`: from 1.0.3 to 1.0.6 345 * `staticcheck`: fix generics 346 * `staticcheck`: from 0.3.1 to 0.3.2 347 * `tenv`: from 1.5.0 to 1.6.0 348 * `testpackage`: from 1.0.1 to 1.1.0 349 * `thelper`: from 0.6.2 to 0.6.3 350 * `wrapcheck`: from 2.6.1 to 2.6.2 351 3. documentation: 352 * add thanks page 353 * add a clear explanation about the `staticcheck` integration. 354 * `depguard`: add `ignore-file-rules` 355 * `depguard`: adjust phrasing 356 * `gocritic`: add `enable` and `disable` ruleguard settings 357 * `gomnd`: fix typo 358 * `gosec`: add configs for all existing rules 359 * `govet`: add settings for `shadow` and `unusedresult` 360 * `thelper`: add `fuzz` config and description 361 * linters: add defaults 362 363 ### v1.46.2 364 365 1. updated linters: 366 * `execinquery`: bump from v1.2.0 to v1.2.1 367 * `errorlint`: bump to v1.0.0 368 * `thelper`: allow to disable one option 369 2. documentation: 370 * rename `.golangci.example.yml` to `.golangci.reference.yml` 371 * add `containedctx` linter to the list of available linters 372 373 ### v1.46.1 374 375 1. updated linters: 376 * `execinquery`: bump from v0.6.0 to v0.6.1 377 2. documentation: 378 * add missing linters 379 380 ### v1.46.0 381 382 1. new linters: 383 * `execinquery`: https://github.com/lufeee/execinquery 384 * `nonamedreturns`: https://github.com/firefart/nonamedreturns 385 * `nosprintfhostport`: https://github.com/stbenjam/no-sprintf-host-port 386 * `exhaustruct`: https://github.com/GaijinEntertainment/go-exhaustruct 387 2. updated linters: 388 * `bidichk`: from 0.2.2 to 0.2.3 389 * `deadcode`: bump to HEAD 390 * `errchkjson`: from 0.2.3 to 0.3.0 391 * `errname`: from 0.1.5 to 0.1.6 392 * `go-critic`: from 0.6.2 to 0.6.3 393 * `gocyclo`: from 0.4.0 to 0.5.1 394 * `gofumpt` from 0.3.0 to 0.3.1 395 * `gomoddirectives`: from 0.2.2 to 0.2.3 396 * `gosec`: from 2.10.0 to 2.11.0 397 * `honnef.co/go/tools`: from 0.2.2to 0.3.1 (go1.18 support) 398 * `nilnil`: from 0.1.0 to 0.1.1 399 * `nonamedreturns`: bump from 1.0.0 to 1.0.1 400 * `predeclared`: from 0.2.1 to 0.2.2 401 * `promlinter`: bump to v0.2.0 402 * `revive`: from 1.1.4 to 1.2.1 403 * `tenv`: from 1.4.7 to 1.5.0 404 * `thelper`: from 0.5.1 to 0.6.2 405 * `unused`: fix false-positive 406 * `varnamelen`: bump to v0.8.0 407 * `wrapcheck`: from 2.5.0 to 2.6.1 408 * `exhaustivestruct`: This linter is deprecated use `exhaustruct` instead. 409 3. documentation: 410 * Update "Shell Completion" instruction on Linux 411 * Update FAQ page 412 4. misc: 413 * log: enable override coloring based on `CLICOLOR` and `CLICOLOR_FORCE` 414 415 ### v1.45.2 416 417 1. misc: 418 * fix: help command 419 420 ### v1.45.1 421 422 1. updated linters: 423 * `interfacer`: inactivate with go1.18 424 * `govet`: inactivate unsupported analyzers (go1.18) 425 * `depguard`: reduce requirements 426 * `structcheck`: inactivate with go1.18 427 * `varnamelen`: bump from v0.6.0 to v0.6.1 428 2. misc: 429 * Automatic Go version detection 🎉 (go1.18) 430 * docker: update base images (go1.18) 431 432 ### v1.45.0 433 434 1. updated linters: 435 * `cobra`: from 1.3.0 to 1.4.0 436 * `containedctx`: from 1.0.1 to 1.0.2 437 * `errcheck`: add an option to remove default exclusions 438 * `gci`: from 0.3.1 to 0.3.2 439 * `go-header`: from 0.4.2 to 0.4.3 440 * `gofumpt`: add module-path setting 441 * `gofumpt`: from 0.2.1 to 0.3.0 442 * `gopsutil`: from 3.22.1 to 3.22.2 443 * `gosec`: from 2.9.6 to 2.10.0 444 * `makezero`: from 1.1.0 to 1.1.1 445 * `revive`: fix default values 446 * `wrapcheck`: from 2.4.0 to 2.5.0 447 2. documentation: 448 * docs: add "back to the top" button 449 * docs: add `forbidigo` example that uses comments 450 * docs: improve linters page 451 3. misc: 452 * go1.18 support 🎉 453 * Add an option to manage the targeted version of Go 454 * Default to YAML when config file has no extension 455 456 ### v1.44.2 457 458 1. updated linters: 459 * `gci`: bump to HEAD 460 * `gci`: restore defaults for sections 461 * `whitespace`: from 0.0.4 to 0.0.5 462 2. documentation: 463 * add link to configuration in the linters list 464 465 ### v1.44.1 466 467 1. updated linters: 468 * `bidichk`: from 0.2.1 to 0.2.2 469 * `errchkjson`: from 0.2.1 to 0.2.3 470 * `thelper`: from 0.5.0 to 0.5.1 471 * `tagliatelle`: from 0.3.0 to 0.3.1 472 * `gopsutil`: from 3.21.12 to 3.22.1 473 * `gci`: from 0.2.9 to 0.3.0 474 * `revive`: from v1.1.3 to v1.1.4 475 * `varnamelen`: from v0.5.0 to v0.6.0 476 2. documentation: 477 * linters: improve configuration pages 478 * `decorder`: fix `disable-init-func-first-check: false` elaboration 479 3. misc: 480 * fix debug output 481 482 ### v1.44.0 483 484 1. new linters: 485 * `containedctx`: https://github.com/sivchari/containedctx 486 * `decorder`: https://gitlab.com/bosi/decorder 487 * `errchkjson`: https://github.com/breml/errchkjson 488 * `maintidx`: https://github.com/yagipy/maintidx 489 * `grouper`: https://github.com/leonklingele/grouper 490 2. updated linters: 491 * `asciicheck`: bump to v0.1.1 492 * `bidichk`: from 0.1.1 to 0.2.1 493 * `bodyclose`: bump to HEAD 494 * `decorder`: from 0.2.0 to 0.2.1 495 * `depguard`: from 1.0.1 to 1.1.0 496 * `errchkjson`: from 0.2.0 to 0.2.1 497 * `errorlint`: bump to HEAD 498 * `exhaustive`: drop deprecated/unused settings 499 * `exhaustive`: from v0.2.3 to 0.7.11 500 * `forbidigo`: from 1.2.0 to 1.3.0 501 * `forcetypeassert`: bump to v0.1.0 502 * `gocritic`: from 0.6.1 to 0.6.2 503 * `gocritic`: support autofix 504 * `gocyclo`: from 0.3.1 to 0.4.0 505 * `godot`: add period option 506 * `gofumpt`: from 0.1.1 to 0.2.1 507 * `gomnd`: from 2.4.0 to 2.5.0 508 * `gomnd`: new configuration 509 * `gosec`: from 2.9.1 to 2.9.6 510 * `ifshort`: from 1.0.3 to 1.0.4 511 * `ineffassign`: bump to HEAD 512 * `makezero`: to v1.1.0 513 * `promlinter`: from v0.1.0 to HEAD 514 * `revive`: fix `enableAllRules` 515 * `revive`: from 1.1.2 to 1.1.3 516 * `staticcheck`: from 0.2.1 to 0.2.2 517 * `tagliatelle`: from 0.2.0 to 0.3.0 518 * `thelper`: from 0.4.0 to 0.5.0 519 * `unparam`: bump to HEAD 520 * `varnamelen`: bump to v0.5.0 521 * `wrapcheck`: update configuration to include `ignoreSignRegexps` 522 3. documentation: 523 * linters: improve pages about configuration 524 * improve page about false-positive 525 * `nolintlint`: fix wrong default value in comment 526 * `revive`: add a more detailed configuration 527 4. misc: 528 * outputs: Add support for multiple outputs 529 * outputs: Print error text in `<failure>` tag content for more readable JUnit output 530 * outputs: ensure that the Issues key in JSON format is a list 531 * Return error if any linter fails to run 532 * cli: Show deprecated mark in the CLI linters help 533 534 ### November 2021 535 536 1. new linters: 537 * `bidichk`: https://github.com/breml/bidichk 538 2. update linters: 539 * `nestif`: from 0.3.0 to 0.3.1 540 * `rowserrcheck`: from 1.1.0 to 1.1.1 541 * `gopsutil`: from 3.21.9 to 3.21.10 542 * `wrapcheck`: from 2.3.1 to 2.4.0 543 * `gocritic`: add support for variable substitution in `ruleguard` path settings 544 3. documentation: 545 * improve `go-critic` documentation 546 * improve `nolintlint` documentation 547 4. Misc: 548 * cli: don't hide `enable-all` option 549 550 ### october 2021 551 552 1. new linters: 553 * `contextcheck`: https://github.com/kkHAIKE/contextcheck 554 * `varnamelen`: https://github.com/blizzy78/varnamelen 555 2. update linters: 556 * `gochecknoglobals`: to v0.1.0 557 * `gosec`: filter issues according to the severity and confidence 558 * `errcheck`: empty selector name. 559 * `ifshort`: from 1.0.2 to 1.0.3 560 * `go-critic`: from 0.5.6 to 0.6.0 561 * `gosec`: from 2.8.1 to 2.9.1 562 * `durationcheck`: from 0.0.8 to 0.0.9 563 * `wrapcheck`: from 2.3.0 to 2.3.1 564 * `revive`: from 1.1.1 to 1.1.2 565 566 ### September 2021 567 568 1. new linters: 569 * `ireturn`: https://github.com/butuzov/ireturn 570 * `nilnil`: https://github.com/Antonboom/nilnil 571 * `tenv`: https://github.com/sivchari/tenv 572 2. update linters: 573 * `errcheck`: update to HEAD 574 * `errname`: from 0.1.4 to 0.1.5 575 * `gci`: Parse the settings more similarly to the CLI 576 * `godot`: from 1.4.9 to 1.4.11 577 * `ireturn`: from 0.1.0 to 0.1.1 578 * `nlreturn`: add block-size option 579 * `paralleltest`: from 1.0.2 to 1.0.3 580 3. Misc: 581 * new-from-rev: add support for finding issues in entire files in a diff 582 583 ### August 2021 584 585 1. new linters: 586 * `errname`: https://github.com/Antonboom/errname 587 2. update linters: 588 * `errname`: from 0.1.3 to 0.1.4 589 * `go-critic`: fix invalid type conversions. 590 * `godot`: from 1.4.8 to 1.4.9 591 * `gomodguard`: from 1.2.2 to 1.2.3 592 * `revive`: from 1.0.9 to 1.1.1 593 * `staticcheck`: bump to 2021.1.1 (v0.2.1) 594 * `wrapcheck`: bump to v2.3.0 595 3. Misc: 596 * build binaries and Docker images with go1.17 597 598 ### July 2021 599 600 1. update linters: 601 * `errcheck`: allow exclude config without extra file 602 * `exhaustive`: from 0.1.0 to 0.2.3 603 * `gocognit`: from 1.0.1 to 1.0.5 604 * `godot`: from 1.4.7 to 1.4.8 605 * `gomoddirectives`: from 0.2.1 to 0.2.2 606 * `revive`: from 1.0.8 to 1.0.9 607 2. documentation: 608 * improve `goconst` documentation 609 * improve `goimports` description 610 611 ### June 2021 612 613 1. update linters: 614 * `durationcheck`: from 0.0.7 to 0.0.8 615 * `gci`: from 0.2.8 to 0.2.9 616 * `goconst`: from 0.5.6 to 0.5.7 617 * `gofumpt`: Add lang-version option 618 * `gomodguard`: from 1.2.1 to 1.2.2 619 * `gosec`: from 2.8.0 to 2.8.1 620 * `revive`: add enable-all-rules. 621 * `revive`: allow to disable rule 622 * `revive`: fix exclude comment rule for const block 623 * `revive`: from 1.0.7 to 1.0.8 624 * `wrapcheck`: from 2.1.0 to 2.2.0 625 2. documentation: 626 * add all integrations to docs introduction page 627 3. Misc: 628 * 🎉 Un-deprecate enable-all option 629 * output: generate HTML report 630 * Support RISV64 631 632 ### May 2021 633 634 1. new linters: 635 * `tagliatelle`: https://github.com/ldez/tagliatelle 636 * `promlinter`: https://github.com/yeya24/promlinter 637 2. update linters: 638 * `durationcheck`: from 0.0.6 to 0.0.7 639 * `errorlint`: bump to HEAD 640 * `forbidigo`: from 1.1.0 to 1.2.0 641 * `go-critic`: from 0.5.5 to 0.5.6 642 * `godot`: from 1.4.6 to 1.4.7 643 * ⚠`golint`: deprecated 644 * `gomnd`: from 2.3.2 to 2.4.0 645 * `gomodguard`: fix problem where duplicate issues were reported 646 * `gosec`: from 2.7.0 to 2.8.0 647 * `govet`: fix `sigchanyzer` 648 * `govet`: Update vet passes 649 * `importas`: allow repeated aliases 650 * `importas`: bump to HEAD 651 * `makezero`: bump to HEAD 652 * `nolintlint`: fix false positive 653 * `revive`: convert hard coded excludes into default exclude patterns 654 * `revive`: fix add-constant rule support 655 * `revive`: fix excludes 656 * `revive`: from 1.0.6 to 1.0.7 657 * `revive`: improve 'exported' rule output 658 * `rowserrcheck`: bump to v1.1.0 659 * `staticcheck`: configuration for `staticcheck`, `gosimple`, `stylecheck` 660 * `staticcheck`: from 0.1.3 to 0.1.4 661 * `staticcheck`: from v0.1.4 to v0.2.0 662 * `wastedassign`: from 0.2.0 to 1.0.0 663 * `wastedassign`: from 1.0.0 to v2.0.6 664 * `wrapcheck`: from 1.2.0 to 2.1.0 665 3. documentation: 666 * improve linters page 667 * `exhaustivestruct` example explanation 668 * fix pattern of `forbidigo` in example config yaml 669 * bump documentation dependencies 670 * fix typos 671 4. Misc: 672 * set the minimum Go version to go1.15 673 * non-zero exit code when a linter produces a panic 674 675 ### April 2021 676 677 1. new linters: 678 * `tagliatelle`: https://github.com/ldez/tagliatelle 679 * `promlinter`: https://github.com/yeya24/promlinter 680 2. update linters: 681 * `godot`: from 1.4.4 to 1.4.6 682 * `wrapcheck`: from 1.0.0 to 1.2.0 683 * `go-mnd`: from 2.3.1 to 2.3.2 684 * `wsl`: from 3.2.0 to 3.3.0 685 * `revive`: from 1.0.5 to 1.0.6 686 * `importas`: bump to HEAD 687 * `staticcheck`: configurable Go version 688 * `gosec`: add configuration 689 * `typecheck`: improve error stack parsing 690 3. documentation: 691 * bump documentation dependencies 692 * fix typos 693 4. Misc: 694 * fix: comma in exclude pattern leads to unexpected results 695 696 ### March 2021 697 698 1. new linters: 699 * `gomoddirectives`: https://github.com/ldez/gomoddirectives 700 2. update linters: 701 * `go-critic`: from 0.5.4 to 0.5.5 702 * `gofumpt`: from v0.1.0 to v0.1.1 703 * `gosec`: from 2.6.1 to 2.7.0 704 * `ifshort`: bump to v1.0.2 705 * `importas`: bump to HEAD 706 * `makezero`: bump to HEAD 707 * `nolintlint`: allow to fix //nolint lines 708 * `revive`: from 1.0.3 to 1.0.5 709 * `revive`: the default configuration is only applied when no dedicated configuration 710 * `rowserrcheck`: bump to HEAD 711 * ⚠`scopelint`: deprecated 712 * `staticcheck`: from v0.1.2 (2020.2.2) to v0.1.3 (2020.2.3) 713 * 🎉 `typecheck`: display compilation errors as report instead of error 714 * `wastedassign`: bump to v0.2.0 715 * `wrapcheck`: bump to v1.0.0 716 3. documentation: 717 * improve [linters page](https://golangci-lint.run/usage/linters/) (versions, deprecation, and presets) 718 * add [cache directory](https://golangci-lint.run/usage/configuration/#cache) information 719 * adding missing format options 720 * fix typos 721 4. Misc: 722 * Set `version` command output to Stdout 723 * fix linters load mode 724 * Restore fast linters meaning 725 726 ### February 2021 727 728 1. new linters: 729 * `durationcheck`: https://github.com/charithe/durationcheck 730 * `revive`: https://github.com/mgechev/revive 731 * `cyclop`: https://github.com/bkielbasa/cyclop 732 * `wastedassign`: https://github.com/sanposhiho/wastedassign 733 * `importas`: https://github.com/julz/importas 734 * `nilerr`: https://github.com/gostaticanalysis/nilerr 735 * `forcetypeassert`: https://github.com/gostaticanalysis/forcetypeassert 736 * `govet`: add `stringintconv` and `ifaceassert` 737 2. update linters: 738 * `prealloc`: Use upstream version 739 * `errcheck`: Use upstream version 740 * `ineffassign`: Use upstream version 741 * `gocyclo`: Use upstream version 742 * `godot` from 1.3.2 to 1.4.3 743 * `exhaustivestruct` from 1.1.0 to 1.2.0 744 * `forbidigo` from 1.0.0 to 1.1.0 745 * `thelper` from 0.2.1 to 0.3.1 746 * `ruleguard`: print error message and exit with non-zero status when parsing error occurs 747 * fix wrong load mode for `asciicheck`, `exhaustivestruct`, `exportloopref`, and `makezero` 748 * `wsl`: bump to v3.2.0 749 * `durationcheck`: from 0.0.4 to 0.0.6 750 * `staticcheck`: from 2020.1.6 to v0.1.2 (2020.2.2) 751 * `thelper` from 0.3.1 to 0.4.0 752 * `bodyclose`: bump to HEAD 753 * `go-err113`: bump to HEAD 754 * ⚠`interfacer`: deprecated 755 * ⚠`maligned`: deprecated (govet `fieldalignment` as replacement) 756 * `govet`: use same default linter as go vet 757 * `go-printf-func-name`: to `v0.0.0-20200119135958-7558a9eaa5af` 758 * `godox`: to `v0.0.0-20210227103229-6504466cf951` 759 * `asciicheck`: to `v0.0.0-20200416200610-e657995f937b` 760 * `wrapcheck`: to `v0.0.0-20201130113247-1683564d9756` 761 * `unparam`: to `v0.0.0-20210104141923-aac4ce9116a7` 762 3. CLI: truncate multiline descriptions 763 4. fix: new-from-rev for a large repository 764 5. Support RelatedInformation for analysis Diagnostic 765 6. use go1.16 to create binaries 766 7. fix: MIPS release 767 8. documentation: 768 * bump documentation dependencies 769 * fix `go-header` usage 770 * improve `gocritic` description 771 * update deprecated hyperlink for Sublime Text plugin 772 * add docs on using homebrew tap 773 774 ### January 2021 775 776 1. new linters: 777 * `predeclared`: https://github.com/nishanths/predeclared 778 * `ifshort`: https://github.com/esimonov/ifshort 779 2. update linters: 780 * `go-critic` from 0.5.2 to 0.5.3 781 * `thelper` from 0.1.0 to 0.2.1 782 * Validate `go-critic` settings 783 * `gofumpt` to v0.1.0 784 * `gci` to v0.2.8 785 * `go-mnd` to v2.3.1 786 * `gosec` from 2.5.0 to 2.6.1 787 * `godot` from 1.3.2 to 1.4.3 788 * `ifshort` to v1.0.1 789 * `rowserrcheck`: fix reports false positive 790 3. fix: modules-download-mode support 791 4. documentation: 792 * bump documentation dependencies 793 794 ### December 2020 795 796 1. new linters: 797 * `forbidigo`: https://github.com/ashanbrown/forbidigo 798 * `makezero`: https://github.com/ashanbrown/makezero 799 * `thelper`: https://github.com/kulti/thelper 800 2. update linters: 801 * `go-header` from v0.3.1 to v0.4.2 802 * `go-mnd` from v2.0.0 to v2.2.0 803 * `godot` from v1.3.0 to v1.3.2 804 * `gci` from v0.2.4 to v0.2.7 805 * `gomodguard` from v1.1.0 to v1.2.0 806 * `go-errorlint` from v0.0.0-20201006195004-351e25ade6e3 to v0.0.0-20201127212506-19bd8db6546f 807 * `gofumpt` from v0.0.0-20200802201014-ab5a8192947d to v0.0.0-20201129102820-5c11c50e9475 808 * `nolintlint` fix comment analysis. (#1571) 809 3. result/processors: treat all non-Go source as special autogenerated files 810 4. throw an error on panic. (#1540) 811 5. resolve custom linters' path relative to config file directory (#1572) 812 6. treat all non-Go source as special autogenerated files 813 7. documentation: 814 * add settings examples for `gocritic` (#1562) 815 * removing reference to no-longer-existing linter-in-the-cloud (#1553) 816 8. others: 817 * bump `gopkg.in/yaml.v2` from 2.3.0 to 2.4.0 (#1528) 818 * bump `gatsby-remark-responsive-iframe` in /docs (#1533) 819 * bump `gatsby-remark-images` from 3.3.29 to 3.6.0 in /docs (#1531) 820 * bump `ini` from 1.3.5 to 1.3.8 in /tools (#1560) 821 * bump `react-headroom` from 3.0.0 to 3.0.1 in /docs (#1532) 822 * bump `react-live` from 2.2.2 to 2.2.3 in /docs (#1534) 823 * bump `react` from 16.13.1 to 16.14.0 in /docs (#1481) 824 * Fix `forbidigo` linter name in reports (#1590) 825 826 ### November 2020 827 828 1. new linters: 829 * `paralleltest`: https://github.com/kunwardeep/paralleltest 830 2. update linters: 831 * `godot` from v0.4.9 to v1.3.0 832 * `exportloopref` from v0.1.7 to v0.1.8 833 * `gosec` from 2.4.0 to 2.5.0 834 * `goconst` using upstream https://github.com/jgautheron/goconst 835 3. `DefaultExcludePatterns` should only be used for specified linter (#1494) 836 4. unknown linter breaks //nolint (#1497) 837 5. report all unknown linters at once (#1477) 838 6. CI: 839 * fix Docker tag for Alpine build 840 7. documentation: 841 * missing sort-results in the docs (#1514) 842 * add description of Homebrew's official formula (#1421) 843 8. others: 844 * bump `golang.org/x/text` to v0.3.4 (#1293) 845 * bump `github.com/fatih/color` to from 1.9.0 to 1.10.0 (#1485) 846 * bump `lodash` from 4.17.15 to 4.17.19 in /.github/peril (#1252) 847 * bump `polished` from 3.6.6 to 4.0.3 in /docs (#1482) 848 * bump `gatsby-alias-imports` from 1.0.4 to 1.0.6 in /docs (#1479) 849 * bump `puppeteer` from 5.3.1 to 5.4.1 in /docs (#1480) 850 * bump `gatsby-remark-embedder` from 3.0.0 to 4.0.0 in /docs (#1478) 851 852 ### October 2020 853 854 1. new linters: 855 * `exhaustivestruct`: https://github.com/mbilski/exhaustivestruct 856 * `go-errorlint`: https://github.com/polyfloyd/go-errorlint 857 * `tparallel`: https://github.com/moricho/tparallel 858 * `wrapcheck`: https://github.com/tomarrell/wrapcheck 859 2. update linters: 860 * `honnef.co/go/tools` from 2020.1.5 to 2020.1.6 861 * `exhaustivestruct` from v1.0.1 to v1.1.0 862 * `exhaustive` to v0.1.0 863 * `gochecknoglobals`: use https://github.com/leighmcculloch/gochecknoglobals 864 3. add support for powershell completion (#1408) 865 4. add `.golangci.yaml` to list of configuration files searched on startup (#1364) 866 5. support for only specifying default severity (#1396) 867 6. documentation: 868 * mention macports installation procedure on macOS (#1352) 869 * sort linters (#1451) 870 7. CI: 871 * add codeQL scanning (#1405) 872 * fix version details in Docker image (#1471) 873 * releasing docker image for arm64 (#1383) 874 * change interval for npm to monthly (#1424) 875 8. others: 876 * use tag version for cobra (#1458) 877 * bump `nancy` to 1.0.1 (#1410) 878 * bump `gatsby-plugin-catch-links` in /docs (#1415) 879 * bump `gatsby-plugin-mdx` from 1.2.40 to 1.2.43 in /docs (#1419) 880 * bump `gatsby-plugin-sharp` from 2.6.31 to 2.6.40 in /docs (#1423) 881 * bump `gatsby-plugin-sitemap` from 2.4.12 to 2.4.14 in /docs (#1417) 882 * bump `github.com/mattn/go-colorable` from 0.1.7 to 0.1.8 (#1413) 883 * bump `github.com/sirupsen/logrus` from 1.6.0 to 1.7.0 (#1412) 884 * bump `github.com/sourcegraph/go-diff` from 0.6.0 to 0.6.1 (#1414) 885 * bump `chenfeining/golangci-lint-action` from v2 to v2.3.0 (#1447) (#1469) 886 * bump `puppeteer` from 3.3.0 to 5.3.1 in /docs (#1418) 887 888 ### September 2020 889 890 1. update linters: 891 * `godot` from 0.4.8 to 0.4.9 892 * `exhaustive` from v0.0.0-20200708172631-8866003e3856 to v0.0.0-20200811152831-6cf413ae40e0 893 * `gofumpt` from v0.0.0-20200709182408-4fd085cb6d5f to v0.0.0-20200802201014-ab5a8192947d 894 2. add support for fish completion (#1201) 895 3. documentation: 896 * fix typo in performance docs (#1350) 897 4. CI: 898 * prevent macos to be marked as passing upon failure (#1381) 899 * check only for go.mod file (#1397) 900 * check if go.mod and go.sum are up to dated (#1377) 901 * trigger Netlify (#1358) 902 5. others: 903 * bump `github.com/sourcegraph/go-diff` from 0.5.3 to 0.6.0 (#1353) 904 * bump `github.com/valyala/quicktemplate` from 1.6.2 to 1.6.3 (#1385) 905 * ignore known dependency failure in nancy (#1378) 906 * bump `@mdx-js/mdx` from 1.6.16 to 1.6.18 in /docs (#1401) 907 * bump `gatsby` from 2.24.52 to 2.24.65 in /docs (#1400) 908 * bump `gatsby-plugin-canonical-urls` in /docs (#1390) 909 * bump `gatsby-plugin-google-analytics` in /docs (#1388) 910 * bump `gatsby-plugin-manifest` from 2.4.23 to 2.4.27 in /docs (#1355) 911 * bump `gatsby-plugin-mdx` from 1.2.35 to 1.2.40 in /docs (#1386) 912 * bump `gatsby-plugin-offline` from 3.2.23 to 3.2.27 in /docs (#1368) 913 * bump `gatsby-plugin-sharp` from 2.6.25 to 2.6.31 in /docs (#1354) 914 * bump `gatsby-plugin-sitemap` from 2.4.11 to 2.4.12 in /docs (#1344) 915 * bump `gatsby-remark-autolink-headers` in /docs (#1387) 916 * bump `gatsby-remark-images` from 3.3.25 to 3.3.28 in /docs (#1345) 917 * bump `gatsby-remark-images` from 3.3.28 to 3.3.29 in /docs (#1365) 918 * bump `gatsby-remark-mermaid` from 2.0.0 to 2.1.0 in /docs (#1369) 919 * bump `gatsby-source-filesystem` in /docs (#1366) 920 * bump `gatsby-source-filesystem` in /docs (#1389) 921 * bump `gatsby-transformer-sharp` in /docs (#1402) 922 * bump `gatsby-transformer-yaml` from 2.4.10 to 2.4.11 in /docs (#1367) 923 * bump `node-fetch` in /.github/contributors (#1363) 924 * bump `polished` from 3.6.5 to 3.6.6 in /docs (#1347) 925 926 ### August 2020 927 928 1. new `nlreturn` linter: https://github.com/ssgreg/nlreturn 929 2. new `gci` linter: https://github.com/daixiang0/gci 930 3. support `latest` version of golangci-lint in golangci-lint-action 931 4. update `gosec` linter from 2.3.0 to 2.4.0 932 5. update `godot` linter from 0.4.2 to 0.4.8 933 6. update `go-critic` from 0.5.0 to 0.5.2 (#1307) 934 7. update `nlreturn` from 2.0.1 to 2.0.2 (#1287), 2.0.2 to 2.1.0 (#1327) 935 8. update `gci` to v0.2.1 (#1292), to v0.2.2 (#1305), to v0.2.4 (#1337), 936 9. update `funlen` from 0.0.2 to 0.0.3 (#1341) 937 10. upgrade to golang 1.15 for smaller binary (#1303) 938 11. support short and json formats for version cmd (#1315) 939 12. add home directory to config file search paths (#1325) 940 13. allow for serializing multiple golangci-lint invocations (#1302) 941 942 ### July 2020 943 944 1. `gofumpt` linter: 945 * update linter 946 * add `extra-rules` option 947 * support auto-fixing 948 2. upgrade `exhaustive` linter 949 3. upgrade `exportloopref` linter 950 4. improve 'no such linter' error message 951 5. sorting result.Issues implementation 952 6. enhancements in CI: 953 * Run `nancy` validation for all dependencies 954 * Move dependabot config to `.github` folder 955 7. other 956 * bump `lodash` from 4.17.15 to 4.17.19 in /tools 957 * bump `chenfeining/golangci-lint-action` from v1.2.2 to v2 958 * bump `github.com/valyala/quicktemplate` from 1.5.0 to 1.5.1 959 960 961 ### June 2020 962 963 1. Add new linters: `gofumpt` 964 965 ### May 2020 966 967 1. Add new linters: `nolintlint`, `goerr113` 968 2. Updated linters: `godot`, `staticcheck` 969 3. Launch a [website](https://golangci-lint.run) 970 971 ### April 2020 972 973 1. Add new linters: `testpackage`, `nestif`, `godot`, `gomodguard`, `asciicheck` 974 2. Add github actions output format 975 3. Update linters: `wsl`, `gomodguard`, `gosec` 976 4. Support `disabled-tags` setting for `gocritic` 977 5. Mitigate OOM and "failed prerequisites" 978 6. Self-isolate due to unexpected pandemics 979 7. Support case-sensitive excludes 980 8. Allow granular re-enabling excludes by ID, e.g. `EXC0002` 981 982 ### September 2019 983 984 1. Support go1.13 985 2. Add new linters: `funlen`, `whitespace` (with auto-fix) and `godox` 986 3. Update linters: `gochecknoglobals`, `scopelint`, `gosec` 987 4. Provide pre-built binary for ARM and FreeBSD 988 5. 2. Fix false-positives in `unused` 989 6. Support `--skip-dirs-use-default` 990 7. Add support for bash completions 991 992 ### July 2019 993 994 1. Fix parallel writes race condition 995 2. Update bodyclose with fixed panic 996 997 ### June 2019 998 999 1. Treat Go source files as a plain text by `misspell`: it allows detecting issues in strings, variable names, etc. 1000 2. Implement richer and more stable auto-fix of `misspell` issues. 1001 1002 ### May 2019 1003 1004 1. Add [bodyclose](https://github.com/timakin/bodyclose) linter. 1005 2. Support junit-xml output. 1006 1007 ### April 2019 1008 1009 1. Update go-critic, new checkers were added: badCall, dupImports, evalOrder, newDeref 1010 2. Fix staticcheck panic on packages that do not compile 1011 3. Make install script work on Windows 1012 4. Fix compatibility with the latest x/tools version and update golang.org/x/tools 1013 5. Correct import path of module sourcegraph/go-diff 1014 6. Fix `max-issues-per-linter` name 1015 7. Fix linting of preprocessed files (e.g. `*.qtpl.go`, goyacc) 1016 8. Enable auto-fixing when running via pre-commit 1017 1018 ### March 2019 1019 1020 1. Support the newest `go vet` (with `go/analysis`) 1021 2. Support configuration of `go vet`: e.g. you can set print functions by `linters-settings.govet.settings.printf.funcs` 1022 3. Update megacheck (staticcheck) to 2019.1.1 1023 4. Add [information](https://github.com/chenfeining/golangci-lint#memory-usage-of-golangci-lint) about controlling space-time trade-off into README 1024 5. Exclude issues by source code line regexp by `issues.exclude-rules[i].source` 1025 6. Build and test on go 1.12 1026 7. Support `--color` option 1027 8. Update x/tools to fix c++ issues 1028 9. Include support for log level 1029 10. Sort linters list in help commands