mirror of https://github.com/cirruslabs/tart.git
93 lines
2.8 KiB
YAML
93 lines
2.8 KiB
YAML
run:
|
|
timeout: 5m
|
|
|
|
linters:
|
|
enable-all: true
|
|
|
|
disable:
|
|
# Messages like "struct of size 104 bytes could be of size 96 bytes" from a package
|
|
# that was last updated 2 years ago[1] are barely helpful.
|
|
#
|
|
# After all, we're writing the code for other people, so let's trust the compiler here (that's
|
|
# constantly evolving compared to this linter) and revisit this if memory usage becomes a problem.
|
|
#
|
|
# [1]: https://github.com/mdempsky/maligned/commit/6e39bd26a8c8b58c5a22129593044655a9e25959
|
|
- maligned
|
|
|
|
# We don't have high-performance requirements at this moment, so sacrificing
|
|
# the code readability for marginal performance gains is not worth it.
|
|
- prealloc
|
|
|
|
# New linters that require a lot of codebase churn and noise, but perhaps we can enable them in the future.
|
|
- nlreturn
|
|
- wrapcheck
|
|
- errorlint
|
|
|
|
# Unfortunately, we use globals due to how spf13/cobra works.
|
|
- gochecknoglobals
|
|
|
|
# That's fine that some Proto objects don't have all fields initialized
|
|
- exhaustivestruct
|
|
|
|
# Style linters that are total nuts.
|
|
- wsl
|
|
- gofumpt
|
|
- goimports
|
|
- funlen
|
|
|
|
# This conflicts with the Protocol Buffers Version 3 design,
|
|
# which is largely based on default values for struct fields.
|
|
- exhaustivestruct
|
|
|
|
# Enough parallelism for now.
|
|
- paralleltest
|
|
|
|
# Ill-based assumptions about identifiers like fmt.Println without taking context into account.
|
|
- forbidigo
|
|
|
|
# Advantages of using t.Helper() are too small to waste developer's cognitive stamina on it.
|
|
- thelper
|
|
|
|
# Too restrictive defaults, plus there's already a gocyclo linter in place.
|
|
- cyclop
|
|
|
|
# Gives false positives for textbook examples[1][2]
|
|
# [1]: https://github.com/charithe/durationcheck/issues/7
|
|
# [2]: https://golang.org/pkg/time/ (see "To convert an integer number of units to a Duration, multiply:")
|
|
- durationcheck
|
|
|
|
# No way to disable the "exported" check for the whole project[1]
|
|
# [1]: https://github.com/mgechev/revive/issues/244#issuecomment-560512162
|
|
- revive
|
|
|
|
# Unfortunately too much false-positives, e.g. for a 0700 umask or number 10 when using strconv.FormatInt()
|
|
- gomnd
|
|
|
|
# Needs package whitelists
|
|
- depguard
|
|
|
|
# Generates absolutely useless errors, e.g.
|
|
# "string `.yml` has 3 occurrences, make it a constant"
|
|
- goconst
|
|
|
|
# It's OK to not sort imports
|
|
- gci
|
|
|
|
# It's OK to not initialize some struct fields
|
|
- exhaustruct
|
|
|
|
# This is not a library, so it's OK to use dynamic errors
|
|
- goerr113
|
|
|
|
# fmt.Sprintf() looks a bit nicer than string addition
|
|
- perfsprint
|
|
|
|
# We can control this ourselves
|
|
- varnamelen
|
|
- contextcheck
|
|
|
|
issues:
|
|
# Don't hide multiple issues that belong to one class since GitHub annotations can handle them all nicely.
|
|
max-issues-per-linter: 0
|
|
max-same-issues: 0
|