36 Commits

Author SHA1 Message Date
Ludovic Fernandez
5a9f5c1f13
feat: deprecate usage of linter alternative names (#4562) 2024-03-28 20:56:10 +01:00
Ludovic Fernandez
cd890db217
fix: filter invalid issues before other processors (#4552)
Some checks failed
Release a tag / release (push) Has been cancelled
2024-03-20 17:25:22 +01:00
Oleksandr Redko
6709c974a4
dev: refactor .golangci.yml configuration and fix up nolintlint issues (#4537) 2024-03-19 16:38:59 +01:00
Ludovic Fernandez
4b7a55a79d
feat: replace run.skip-xxx options by issues.exclude-xxx options (#4509) 2024-03-16 17:07:42 +01:00
Oleksandr Redko
ea823733ea
dev: reformat code with gofumpt (#4500) 2024-03-14 00:09:27 +01:00
Oleksandr Redko
4fea092fa2
dev: add GL_DEBUG=govet to see enabled analyzers (#4465) 2024-03-07 15:23:42 +01:00
Ludovic Fernandez
784264d72e
dev: new commands system (#4412) 2024-02-27 00:03:48 +01:00
Oleksandr Redko
547bca2379
docs: fix a typo (#4048) 2023-08-29 21:25:39 +02:00
Patrick Ohly
afd0ba5278
forbidigo: better support for configuring complex rules (#3612) 2023-05-31 22:33:20 +02:00
Oleksandr Redko
1948081d84
dev: remove unused ctx parameter from Printer (#3761) 2023-04-16 18:18:53 +02:00
Oleksandr Redko
1e700732e7
dev: gofmt -w -r 'interface{} -> any' pkg scripts (#3742) 2023-03-28 16:22:55 +02:00
Ludovic Fernandez
cca68dcffe
doc: improve documentation about debugging. (#3434) 2022-12-27 10:48:48 +01:00
Ludovic Fernandez
19a338706a
dev: reference all the debug keys and env vars (#3196) 2022-09-06 11:48:25 +00:00
ttys3
a2e6c7674d
feat(log): enable override coloring based on CLICOLOR and CLICOLOR_FORCE (#2657) 2022-04-05 18:37:08 +02:00
Oleksandr Redko
99c6516c6b
docs: fix grammar issues in comments (#2352) 2021-11-11 05:56:36 +01:00
Isaev Denis
9ba730e989
Make incremental analysis (#808)
Cache linting results. Reanalyze only changed packages
and packages tree depending on them.

Fixes #768, fixes #809
2019-10-13 17:40:51 +03:00
Isaev Denis
df4f6766ba
reduce 1.5x memory usage on large repos on repeated runs (#764)
Get rid of AST cache: load AST when needed. Optimize memory allocations
for go/analysis actions.

Relates: #337
2019-10-01 14:52:00 +03:00
Trevor Pounds
a16b4d872b Use stretchr/testify to mock log.
Simplifies test log usage and removes additional
targets and dependencies to go:generate mocks.
2019-09-24 11:58:40 -04:00
Trevor Pounds
49297189a1 Manage build tools via go.mod. 2019-09-23 21:30:20 +03:00
Denis Isaev
3aade55e05 Reduce memory usage of go/analysis 2019-09-23 09:52:54 +03:00
Isaev Denis
c9a9255238
Speed up packages loading (#693)
Don't perform extra go env calls in go/packages.
Load only needed go env vars in golangci-lint.
Stay in sync by enabled analyzers in go vet: remove nilness and
atomicalign analyzers, add errorsas analyzer.
Don't build SSA for govet.

Standalone govet runs 25% faster than before. All runs can be 5-10% faster
than before.
Relates: #208
2019-09-14 18:48:18 +03:00
Trevor Pounds
2e8d83266f Update dependencies. (#684)
* Update deps.

* Update to Node.js v10.16.3 LTS.

* Fix mock logutils generation.
2019-09-12 16:02:43 +03:00
Luke Shumaker
2508856219 Makefile: Be clear about exactly which files are generated, and how
This mostly aims to document how everything was generated, and the steps
necessary to re-generate the same files verbatim; the goal is to figure
out how to reproduce the files as they currently are.  The exception is
that we strip out the timestamp out of install.sh.
2019-06-05 01:04:00 -04:00
Rodrigo Brito
099f2ae41a Include log level option 2019-03-17 23:06:27 +03:00
Denis Isaev
8fceb7fc47
Fix #209: support goimports.local-prefix option for goimports 2018-10-28 18:47:56 +03:00
Denis Isaev
0421bac259 Fix #237, fix #178: use go/packages
Use go/packages instead of x/tools/loader: it allows to work
with go modules and speedups loading of packages with the help
of build cache.

A lot of linters became "fast": they are enabled by --fast now and
work in 1-2 seconds. Only unparam, interfacer and megacheck
are "slow" linters now.

Average project is analyzed 20-40% faster than before if all linters are
enabled! If we enable all linters except unparam, interfacer and
megacheck analysis is 10-20x faster!
2018-10-28 17:55:15 +03:00
Cezar Sa Espinola
b307cc3765 Fix formatting with updated goimports version 2018-10-20 10:40:40 +03:00
Denis Isaev
8a478c47ac Prepare for #164: rename GAS to gosec
1. Rename in a backward compatible way
2. Remove gosec default exclude list because gosec is already disabled
by default.
3. Warn about unmatched linter names in //nolint directives
4. Process linter names in //nolint directives in upper case
5. Disable gosec for golangci-lint in .golangci.yml
2018-09-02 09:34:35 +03:00
Denis Isaev
a6b91ccc77 Fix #124: support unparam linter
1. Support unparam linter and fix found issues
2. Replace forked mvdan.cc/lint and mvdan.cc/interfacer with the
upstream ones
3. Minimize forked megacheck: move the most of it's code to this repo
4. Use golang.org/x/tools/go/ssa import path instead of custom fork
paths
5. In golang.org/x/tools/go/{ssa,callgraph} use changed code from
honnef.co/go/tools
6. Add megacheck.check-unexported option: it found some issues in
the repo, fixed them all
2018-06-30 12:24:07 +03:00
Denis Isaev
7b2a63dfa6 Fix #100: misspell linter support 2018-06-28 21:52:30 +03:00
Denis Isaev
fb38e51c83 add all warnings and error to json if out-format=json 2018-06-24 11:29:41 +03:00
Denis Isaev
9fa9e2b3f8 Fix #106: fix transitive expanding of nolint: we could nolint more lines than needed 2018-06-16 10:56:58 +03:00
Denis Isaev
9181ca7175 Fix #78: log all warnings
1. Log all warnings, don't hide none of them
2. Write fatal messages (stop analysis) with error log level
3. Remove ugly timestamp counter from logrus output
4. Print nested module prefix in log
5. Make logger abstraction: no global logging anymore
6. Refactor config reading to config.FileReader struct to avoid passing
logger into every function
7. Replace exit codes hardcoding with constants in exitcodes package
8. Fail test if any warning was logged
9. Fix calculation of relative path if we analyze parent dir ../
10. Move Runner initialization from Executor to NewRunner func
11. Log every AST parsing error
12. Properly print used config file path in verbose mode
13. Print package files if only 1 package is analyzedin verbose mode,
  print not compiling packages in verbose mode
14. Forbid usage of github.com/sirupsen/logrus by DepGuard linter
15. Add default ignore pattern to folint: "comment on exported const"
2018-06-14 23:09:04 +03:00
Denis Isaev
a1a9215fcc Speedup program loading on 20%.
Don't typecheck func bodies for non-local packages.
Works only if megacheck and interfacer are disabled: they require all
func bodies to build SSA repr.
Export GL_DEBUG=load to get logs for this feature.
2018-06-13 20:45:46 +03:00
Denis Isaev
f9027f7dbe
Write debug logs for autogen excluding for #86 2018-06-12 15:32:34 +03:00
Denis Isaev
61c0974323
improved warnings logging 2018-06-08 08:43:43 +03:00