Files

210 lines
5.6 KiB
YAML

---
# Linters that should pass for all integration code.
run:
timeout: 3m
linters-settings:
# asciicheck
depguard:
rules:
old-packages:
files:
- $all
deny:
- pkg: golang.org/x/net/context
desc: use `context` package instead
- pkg: golang.org/x/exp/slices
desc: use `slices` package instead
- pkg: golang.org/x/exp/maps
desc: use `maps` package instead
# TODO https://github.com/hanzoai/docdb/issues/4798
# - pkg: go.mongodb.org/mongo-driver/bson
# desc: use `go.mongodb.org/mongo-driver/v2/bson` package instead
# - pkg: go.mongodb.org/mongo-driver/mongo
# desc: use `go.mongodb.org/mongo-driver/v2/mongo` package instead
commonerrors:
files:
- $all
deny:
- pkg: github.com/hanzoai/docdb/v2/internal/handler/commonerrors
exhaustruct:
include:
- TODO
exhaustive:
default-signifies-exhaustive: false
gci:
sections:
- standard
- default
- prefix(github.com/hanzoai/docdb/v2/)
- prefix(github.com/hanzoai/docdb/v2/integration)
goconst:
min-occurrences: 5
ignore-tests: true
godot:
scope: toplevel
exclude:
- check interfaces
capital: true
godox:
keywords:
- BUG
- FIXME
- HACK
- lala
- lalala
goheader:
# Please do not update it, including bumping a year.
template: |-
Copyright 2021 DocDB Inc.
Licensed 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.
goimports:
local-prefixes: github.com/hanzoai/docdb/v2
gomodguard:
blocked:
modules:
- github.com/hanzoai/docdb:
reason: "Use `github.com/hanzoai/docdb/v2/...` instead."
gosimple:
checks: ["all"]
govet:
enable-all: true
disable:
- fieldalignment
- nilness
- shadow
importas:
# https://github.com/julz/importas/issues/15
no-unaliased: true
no-extra-aliases: false
alias:
- pkg: github.com/prometheus/client_model/go
alias: dto
- pkg: github.com/jaswdr/faker
alias: fakerlib
- pkg: github.com/xdg-go/scram
alias: xdgscram
- pkg: go.opentelemetry.io/otel/attribute
alias: otelattribute
- pkg: go.opentelemetry.io/otel/codes
alias: otelcodes
- pkg: go.opentelemetry.io/otel/trace
alias: oteltrace
- pkg: go.opentelemetry.io/otel/sdk/resource
alias: otelsdkresource
- pkg: go.opentelemetry.io/otel/sdk/trace
alias: otelsdktrace
- pkg: go.opentelemetry.io/otel/semconv/v1.34.0
alias: otelsemconv
# ineffassign
lll:
line-length: 175 # TODO reduce it to 130
tab-width: 4
misspell:
ignore-words:
- guiness # present in the test dataset
extra-words: # https://go.dev/wiki/Spelling, https://github.com/golangci/misspell/issues/11
- typo: "iff"
correction: "if"
- typo: "cancelation"
correction: "cancellation"
nolintlint:
allow-unused: false
allow-no-explanation: []
require-explanation: true
require-specific: true
revive:
ignore-generated-header: true
severity: error
rules: []
sloglint:
no-mixed-args: true
kv-only: false
attr-only: true
no-global: "all"
context: "scope"
static-msg: false # TODO https://github.com/hanzoai/docdb/issues/3421
no-raw-keys: false # TODO https://github.com/hanzoai/docdb/issues/3421
key-naming-case: snake
args-on-sep-lines: false
staticcheck:
checks:
- all
- -SA1019 # ignore deprecation errors in existing code; new code is checked by the other configuration
tagalign:
sort: true
order:
- name
- cmd
- arg
- default
- help
unparam:
check-exported: false
unused:
field-writes-are-uses: false
post-statements-are-reads: false
exported-fields-are-used: false
parameters-are-used: true # it should be false, TODO https://github.com/hanzoai/docdb-DocumentDB/issues/823
local-variables-are-used: false
generated-is-used: false
whitespace:
multi-if: false
multi-func: false
linters:
disable-all: true
enable:
- asciicheck
- depguard
- exhaustive
- gci
- gochecksumtype
- goconst
- godot
- godox
- goheader
- goimports
- gomodguard
- gosimple
- govet
- importas
- ineffassign
- lll
- misspell
- nolintlint
- revive
- sloglint
- staticcheck
- tagalign
- unused
- whitespace
issues:
max-issues-per-linter: 0
max-same-issues: 0
exclude-use-default: false
exclude-rules:
# that's a valid usage of bson.D / bson.E
# TODO https://github.com/hanzoai/docdb/issues/4798
- linters: [govet]
text: "\\Qcomposites: go.mongodb.org/mongo-driver/bson/primitive.E struct literal uses unkeyed fields"
- linters: [govet]
text: "\\Qcomposites: go.mongodb.org/mongo-driver/bson.E struct literal uses unkeyed fields"
- linters: [govet]
text: "\\Qcomposites: go.mongodb.org/mongo-driver/v2/bson.E struct literal uses unkeyed fields"