Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
158 changes: 146 additions & 12 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,103 @@
version: "2"
linters:
# Keep this list sorted alphabetically
enable:
- depguard
- errorlint
- exptostd
#- fatcontext
#- gocritic
#- godot
- govet
- loggercheck
- misspell
- nilnesserr
# TODO(bwplotka): Enable once https://github.com/golangci/golangci-lint/issues/3228 is fixed.
# - nolintlint
- perfsprint
- predeclared
- revive
- sloglint
- testifylint
#- unconvert
- unused
#- usestdlibvars
- whitespace
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- third_party$
- builtin$
- examples$
rules:
- linters:
- errcheck
# Taken from the default exclusions in v1.
text: Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*print(f|ln)?|os\.(Un)?Setenv). is not checked
- linters:
- govet
# We use many Seek methods that do not follow the usual pattern.
text: "stdmethods: method Seek.* should have signature Seek"
- linters:
- revive
# We have stopped at some point to write doc comments on exported symbols.
# TODO(beorn7): Maybe we should enforce this again?
text: exported (.+) should have comment( \(or a comment on this block\))? or be unexported
- linters:
- gocritic
text: "appendAssign"
- linters:
- errcheck
path: _test.go
- linters:
- errorlint
path: "tsdb/head_wal.go"
- linters:
- godot
source: "^// ==="
warn-unused: true
settings:
depguard:
rules:
main:
deny:
#- pkg: "sync/atomic"
#desc: "Use go.uber.org/atomic instead of sync/atomic"
- pkg: "github.com/go-kit/kit/log"
desc: "Use github.com/go-kit/log instead of github.com/go-kit/kit/log"
- pkg: "io/ioutil"
desc: "Use corresponding 'os' or 'io' functions instead."
#- pkg: "regexp"
#desc: "Use github.com/grafana/regexp instead of regexp"
- pkg: "github.com/pkg/errors"
desc: "Use 'errors' or 'fmt' instead of github.com/pkg/errors"
- pkg: "gzip"
desc: "Use github.com/klauspost/compress instead of gzip"
- pkg: "zlib"
desc: "Use github.com/klauspost/compress instead of zlib"
- pkg: "golang.org/x/exp/slices"
desc: "Use 'slices' instead."
errcheck:
exclude-functions:
# Don't flag lines such as "io.Copy(io.Discard, resp.Body)".
- io.Copy
# The next two are used in HTTP handlers, any error is handled by the server itself.
- io.WriteString
- (net/http.ResponseWriter).Write
# No need to check for errors on server's shutdown.
- (*net/http.Server).Shutdown
# Never check for rollback errors as Rollback() is called when a previous error was detected.
- (github.com/prometheus/prometheus/storage.Appender).Rollback
govet:
disable:
- shadow
- fieldalignment
enable-all: true
perfsprint:
# Optimizes even if it requires an int or uint type cast.
int-conversion: true
Expand All @@ -19,36 +110,79 @@ linters:
# Optimizes into strings concatenation.
strconcat: false
revive:
# By default, revive will enable only the linting rules that are named in the configuration file.
# So, it's needed to explicitly enable all required rules here.
rules:
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unused-parameter
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md
- name: blank-imports
- name: comment-spacings
- name: context-as-argument
arguments:
# Allow functions with test or bench signatures.
- allowTypesBefore: '*testing.T,testing.TB'
- name: context-keys-type
#- name: dot-imports
#- name: early-return
# arguments:
# - "preserveScope"
# A lot of false positives: incorrectly identifies channel draining as "empty code block".
# See https://github.com/mgechev/revive/issues/386
- name: empty-block
disabled: true
- name: error-naming
- name: error-return
- name: error-strings
- name: errorf
#- name: exported
#- name: increment-decrement
#- name: indent-error-flow
# arguments:
# - "preserveScope"
- name: package-comments
# TODO(beorn7): Currently, we have a lot of missing package doc comments. Maybe we should have them.
disabled: true
- name: range
#- name: receiver-naming
- name: redefines-builtin-id
- name: superfluous-else
arguments:
- "preserveScope"
- name: time-naming
#- name: unexported-return
- name: unreachable-code
- name: unused-parameter
severity: warning
disabled: true
#- name: unused-receiver
#- name: var-declaration
#- name: var-naming
testifylint:
enable-all: true
disable:
- float-compare
- go-require
formatter:
require-f-funcs: true
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- third_party$
- builtin$
- examples$
issues:
max-issues-per-linter: 0
max-same-issues: 0
output:
show-stats: false
run:
timeout: 15m
formatters:
enable:
- gci
- gofumpt
- goimports
settings:
gci:
sections:
- standard
- default
- prefix(github.com/prometheus/common)
gofumpt:
extra-rules: true
goimports:
local-prefixes:
- github.com/prometheus/common
Expand Down
3 changes: 1 addition & 2 deletions expfmt/bench_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,9 @@ import (
"os"
"testing"

"google.golang.org/protobuf/encoding/protodelim"

dto "github.com/prometheus/client_model/go"
"github.com/stretchr/testify/require"
"google.golang.org/protobuf/encoding/protodelim"

"github.com/prometheus/common/model"
)
Expand Down
6 changes: 2 additions & 4 deletions expfmt/encode.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,12 @@ import (
"io"
"net/http"

"github.com/munnerz/goautoneg"
dto "github.com/prometheus/client_model/go"
"google.golang.org/protobuf/encoding/protodelim"
"google.golang.org/protobuf/encoding/prototext"

"github.com/prometheus/common/model"

"github.com/munnerz/goautoneg"

dto "github.com/prometheus/client_model/go"
)

// Encoder types encode metric families into an underlying wire protocol.
Expand Down
3 changes: 1 addition & 2 deletions expfmt/encode_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,12 @@ import (
"net/http"
"testing"

dto "github.com/prometheus/client_model/go"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"google.golang.org/protobuf/proto"

"github.com/prometheus/common/model"

dto "github.com/prometheus/client_model/go"
)

func TestNegotiate(t *testing.T) {
Expand Down
4 changes: 2 additions & 2 deletions expfmt/expfmt_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ package expfmt
import (
"testing"

"github.com/prometheus/common/model"

"github.com/stretchr/testify/require"

"github.com/prometheus/common/model"
)

// Test Format to Escapting Scheme conversion
Expand Down
3 changes: 1 addition & 2 deletions expfmt/openmetrics_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,10 @@ import (
"strconv"
"strings"

dto "github.com/prometheus/client_model/go"
"google.golang.org/protobuf/types/known/timestamppb"

"github.com/prometheus/common/model"

dto "github.com/prometheus/client_model/go"
)

type encoderOption struct {
Expand Down
5 changes: 2 additions & 3 deletions expfmt/openmetrics_create_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,10 @@ import (
"testing"
"time"

"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/timestamppb"

dto "github.com/prometheus/client_model/go"
"github.com/stretchr/testify/require"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/timestamppb"

"github.com/prometheus/common/model"
)
Expand Down
4 changes: 2 additions & 2 deletions expfmt/text_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ import (
"strings"
"sync"

"github.com/prometheus/common/model"

dto "github.com/prometheus/client_model/go"

"github.com/prometheus/common/model"
)

// enhancedWriter has all the enhanced write functions needed here. bufio.Writer
Expand Down
3 changes: 1 addition & 2 deletions expfmt/text_create_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,9 @@ import (
"strings"
"testing"

"google.golang.org/protobuf/proto"

dto "github.com/prometheus/client_model/go"
"github.com/stretchr/testify/require"
"google.golang.org/protobuf/proto"

"github.com/prometheus/common/model"
)
Expand Down
Loading