blob: b2ea79950e92c4d3f831039e8421764b3af5dd54 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
linters:
disable-all: true
enable:
- asasalint
- asciicheck
# - containedctx
- contextcheck
- decorder
- dogsled
- errname
- errcheck
- errchkjson
- errorlint
- exhaustive
# TODO:// enable this lint
# - exhaustruct
- exportloopref
- gci
- goconst
- gocritic
- gocyclo
- godot
- gofumpt
- goprintffuncname
- gosec
- gosimple
- govet
- importas
- ineffassign
- lll
- misspell
- staticcheck
- stylecheck
- typecheck
- unconvert
- unparam
- unused
- usestdlibvars
- whitespace
linters-settings:
importas:
no-unaliased: true
alias:
- pkg: github.com/apache/skywalking-banyandb/api/proto/banyandb/common/v1
alias: commonv1
- pkg: github.com/apache/skywalking-banyandb/api/proto/banyandb/database/v1
alias: databasev1
- pkg: github.com/apache/skywalking-banyandb/api/proto/banyandb/model/v1
alias: modelv1
- pkg: github.com/apache/skywalking-banyandb/api/proto/banyandb/property/v1
alias: propertyv1
- pkg: github.com/apache/skywalking-banyandb/api/proto/banyandb/measure/v1
alias: measurev1
- pkg: github.com/apache/skywalking-banyandb/api/proto/banyandb/stream/v1
alias: streamv1
- pkg: github.com/apache/skywalking-banyandb/pkg/pb/v1
alias: pbv1
lll:
line-length: 170
goconst:
min-occurrences: 4
govet:
check-shadowing: true
enable:
- fieldalignment
misspell:
locale: US
unused:
go: "1.20"
check-exported: false
unparam:
check-exported: false
gci:
sections:
- standard
- default
- prefix(github.com/apache/skywalking-banyandb/)
gocritic:
enabled-checks:
- appendCombine
- argOrder
- assignOp
- badCond
- boolExprSimplify
- builtinShadow
- captLocal
- caseOrder
- codegenComment
- commentedOutCode
- commentedOutImport
- defaultCaseOrder
- deprecatedComment
- docStub
- dupArg
- dupBranchBody
- dupCase
- dupSubExpr
- elseif
- emptyFallthrough
- equalFold
- flagDeref
- flagName
- hexLiteral
- indexAlloc
- initClause
- methodExprCall
- nilValReturn
- octalLiteral
- offBy1
- rangeExprCopy
- regexpMust
- sloppyLen
- stringXbytes
- switchTrue
- typeAssertChain
- typeSwitchVar
- typeUnparen
- underef
- unlambda
- unnecessaryBlock
- unslice
- valSwap
- weakCond
godot:
# declarations - for top level declaration comments (default);
# toplevel - for top level comments;
# all - for all comments.
scope: toplevel
staticcheck:
go: "1.20"
checks: ["all", "-ST1000", "-ST1016", "-ST1020", "-ST1021", "-ST1022"]
stylecheck:
go: "1.20"
exhaustive:
check:
- switch
- map
default-signifies-exhaustive: true
ignore-enum-members: ".+UNSPECIFIED$"
exhaustruct:
exclude:
- 'cobra\.Command$'
run:
deadline: 20m
skip-files:
- ".*\\.pb\\.go"
- ".*\\.pb\\.validate\\.go"
- ".*\\.gen\\.go"
issues:
exclude-rules:
- path: _test\.go$|^tests/|^samples/
linters:
- errcheck
- maligned
- linters:
- staticcheck
text: "SA1019: package github.com/golang/protobuf"
max-per-linter: 0
max-same-issues: 0