Skip to content

Update to support golangci-lint v2 #366

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 7, 2025
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
2 changes: 1 addition & 1 deletion .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
go-version: '>=1.21.0'
cache: false
- name: Lint
uses: golangci/golangci-lint-action@55c2c1448f86e01eaae002a5a3a9624417608d84 # v6.5.2
uses: golangci/golangci-lint-action@1481404843c368bc19ca9406f87d6e0fc97bdcfd # v7.0.0
with:
# version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version
version: latest
Expand Down
16 changes: 9 additions & 7 deletions .golangci.yaml
Original file line number Diff line number Diff line change
@@ -1,26 +1,28 @@
version: "2"

run:
timeout: 1m
tests: true

linters:
disable-all: true
enable:
default: none
enable: # please keep this alphabetized
- asasalint
- asciicheck
- copyloopvar
- dupl
- errcheck
- forcetypeassert
- goconst
- gocritic
- gofmt
- goimports
- gosimple
- govet
- ineffassign
- misspell
- musttag
- revive
- staticcheck
- typecheck
- unused

issues:
exclude-use-default: false
max-issues-per-linter: 0
max-same-issues: 10
40 changes: 20 additions & 20 deletions benchmark/benchmark_slog_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,42 +32,42 @@ import (
//

func BenchmarkSlogSinkLogInfoOneArg(b *testing.B) {
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard()))
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard())) //nolint:staticcheck
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason to keep the var log logr.Logger = instead of replacing with log :=?

I don't remember why I wrote it like this other than more clearly showing the type.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the clarity in the benchmark.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably that was why I did it - if only I remembered... 😅

doInfoOneArg(b, log)
}

func BenchmarkSlogSinkLogInfoSeveralArgs(b *testing.B) {
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard()))
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard())) //nolint:staticcheck
doInfoSeveralArgs(b, log)
}

func BenchmarkSlogSinkLogInfoWithValues(b *testing.B) {
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard()))
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard())) //nolint:staticcheck
doInfoWithValues(b, log)
}

func BenchmarkSlogSinkLogV0Info(b *testing.B) {
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard()))
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard())) //nolint:staticcheck
doV0Info(b, log)
}

func BenchmarkSlogSinkLogV9Info(b *testing.B) {
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard()))
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard())) //nolint:staticcheck
doV9Info(b, log)
}

func BenchmarkSlogSinkLogError(b *testing.B) {
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard()))
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard())) //nolint:staticcheck
doError(b, log)
}

func BenchmarkSlogSinkWithValues(b *testing.B) {
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard()))
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard())) //nolint:staticcheck
doWithValues(b, log)
}

func BenchmarkSlogSinkWithName(b *testing.B) {
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard()))
var log logr.Logger = logr.FromSlogHandler(logr.ToSlogHandler(logr.Discard())) //nolint:staticcheck
doWithName(b, log)
}

Expand All @@ -82,61 +82,61 @@ func makeSlogJSONLogger() logr.Logger {
}

func BenchmarkSlogJSONLogInfoOneArg(b *testing.B) {
var log logr.Logger = makeSlogJSONLogger()
var log logr.Logger = makeSlogJSONLogger() //nolint:staticcheck
doInfoOneArg(b, log)
}

func BenchmarkSlogJSONLogInfoSeveralArgs(b *testing.B) {
var log logr.Logger = makeSlogJSONLogger()
var log logr.Logger = makeSlogJSONLogger() //nolint:staticcheck
doInfoSeveralArgs(b, log)
}

func BenchmarkSlogJSONLogInfoWithValues(b *testing.B) {
var log logr.Logger = makeSlogJSONLogger()
var log logr.Logger = makeSlogJSONLogger() //nolint:staticcheck
doInfoWithValues(b, log)
}

func BenchmarkSlogJSONLogV0Info(b *testing.B) {
var log logr.Logger = makeSlogJSONLogger()
var log logr.Logger = makeSlogJSONLogger() //nolint:staticcheck
doV0Info(b, log)
}

func BenchmarkSlogJSONLogV9Info(b *testing.B) {
var log logr.Logger = makeSlogJSONLogger()
var log logr.Logger = makeSlogJSONLogger() //nolint:staticcheck
doV9Info(b, log)
}

func BenchmarkSlogJSONLogError(b *testing.B) {
var log logr.Logger = makeSlogJSONLogger()
var log logr.Logger = makeSlogJSONLogger() //nolint:staticcheck
doError(b, log)
}

func BenchmarkSlogJSONLogWithValues(b *testing.B) {
var log logr.Logger = makeSlogJSONLogger()
var log logr.Logger = makeSlogJSONLogger() //nolint:staticcheck
doWithValues(b, log)
}

func BenchmarkSlogJSONWithName(b *testing.B) {
var log logr.Logger = makeSlogJSONLogger()
var log logr.Logger = makeSlogJSONLogger() //nolint:staticcheck
doWithName(b, log)
}

func BenchmarkSlogJSONWithCallDepth(b *testing.B) {
var log logr.Logger = makeSlogJSONLogger()
var log logr.Logger = makeSlogJSONLogger() //nolint:staticcheck
doWithCallDepth(b, log)
}

func BenchmarkSlogJSONLogInfoStringerValue(b *testing.B) {
var log logr.Logger = makeSlogJSONLogger()
var log logr.Logger = makeSlogJSONLogger() //nolint:staticcheck
doStringerValue(b, log)
}

func BenchmarkSlogJSONLogInfoErrorValue(b *testing.B) {
var log logr.Logger = makeSlogJSONLogger()
var log logr.Logger = makeSlogJSONLogger() //nolint:staticcheck
doErrorValue(b, log)
}

func BenchmarkSlogJSONLogInfoMarshalerValue(b *testing.B) {
var log logr.Logger = makeSlogJSONLogger()
var log logr.Logger = makeSlogJSONLogger() //nolint:staticcheck
doMarshalerValue(b, log)
}
52 changes: 26 additions & 26 deletions benchmark/benchmark_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,42 +146,42 @@ func doMarshalerValue(b *testing.B, log logr.Logger) {
//

func BenchmarkDiscardLogInfoOneArg(b *testing.B) {
var log logr.Logger = logr.Discard()
var log logr.Logger = logr.Discard() //nolint:staticcheck
doInfoOneArg(b, log)
}

func BenchmarkDiscardLogInfoSeveralArgs(b *testing.B) {
var log logr.Logger = logr.Discard()
var log logr.Logger = logr.Discard() //nolint:staticcheck
doInfoSeveralArgs(b, log)
}

func BenchmarkDiscardLogInfoWithValues(b *testing.B) {
var log logr.Logger = logr.Discard()
var log logr.Logger = logr.Discard() //nolint:staticcheck
doInfoWithValues(b, log)
}

func BenchmarkDiscardLogV0Info(b *testing.B) {
var log logr.Logger = logr.Discard()
var log logr.Logger = logr.Discard() //nolint:staticcheck
doV0Info(b, log)
}

func BenchmarkDiscardLogV9Info(b *testing.B) {
var log logr.Logger = logr.Discard()
var log logr.Logger = logr.Discard() //nolint:staticcheck
doV9Info(b, log)
}

func BenchmarkDiscardLogError(b *testing.B) {
var log logr.Logger = logr.Discard()
var log logr.Logger = logr.Discard() //nolint:staticcheck
doError(b, log)
}

func BenchmarkDiscardWithValues(b *testing.B) {
var log logr.Logger = logr.Discard()
var log logr.Logger = logr.Discard() //nolint:staticcheck
doWithValues(b, log)
}

func BenchmarkDiscardWithName(b *testing.B) {
var log logr.Logger = logr.Discard()
var log logr.Logger = logr.Discard() //nolint:staticcheck
doWithName(b, log)
}

Expand All @@ -193,91 +193,91 @@ func noopKV(_, _ string) {}
func noopJSON(_ string) {}

func BenchmarkFuncrLogInfoOneArg(b *testing.B) {
var log logr.Logger = funcr.New(noopKV, funcr.Options{})
var log logr.Logger = funcr.New(noopKV, funcr.Options{}) //nolint:staticcheck
doInfoOneArg(b, log)
}

func BenchmarkFuncrJSONLogInfoOneArg(b *testing.B) {
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{})
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{}) //nolint:staticcheck
doInfoOneArg(b, log)
}

func BenchmarkFuncrLogInfoSeveralArgs(b *testing.B) {
var log logr.Logger = funcr.New(noopKV, funcr.Options{})
var log logr.Logger = funcr.New(noopKV, funcr.Options{}) //nolint:staticcheck
doInfoSeveralArgs(b, log)
}

func BenchmarkFuncrJSONLogInfoSeveralArgs(b *testing.B) {
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{})
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{}) //nolint:staticcheck
doInfoSeveralArgs(b, log)
}

func BenchmarkFuncrLogInfoWithValues(b *testing.B) {
var log logr.Logger = funcr.New(noopKV, funcr.Options{})
var log logr.Logger = funcr.New(noopKV, funcr.Options{}) //nolint:staticcheck
doInfoWithValues(b, log)
}

func BenchmarkFuncrJSONLogInfoWithValues(b *testing.B) {
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{})
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{}) //nolint:staticcheck
doInfoWithValues(b, log)
}

func BenchmarkFuncrLogV0Info(b *testing.B) {
var log logr.Logger = funcr.New(noopKV, funcr.Options{})
var log logr.Logger = funcr.New(noopKV, funcr.Options{}) //nolint:staticcheck
doV0Info(b, log)
}

func BenchmarkFuncrJSONLogV0Info(b *testing.B) {
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{})
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{}) //nolint:staticcheck
doV0Info(b, log)
}

func BenchmarkFuncrLogV9Info(b *testing.B) {
var log logr.Logger = funcr.New(noopKV, funcr.Options{})
var log logr.Logger = funcr.New(noopKV, funcr.Options{}) //nolint:staticcheck
doV9Info(b, log)
}

func BenchmarkFuncrJSONLogV9Info(b *testing.B) {
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{})
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{}) //nolint:staticcheck
doV9Info(b, log)
}

func BenchmarkFuncrLogError(b *testing.B) {
var log logr.Logger = funcr.New(noopKV, funcr.Options{})
var log logr.Logger = funcr.New(noopKV, funcr.Options{}) //nolint:staticcheck
doError(b, log)
}

func BenchmarkFuncrJSONLogError(b *testing.B) {
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{})
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{}) //nolint:staticcheck
doError(b, log)
}

func BenchmarkFuncrWithValues(b *testing.B) {
var log logr.Logger = funcr.New(noopKV, funcr.Options{})
var log logr.Logger = funcr.New(noopKV, funcr.Options{}) //nolint:staticcheck
doWithValues(b, log)
}

func BenchmarkFuncrWithName(b *testing.B) {
var log logr.Logger = funcr.New(noopKV, funcr.Options{})
var log logr.Logger = funcr.New(noopKV, funcr.Options{}) //nolint:staticcheck
doWithName(b, log)
}

func BenchmarkFuncrWithCallDepth(b *testing.B) {
var log logr.Logger = funcr.New(noopKV, funcr.Options{})
var log logr.Logger = funcr.New(noopKV, funcr.Options{}) //nolint:staticcheck
doWithCallDepth(b, log)
}

func BenchmarkFuncrJSONLogInfoStringerValue(b *testing.B) {
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{})
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{}) //nolint:staticcheck
doStringerValue(b, log)
}

func BenchmarkFuncrJSONLogInfoErrorValue(b *testing.B) {
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{})
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{}) //nolint:staticcheck
doErrorValue(b, log)
}

func BenchmarkFuncrJSONLogInfoMarshalerValue(b *testing.B) {
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{})
var log logr.Logger = funcr.NewJSON(noopJSON, funcr.Options{}) //nolint:staticcheck
doMarshalerValue(b, log)
}
22 changes: 13 additions & 9 deletions examples/tab_logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ See the License for the specific language governing permissions and
limitations under the License.
*/

// Package main implements a simple example of a logr.LogSink that logs to
// stderr in a tabular format. It is not intended to be a production logger.
package main

import (
Expand All @@ -36,23 +38,23 @@ var _ logr.LogSink = &tabLogSink{}

// Note that Init usually takes a pointer so it can modify the receiver to save
// runtime info.
func (*tabLogSink) Init(info logr.RuntimeInfo) {
func (*tabLogSink) Init(_ logr.RuntimeInfo) {
}

func (tabLogSink) Enabled(level int) bool {
func (tabLogSink) Enabled(_ int) bool {
return true
}

func (l tabLogSink) Info(level int, msg string, kvs ...any) {
fmt.Fprintf(l.writer, "%s\t%s\t", l.name, msg)
func (l tabLogSink) Info(_ int, msg string, kvs ...any) {
_, _ = fmt.Fprintf(l.writer, "%s\t%s\t", l.name, msg)
for k, v := range l.keyValues {
fmt.Fprintf(l.writer, "%s: %+v ", k, v)
_, _ = fmt.Fprintf(l.writer, "%s: %+v ", k, v)
}
for i := 0; i < len(kvs); i += 2 {
fmt.Fprintf(l.writer, "%s: %+v ", kvs[i], kvs[i+1])
_, _ = fmt.Fprintf(l.writer, "%s: %+v ", kvs[i], kvs[i+1])
}
fmt.Fprintf(l.writer, "\n")
l.writer.Flush()
_, _ = fmt.Fprintf(l.writer, "\n")
_ = l.writer.Flush()
}

func (l tabLogSink) Error(err error, msg string, kvs ...any) {
Expand All @@ -74,7 +76,9 @@ func (l tabLogSink) WithValues(kvs ...any) logr.LogSink {
newMap[k] = v
}
for i := 0; i < len(kvs); i += 2 {
newMap[kvs[i].(string)] = kvs[i+1]
k := kvs[i].(string) //nolint:forcetypeassert
v := kvs[i+1]
newMap[k] = v
}
return &tabLogSink{
name: l.name,
Expand Down
Loading
Loading