Skip to content

Commit 2192097

Browse files
committed
docs: update changelog
1 parent 59a533c commit 2192097

File tree

2 files changed

+82
-36
lines changed

2 files changed

+82
-36
lines changed

README.md

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
[![GolangCI](https://golangci.com/badges/github.com/golangci/golangci-lint.svg)](https://golangci.com)
55

66
GolangCI-Lint is a linters aggregator. It's fast: on average [5 times faster](#performance) than gometalinter.
7-
It's [easy to integrate and use](#command-line-options), has [nice output](#quick-start) and has a minimum number of false positives.
7+
It's [easy to integrate and use](#command-line-options), has [nice output](#quick-start) and has a minimum number of false positives. It supports go modules.
88

99
GolangCI-Lint has [integrations](#editor-integration) with VS Code, GNU Emacs, Sublime Text.
1010

11+
Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci).
12+
1113
Sponsored by [GolangCI.com](https://golangci.com): SaaS service for running linters on Github pull requests. Free for Open Source.
1214

1315
<a href="https://golangci.com/"><img src="docs/go.png" width="250px"></a>
@@ -44,8 +46,7 @@ Short 1.5 min video demo of analyzing [beego](https://github.com/astaxie/beego).
4446

4547
Most installations are done for CI (travis, circleci etc). It's important to have reproducible CI:
4648
don't start to fail all builds at the same time. With golangci-lint this can happen if you
47-
use `--enable-all` and a new linter is added or even without `--enable-all`: when one upstream linter
48-
is upgraded.
49+
use `--enable-all` and a new linter is added or even without `--enable-all`: when one upstream linter is upgraded.
4950

5051
It's highly recommended to install a fixed version of golangci-lint.
5152
Releases are available on the [releases page](https://github.com/golangci/golangci-lint/releases).
@@ -94,7 +95,8 @@ go get -u github.com/golangci/golangci-lint/cmd/golangci-lint
9495
cd $(go env GOPATH)/src/github.com/golangci/golangci-lint/cmd/golangci-lint
9596
go install -ldflags "-X 'main.version=$(git describe --tags)' -X 'main.commit=$(git rev-parse --short HEAD)' -X 'main.date=$(date)'"
9697
```
97-
(On Windows, you can run the above commands with Git Bash, which comes with [Git for Windows](https://git-scm.com/download/win).)
98+
99+
(On Windows, you can run the above commands with Git Bash, which comes with [Git for Windows](https://git-scm.com/download/win). Or you can run just `go get -u github.com/golangci/golangci-lint/cmd/golangci-lint`.)
98100

99101
You can also install it on MacOS using [brew](https://brew.sh/):
100102

@@ -329,15 +331,14 @@ Read [this section](#internals) for details.
329331
We don't fork to call specific linter but use its API.
330332
For small and medium projects 50-90% of work between linters can be reused.
331333
332-
* load `loader.Program` once
334+
* load `[]*packages.Package` by `go/packages` once
333335
334336
We load program (parsing all files and type-checking) only once for all linters. For the most of linters
335337
it's the most heavy operation: it takes 5 seconds on 8 kLoC repo and 11 seconds on `$GOROOT/src`.
336338
* build `ssa.Program` once
337339
338340
Some linters (megacheck, interfacer, unparam) work on SSA representation.
339341
Building of this representation takes 1.5 seconds on 8 kLoC repo and 6 seconds on `$GOROOT/src`.
340-
`SSA` representation is used from a [fork of go-tools](https://github.com/dominikh/go-tools), not the official one.
341342
342343
* parse source code and build AST once
343344
@@ -349,17 +350,11 @@ Read [this section](#internals) for details.
349350
350351
It takes 300-1000 ms for `$GOROOT/src`.
351352
2. Smart linters scheduling
352-
353+
353354
We schedule linters by a special algorithm which takes estimated execution time into account. It allows
354355
to save 10-30% of time when one of heavy linters (megacheck etc) is enabled.
355356
356-
3. Improved program loading
357-
358-
We smartly use setting `TypeCheckFuncBodies` in `loader.Config` to build `loader.Program`.
359-
If there are no linters requiring SSA enabled we can load dependencies of analyzed code much faster
360-
by not analyzing their functions: we analyze only file-level declarations. It makes program loading
361-
10-30% faster in such cases.
362-
4. Don't fork to run shell commands
357+
3. Don't fork to run shell commands
363358
364359
All linters are vendored in the `/vendor` folder: their version is fixed, they are builtin
365360
and you don't need to install them separately.
@@ -830,13 +825,14 @@ You have 2 choices:
830825
831826
We don't recommend vendoring `golangci-lint` in your repo: you will get troubles updating `golangci-lint`. Please, use recommended way to install with the shell script: it's very fast.
832827
833-
**Does I need to run `go install`?**
828+
**Do I need to run `go install`?**
834829
835830
No, you don't need to do it anymore.
836831
837832
**Which go versions are supported**
838-
Golangci-lint versions > 1.10.2 supports Go 1.10 and 1.11.
839-
Golangci-lint versions <= v1.10.2 supported Go 1.9, 1.10, 1.11.
833+
Short answer: go 1.10 and newer are supported.
834+
835+
Long answer: golangci-lint > 1.10.2 supports Go 1.10 and 1.11; golangci-lint <= v1.10.2 supports Go 1.9, 1.10, 1.11.
840836
841837
**`golangci-lint` doesn't work**
842838
@@ -850,6 +846,7 @@ Usually this options is used during development on local machine and compilation
850846
851847
## Thanks
852848
849+
Thanks to all [contributors](https://github.com/golangci/golangci-lint/graphs/contributors)!
853850
Thanks to [alecthomas/gometalinter](https://github.com/alecthomas/gometalinter) for inspiration and amazing work.
854851
Thanks to [bradleyfalzon/revgrep](https://github.com/bradleyfalzon/revgrep) for cool diff tool.
855852
@@ -876,8 +873,34 @@ Thanks to developers and authors of used linters:
876873
877874
## Changelog
878875
876+
Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci).
879877
There is the most valuable changes log:
880878
879+
### January 2019
880+
881+
1. Update `megacheck` (`staticcheck`) to the latest version: it consumes much less memory.
882+
2. Support the new `stylecheck` linter.
883+
3. Update `go-critic` to the latest version.
884+
4. Support of `enabled-tags` options for `go-critic`.
885+
5. Make rich debugging for `go-critic` and meticulously validate `go-critic` checks config.
886+
6. Update and use upstream versions of `unparam` and `interfacer` instead of forked ones.
887+
7. Improve handling of unknown linter names in `//nolint` directives.
888+
8. Speedup `typecheck` on large project with compilation errors.
889+
9. Add support for searching for `errcheck` exclude file.
890+
10. Fix `go-misc` checksum.
891+
892+
### December 2018
893+
894+
1. Update `goimports`: the new version creates named imports for name/path mismatches.
895+
2. Update `go-critic` to the latest version.
896+
3. Sync default `go-critic` checks list with the `go-critic`.
897+
4. Support `pre-commit.com` hooks.
898+
5. Rework and simplify `--skip-dirs` for some edge cases.
899+
6. Add `modules-download-mode` option: it's useful in CI.
900+
7. Better validate commands.
901+
8. Fix working with absolute paths.
902+
9. Fix `errcheck.ignore` option.
903+
881904
### November 2018
882905
883906
1. Support new linters:
@@ -955,7 +978,7 @@ There is the most valuable changes log:
955978
## Contact Information
956979
957980
You can contact the [author](https://github.com/jirfag) of GolangCI-Lint
958-
981+
by [[email protected]](mailto:[email protected]). Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci).
959982
960983
## License Scan
961984

README.tmpl.md

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
[![GolangCI](https://golangci.com/badges/github.com/golangci/golangci-lint.svg)](https://golangci.com)
55

66
GolangCI-Lint is a linters aggregator. It's fast: on average [5 times faster](#performance) than gometalinter.
7-
It's [easy to integrate and use](#command-line-options), has [nice output](#quick-start) and has a minimum number of false positives.
7+
It's [easy to integrate and use](#command-line-options), has [nice output](#quick-start) and has a minimum number of false positives. It supports go modules.
88

99
GolangCI-Lint has [integrations](#editor-integration) with VS Code, GNU Emacs, Sublime Text.
1010

11+
Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci).
12+
1113
Sponsored by [GolangCI.com](https://golangci.com): SaaS service for running linters on Github pull requests. Free for Open Source.
1214

1315
<a href="https://golangci.com/"><img src="docs/go.png" width="250px"></a>
@@ -44,8 +46,7 @@ Short 1.5 min video demo of analyzing [beego](https://github.com/astaxie/beego).
4446

4547
Most installations are done for CI (travis, circleci etc). It's important to have reproducible CI:
4648
don't start to fail all builds at the same time. With golangci-lint this can happen if you
47-
use `--enable-all` and a new linter is added or even without `--enable-all`: when one upstream linter
48-
is upgraded.
49+
use `--enable-all` and a new linter is added or even without `--enable-all`: when one upstream linter is upgraded.
4950

5051
It's highly recommended to install a fixed version of golangci-lint.
5152
Releases are available on the [releases page](https://github.com/golangci/golangci-lint/releases).
@@ -94,7 +95,8 @@ go get -u github.com/golangci/golangci-lint/cmd/golangci-lint
9495
cd $(go env GOPATH)/src/github.com/golangci/golangci-lint/cmd/golangci-lint
9596
go install -ldflags "-X 'main.version=$(git describe --tags)' -X 'main.commit=$(git rev-parse --short HEAD)' -X 'main.date=$(date)'"
9697
```
97-
(On Windows, you can run the above commands with Git Bash, which comes with [Git for Windows](https://git-scm.com/download/win).)
98+
99+
(On Windows, you can run the above commands with Git Bash, which comes with [Git for Windows](https://git-scm.com/download/win). Or you can run just `go get -u github.com/golangci/golangci-lint/cmd/golangci-lint`.)
98100

99101
You can also install it on MacOS using [brew](https://brew.sh/):
100102

@@ -298,15 +300,14 @@ Read [this section](#internals) for details.
298300
We don't fork to call specific linter but use its API.
299301
For small and medium projects 50-90% of work between linters can be reused.
300302

301-
* load `loader.Program` once
303+
* load `[]*packages.Package` by `go/packages` once
302304

303305
We load program (parsing all files and type-checking) only once for all linters. For the most of linters
304306
it's the most heavy operation: it takes 5 seconds on 8 kLoC repo and 11 seconds on `$GOROOT/src`.
305307
* build `ssa.Program` once
306308

307309
Some linters (megacheck, interfacer, unparam) work on SSA representation.
308310
Building of this representation takes 1.5 seconds on 8 kLoC repo and 6 seconds on `$GOROOT/src`.
309-
`SSA` representation is used from a [fork of go-tools](https://github.com/dominikh/go-tools), not the official one.
310311

311312
* parse source code and build AST once
312313

@@ -318,17 +319,11 @@ Read [this section](#internals) for details.
318319

319320
It takes 300-1000 ms for `$GOROOT/src`.
320321
2. Smart linters scheduling
321-
322+
322323
We schedule linters by a special algorithm which takes estimated execution time into account. It allows
323324
to save 10-30% of time when one of heavy linters (megacheck etc) is enabled.
324325

325-
3. Improved program loading
326-
327-
We smartly use setting `TypeCheckFuncBodies` in `loader.Config` to build `loader.Program`.
328-
If there are no linters requiring SSA enabled we can load dependencies of analyzed code much faster
329-
by not analyzing their functions: we analyze only file-level declarations. It makes program loading
330-
10-30% faster in such cases.
331-
4. Don't fork to run shell commands
326+
3. Don't fork to run shell commands
332327

333328
All linters are vendored in the `/vendor` folder: their version is fixed, they are builtin
334329
and you don't need to install them separately.
@@ -435,13 +430,14 @@ You have 2 choices:
435430

436431
We don't recommend vendoring `golangci-lint` in your repo: you will get troubles updating `golangci-lint`. Please, use recommended way to install with the shell script: it's very fast.
437432

438-
**Does I need to run `go install`?**
433+
**Do I need to run `go install`?**
439434

440435
No, you don't need to do it anymore.
441436

442437
**Which go versions are supported**
443-
Golangci-lint versions > 1.10.2 supports Go 1.10 and 1.11.
444-
Golangci-lint versions <= v1.10.2 supported Go 1.9, 1.10, 1.11.
438+
Short answer: go 1.10 and newer are supported.
439+
440+
Long answer: golangci-lint > 1.10.2 supports Go 1.10 and 1.11; golangci-lint <= v1.10.2 supports Go 1.9, 1.10, 1.11.
445441

446442
**`golangci-lint` doesn't work**
447443

@@ -455,6 +451,7 @@ Usually this options is used during development on local machine and compilation
455451

456452
## Thanks
457453

454+
Thanks to all [contributors](https://github.com/golangci/golangci-lint/graphs/contributors)!
458455
Thanks to [alecthomas/gometalinter](https://github.com/alecthomas/gometalinter) for inspiration and amazing work.
459456
Thanks to [bradleyfalzon/revgrep](https://github.com/bradleyfalzon/revgrep) for cool diff tool.
460457

@@ -463,8 +460,34 @@ Thanks to developers and authors of used linters:
463460

464461
## Changelog
465462

463+
Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci).
466464
There is the most valuable changes log:
467465

466+
### January 2019
467+
468+
1. Update `megacheck` (`staticcheck`) to the latest version: it consumes much less memory.
469+
2. Support the new `stylecheck` linter.
470+
3. Update `go-critic` to the latest version.
471+
4. Support of `enabled-tags` options for `go-critic`.
472+
5. Make rich debugging for `go-critic` and meticulously validate `go-critic` checks config.
473+
6. Update and use upstream versions of `unparam` and `interfacer` instead of forked ones.
474+
7. Improve handling of unknown linter names in `//nolint` directives.
475+
8. Speedup `typecheck` on large project with compilation errors.
476+
9. Add support for searching for `errcheck` exclude file.
477+
10. Fix `go-misc` checksum.
478+
479+
### December 2018
480+
481+
1. Update `goimports`: the new version creates named imports for name/path mismatches.
482+
2. Update `go-critic` to the latest version.
483+
3. Sync default `go-critic` checks list with the `go-critic`.
484+
4. Support `pre-commit.com` hooks.
485+
5. Rework and simplify `--skip-dirs` for some edge cases.
486+
6. Add `modules-download-mode` option: it's useful in CI.
487+
7. Better validate commands.
488+
8. Fix working with absolute paths.
489+
9. Fix `errcheck.ignore` option.
490+
468491
### November 2018
469492

470493
1. Support new linters:
@@ -542,7 +565,7 @@ There is the most valuable changes log:
542565
## Contact Information
543566

544567
You can contact the [author](https://github.com/jirfag) of GolangCI-Lint
545-
568+
by [[email protected]](mailto:[email protected]). Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci).
546569

547570
## License Scan
548571

0 commit comments

Comments
 (0)