ceph-csi/scripts/golangci.yml.in
Yug 94b745d573 ci: disable goerr113 linter
goerr113 linter checks the errors handling expressions.
It warns about using wrapped static errors in place
of dynamic at multiple places.

Disabled the linter as of now to avoid regression,
and this need to be handled in a seperate issue.
Tracker Issue: #1227

Signed-off-by: Yug <yuggupta27@gmail.com>
2020-07-21 08:36:24 +00:00

172 lines
5.5 KiB
YAML

---
# https://github.com/golangci/golangci-lint/blob/master/.golangci.example.yml
# This file contains all available configuration options
# with their default values.
# options for analysis running
run:
build-tags:
- @@CEPH_VERSION@@
# default concurrency is a available CPU number
concurrency: 4
# timeout for analysis, e.g. 30s, 5m, default is 1m
deadline: 10m
# exit code when at least one issue was found, default is 1
issues-exit-code: 1
# https://github.com/golangci/golangci-lint/blob/v1.23.6/.golangci.example.yml#L45-L49
modules-download-mode: vendor
# include test files or not, default is true
tests: true
# which dirs to skip: they won't be analyzed;
# can use regexp here: generated.*, regexp is applied on full path;
# default value is empty list, but next dirs are always skipped independently
# from this option's value:
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
skip-dirs:
- vendor$
# which files to skip: they will be analyzed, but issues from them
# won't be reported. Default value is empty list, but there is
# no need to include all autogenerated files, we confidently recognize
# autogenerated files. If it's not please let us know.
skip-files:
# output configuration options
output:
# colored-line-number|line-number|json|tab|checkstyle|code-climate,
# default is "colored-line-number"
format: colored-line-number
# print lines of code with issue, default is true
print-issued-lines: true
# print linter name in the end of issue text, default is true
print-linter-name: true
# all available settings of specific linters
linters-settings:
errcheck:
# report about not checking of errors in type assetions:
# `a := b.(MyStruct)`;
# default is false: such cases aren't reported by default.
check-type-assertions: true
# report about assignment of errors to blank identifier:
# `num, _ := strconv.Atoi(numStr)`;
# default is false: such cases aren't reported by default.
check-blank: true
# path to a file containing a list of functions to exclude from checking
# see https://github.com/kisielk/errcheck#excluding-functions for details
# exclude: /path/to/file.txt
govet:
# report about shadowed variables
check-shadowing: true
golint:
# minimal confidence for issues, default is 0.8
min-confidence: 0
gofmt:
# simplify code: gofmt with `-s` option, true by default
simplify: true
goimports:
# put imports beginning with prefix after 3rd-party packages;
# it's a comma-separated list of prefixes
local-prefixes: github.com/ceph/ceph-csi
gocyclo:
# minimal code complexity to report, 30 by default (but we recommend 10-20)
min-complexity: 20
maligned:
# print struct with more effective memory layout or not, false by default
suggest-new: true
dupl:
# tokens count to trigger issue, 150 by default
threshold: 100
goconst:
# minimal length of string constant, 3 by default
min-len: 3
# minimal occurrences count to trigger, 3 by default
min-occurrences: 3
depguard:
list-type: blacklist
include-go-root: false
packages:
- github.com/davecgh/go-spew/spew
misspell:
# Correct spellings using locale preferences for US or UK.
# Default is to use a neutral variety of English.
# Setting locale to US will correct the British spelling of 'colour' to
# 'color'.
locale: US
ignore-words:
- someword
lll:
# max line length, lines longer will be reported. Default is 120.
# '\t' is counted as 1 character by default, and can be changed with the
# tab-width option
# TODO make line length to 120 char
line-length: 180
# tab width in spaces. Default to 1.
tab-width: 1
gocritic:
enabled-tags:
- performance
- style
- experimental
disabled-checks:
- sloppyReassign
- elseif
- unslice
- wrapperFunc
- unnamedResult
- dupImport # https://github.com/go-critic/go-critic/issues/845
unused:
# treat code as a program (not a library) and report unused exported
# identifiers; default is false.
# XXX: if you enable this setting, unused will report a lot of
# false-positives in text editors:
# if it's called for subdir of a project it can't find funcs usages.
# All text editor integrations
# with golangci-lint call it on a directory with the changed file.
check-exported: false
unparam:
# Inspect exported functions, default is false. Set to true if no external
# program/library imports your code.
# XXX: if you enable this setting, unparam will report a lot of
# false-positives in text editors:
# if it's called for subdir of a project it can't find external
# interfaces. All text editor integrations
# with golangci-lint call it on a directory with the changed file.
check-exported: false
nakedret:
# make an issue if func has more lines of code than this setting and
# it has naked returns; default is 30
max-func-lines: 30
gocognit:
# minimal code complexity to report, 30 by default (but we recommend 10-20)
# TODO: decrease complexity with refacoring the code
min-complexity: 40
dogsled:
max-blank-identifiers: 3
linters:
enable-all: true
disable:
- prealloc
- dupl
- gochecknoinits
- gochecknoglobals
- godox
- wsl
- funlen
- testpackage
# TODO: enable nestif, see: https://github.com/ceph/ceph-csi/issues/1229
- nestif
# TODO: enable goerr113, see: https://github.com/ceph/ceph-csi/issues/1227
- goerr113