ldez / golangci-lint-bench

1 stars 0 forks source link

benchmark: PR 4836 (staticcheck) #8

Closed ldez closed 4 months ago

ldez commented 4 months ago

{ "pr": 4836, "linter": "staticcheck", "version": "v1.59.1" }

github-actions[bot] commented 4 months ago

Benchmark PR (updated linter) Something went wrong!

Details: https://github.com/ldez/golangci-lint-bench/actions/runs/9619579958

github-actions[bot] commented 4 months ago

The benchmark is done!

beego/beego

``` server/web/router_test.go:756:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(w.Body.String()) ^ server/web/router_test.go:1024:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(fmt.Sprintf("TestRouterAddRouterMethodPanicInvalidMethod failed: %v", err)) ^ server/web/router_test.go:1042:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(fmt.Sprintf("TestRouterAddRouterMethodPanicNotAMethod failed: %v", err)) ^ client/orm/do_nothing_orm_test.go:25:30: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) err := o.DoTxWithCtxAndOpts(nil, nil, nil) ^ client/orm/do_nothing_orm_test.go:28:22: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) err = o.DoTxWithCtx(nil, nil) ^ client/orm/do_nothing_orm_test.go:40:30: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) assert.Nil(t, o.ReadWithCtx(nil, nil)) ^ client/httplib/mock/mock_test.go:70:9: SA1019: httplib.Get("http://localhost:7777/abc").DoRequestWithCtx is deprecated: please use NewBeegoRequestWithContext (staticcheck) return httplib.Get("http://localhost:7777/abc").DoRequestWithCtx(ctx) ^ client/httplib/httpclient_test.go:231:31: SA1026: trying to marshal unsupported type func() (io.ReadCloser, error), via x.Resp.Request.GetBody (staticcheck) jsonStr, err := json.Marshal(input) ^ client/httplib/httpclient_test.go:259:31: SA1026: trying to marshal unsupported type func() (io.ReadCloser, error), via x.Resp.Request.GetBody (staticcheck) jsonStr, err := json.Marshal(input) ^ client/httplib/httpclient_test.go:124:27: SA1026: trying to marshal unsupported type func() (io.ReadCloser, error), via x.Resp.Request.GetBody (staticcheck) data, _ := json.Marshal(ssr) ^ core/config/etcd/config_test.go:114:25: SA1026: trying to marshal unsupported type func() time.Time, via x.TLS.Time (staticcheck) cfg, _ := json.Marshal(obj) ^ server/web/admin_controller.go:58:33: SA1026: trying to marshal unsupported type map[interface{}]interface{} (staticcheck) dataJSON, err := json.Marshal(data) ^ server/web/config_test.go:53:24: SA1026: trying to marshal unsupported type func(*github.com/beego/beego/v2/server/web/context.Context, *Config), via x.RecoverFunc (staticcheck) bs, _ := json.Marshal(newBConfig()) ^ client/httplib/mock/mock.go:48:32: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) return context.WithValue(ctx, mockCtxKey, mock) ^ client/orm/filter_orm_decorator_test.go:81:49: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) ctx := context.WithValue(context.Background(), TxNameKey, "Commit_tx") ^ client/orm/filter_orm_decorator_test.go:89:48: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) ctx = context.WithValue(context.Background(), TxNameKey, "Rollback_tx") ^ client/httplib/httplib_test.go:283:2: SA4006: this value of `err` is never used (staticcheck) b, err := os.ReadFile(f) ^ server/web/controller.go:676:27: SA6002: argument should be pointer-like to avoid allocations (staticcheck) defer copyBufferPool.Put(buf) ^ core/validation/util_test.go:94:2: SA9003: empty branch (staticcheck) if err != nil { ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 10.555 ± 0.046 10.482 10.631 1.03 ± 0.01
v1.59.1 10.254 ± 0.085 10.120 10.425 1.00

cilium/cilium

``` operator/cmd/flags.go:138:11: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return fmt.Errorf(errMsg) ^ pkg/alibabacloud/eni/node.go:99:38: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return 0, unableToDetermineLimits, fmt.Errorf(errUnableToDetermineLimits) ^ pkg/alibabacloud/eni/node.go:192:22: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return nil, stats, fmt.Errorf(errUnableToDetermineLimits) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 122.343 ± 0.435 121.588 122.909 1.03 ± 0.01
v1.59.1 119.196 ± 0.638 118.513 120.311 1.00

spf13/cobra

``` ```
Command Mean [s] Min [s] Max [s] Relative
local 2.077 ± 0.060 2.043 2.244 1.04 ± 0.04
v1.59.1 1.994 ± 0.041 1.920 2.078 1.00

hashicorp/consul

``` agent/agent_endpoint_test.go:7370:11: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) ch <- fmt.Errorf(resp.Body.String()) ^ agent/agent_endpoint_test.go:7506:11: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) ch <- fmt.Errorf(resp.Body.String()) ^ agent/config_endpoint_test.go:326:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(resp.Body.String()) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 87.743 ± 0.204 87.470 88.091 1.04 ± 0.01
v1.59.1 84.398 ± 0.604 83.836 85.777 1.00

go-delve/delve

``` pkg/proc/dump.go:263:41: SA1003: value of type bool cannot be used with binary.Write (staticcheck) binary.Write(buf, binary.LittleEndian, hasGaddr) ^ pkg/proc/proc_test.go:4820:2: SA3001: should not assign to b.N (staticcheck) b.N = 1 ^ pkg/proc/proc_test.go:519:2: SA4006: this value of `f` is never used (staticcheck) f, ln := currentLineNumber(p, t) ^ pkg/proc/proc_test.go:2645:4: SA4006: this value of `f` is never used (staticcheck) f, ln = assertLineNumber(p, t, 13, "Step did not step into function call") ^ service/test/integration2_test.go:3145:3: SA4006: this value of `err` is never used (staticcheck) _, err := c.CreateBreakpoint(&api.Breakpoint{File: fp, Line: 19}) ^ pkg/proc/scope_test.go:98:30: SA5011: possible nil pointer dereference (staticcheck) for i := range scopeCheck.varChecks { ^ pkg/proc/scope_test.go:92:7: SA5011(related information): this check suggests that the pointer can be nil (staticcheck) if scopeCheck == nil { ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 7.792 ± 0.034 7.737 7.849 1.03 ± 0.01
v1.59.1 7.543 ± 0.075 7.428 7.703 1.00

etcd-io/etcd

``` ```
Command Mean [s] Min [s] Max [s] Relative
local 10.295 ± 0.046 10.241 10.388 1.03 ± 0.01
v1.59.1 9.982 ± 0.079 9.873 10.137 1.00

go-gitea/gitea

``` modules/cache/context.go:112:32: SA1029: should not use empty anonymous struct as key for value; define your own type to avoid collisions (staticcheck) return context.WithValue(ctx, cacheContextKey, &cacheContext{ ^ routers/api/v1/repo/pull.go:753:7: SA1032: arguments have the wrong order (staticcheck) if errors.Is(pull_service.ErrUserHasNoPermissionForAction, err) { ^ routers/web/repo/pull.go:1600:6: SA1032: arguments have the wrong order (staticcheck) if errors.Is(pull_service.ErrUserHasNoPermissionForAction, err) { ^ routers/web/repo/view.go:741:23: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) ctx.NotFound("Home", fmt.Errorf(ctx.Locale.TrString("units.error.no_unit_allowed_repo"))) ^ services/actions/notifier_helper.go:46:32: SA1029: should not use empty anonymous struct as key for value; define your own type to avoid collisions (staticcheck) return context.WithValue(ctx, methodCtxKey, method) ^ services/automerge/automerge.go:279:6: SA1032: arguments have the wrong order (staticcheck) if errors.Is(pull_service.ErrUserNotAllowedToMerge, err) { ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 65.304 ± 0.778 64.340 66.557 1.08 ± 0.02
v1.59.1 60.398 ± 0.439 59.951 61.077 1.00

google/go-github

``` ```
Command Mean [s] Min [s] Max [s] Relative
local 6.529 ± 0.064 6.422 6.633 1.06 ± 0.02
v1.59.1 6.176 ± 0.077 6.063 6.264 1.00

golangci/golangci-lint

``` ```
Command Mean [s] Min [s] Max [s] Relative
local 16.110 ± 0.089 16.008 16.273 1.06 ± 0.02
v1.59.1 15.250 ± 0.219 15.094 15.829 1.00

goreleaser/goreleaser

``` internal/pipe/blob/blob_test.go:31:38: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) require.EqualError(t, handleError(fmt.Errorf(k), "someurl"), v) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 28.635 ± 0.111 28.449 28.884 1.09 ± 0.01
v1.59.1 26.379 ± 0.134 26.203 26.621 1.00

grpc/grpc-go

``` internal/transport/transport_test.go:1730:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ test/bufconn/bufconn_test.go:80:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ test/bufconn/bufconn_test.go:100:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ balancer/pickfirst/pickfirst.go:169:3: SA1019: b.cc.UpdateAddresses is deprecated: this method will be removed. Create new SubConns for new addresses instead. (staticcheck) b.cc.UpdateAddresses(b.subConn, addrs) ^ balancer/pickfirst/pickfirst.go:174:18: SA1019: b.cc.NewSubConn is deprecated: please be aware that in a future version, SubConns will only support one address per SubConn. (staticcheck) subConn, err := b.cc.NewSubConn(addrs, balancer.NewSubConnOptions{ ^ admin/test/utils.go:71:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(lis.Addr().String(), grpc.WithTransportCredentials(insecure.NewCredentials())) ^ benchmark/benchmark.go:344:15: SA1019: grpc.DialContext is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.DialContext(ctx, addr, opts...) ^ benchmark/benchmain/main.go:295:4: SA1019: grpc.RPCCompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCCompressor(nopCompressor{}), ^ benchmark/benchmain/main.go:296:4: SA1019: grpc.RPCDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCDecompressor(nopDecompressor{}), ^ benchmark/benchmain/main.go:299:4: SA1019: grpc.WithCompressor is deprecated: use UseCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithCompressor(nopCompressor{}), ^ benchmark/benchmain/main.go:300:4: SA1019: grpc.WithDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithDecompressor(nopDecompressor{}), ^ benchmark/benchmain/main.go:305:4: SA1019: grpc.RPCCompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCCompressor(grpc.NewGZIPCompressor()), ^ benchmark/benchmain/main.go:306:4: SA1019: grpc.RPCDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCDecompressor(grpc.NewGZIPDecompressor()), ^ benchmark/benchmain/main.go:309:4: SA1019: grpc.WithCompressor is deprecated: use UseCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithCompressor(grpc.NewGZIPCompressor()), ^ benchmark/benchmain/main.go:310:4: SA1019: grpc.WithDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithDecompressor(grpc.NewGZIPDecompressor()), ^ benchmark/client/main.go:141:4: SA1019: grpc.WithBlock is deprecated: this DialOption is not supported by NewClient. Will be supported throughout 1.x. (staticcheck) grpc.WithBlock(), ^ benchmark/worker/benchmark_client.go:150:52: SA1019: grpc.CallCustomCodec is deprecated: use ForceCodec instead. (staticcheck) opts = append(opts, grpc.WithDefaultCallOptions(grpc.CallCustomCodec(byteBufCodec{}))) ^ benchmark/worker/benchmark_server.go:128:24: SA1019: grpc.CustomCodec is deprecated: register codecs using encoding.RegisterCodec. The server will automatically use registered codecs based on the incoming requests' headers. See also https://github.com/grpc/grpc-go/blob/master/Documentation/encoding.md#using-a-codec. Will be supported throughout 1.x. (staticcheck) opts = append(opts, grpc.CustomCodec(byteBufCodec{})) ^ internal/stubserver/stubserver.go:195:13: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) cc, err := grpc.Dial(ss.Target, opts...) ^ interop/orcalb.go:59:3: SA1019: o.sc.UpdateAddresses is deprecated: this method will be removed. Create new SubConns for new addresses instead. (staticcheck) o.sc.UpdateAddresses(s.ResolverState.Addresses) ^ interop/orcalb.go:68:14: SA1019: o.cc.NewSubConn is deprecated: please be aware that in a future version, SubConns will only support one address per SubConn. (staticcheck) o.sc, err = o.cc.NewSubConn(s.ResolverState.Addresses, balancer.NewSubConnOptions{StateListener: o.updateSubConnState}) ^ interop/test_utils.go:692:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err = grpc.Dial(serverAddr, dopts...) ^ reflection/internal/internal.go:251:72: SA1019: v1alphareflectionpb.ServerReflectionResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1ToV1AlphaResponse(v1 *v1reflectionpb.ServerReflectionResponse) *v1alphareflectionpb.ServerReflectionResponse { ^ reflection/internal/internal.go:252:14: SA1019: v1alphareflectionpb.ServerReflectionResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) var v1alpha v1alphareflectionpb.ServerReflectionResponse ^ reflection/internal/internal.go:253:2: SA1019: v1alpha.ValidHost is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1alpha.ValidHost = v1.ValidHost ^ reflection/internal/internal.go:255:3: SA1019: v1alpha.OriginalRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1alpha.OriginalRequest = V1ToV1AlphaRequest(v1.OriginalRequest) ^ reflection/internal/internal.go:261:30: SA1019: v1alphareflectionpb.FileDescriptorResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileDescriptorResponse: &v1alphareflectionpb.FileDescriptorResponse{ ^ reflection/internal/internal.go:269:35: SA1019: v1alphareflectionpb.ExtensionNumberResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) AllExtensionNumbersResponse: &v1alphareflectionpb.ExtensionNumberResponse{ ^ reflection/internal/internal.go:277:20: SA1019: v1alphareflectionpb.ServiceResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) svcs := make([]*v1alphareflectionpb.ServiceResponse, len(mr.ListServicesResponse.GetService())) ^ reflection/internal/internal.go:279:16: SA1019: v1alphareflectionpb.ServiceResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) svcs[i] = &v1alphareflectionpb.ServiceResponse{ ^ reflection/internal/internal.go:284:28: SA1019: v1alphareflectionpb.ListServiceResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ListServicesResponse: &v1alphareflectionpb.ListServiceResponse{ ^ reflection/internal/internal.go:292:21: SA1019: v1alphareflectionpb.ErrorResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ErrorResponse: &v1alphareflectionpb.ErrorResponse{ ^ reflection/internal/internal.go:305:34: SA1019: v1alphareflectionpb.ServerReflectionRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1AlphaToV1Request(v1alpha *v1alphareflectionpb.ServerReflectionRequest) *v1reflectionpb.ServerReflectionRequest { ^ reflection/internal/internal.go:307:12: SA1019: v1alpha.Host is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1.Host = v1alpha.Host ^ reflection/internal/internal.go:311:20: SA1019: mr.FileByFilename is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileByFilename: mr.FileByFilename, ^ reflection/internal/internal.go:315:26: SA1019: mr.FileContainingSymbol is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileContainingSymbol: mr.FileContainingSymbol, ^ reflection/internal/internal.go:318:6: SA1019: mr.FileContainingExtension is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) if mr.FileContainingExtension != nil { ^ reflection/internal/internal.go:321:23: SA1019: mr.FileContainingExtension.GetContainingType is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ContainingType: mr.FileContainingExtension.GetContainingType(), ^ reflection/internal/internal.go:322:23: SA1019: mr.FileContainingExtension.GetExtensionNumber is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ExtensionNumber: mr.FileContainingExtension.GetExtensionNumber(), ^ reflection/internal/internal.go:328:31: SA1019: mr.AllExtensionNumbersOfType is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) AllExtensionNumbersOfType: mr.AllExtensionNumbersOfType, ^ reflection/internal/internal.go:332:18: SA1019: mr.ListServices is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ListServices: mr.ListServices, ^ reflection/internal/internal.go:341:70: SA1019: v1alphareflectionpb.ServerReflectionRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1ToV1AlphaRequest(v1 *v1reflectionpb.ServerReflectionRequest) *v1alphareflectionpb.ServerReflectionRequest { ^ reflection/internal/internal.go:342:14: SA1019: v1alphareflectionpb.ServerReflectionRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) var v1alpha v1alphareflectionpb.ServerReflectionRequest ^ reflection/internal/internal.go:343:2: SA1019: v1alpha.Host is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1alpha.Host = v1.Host ^ reflection/internal/internal.go:360:31: SA1019: v1alphareflectionpb.ExtensionRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileContainingExtension: &v1alphareflectionpb.ExtensionRequest{ ^ reflection/internal/internal.go:385:35: SA1019: v1alphareflectionpb.ServerReflectionResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1AlphaToV1Response(v1alpha *v1alphareflectionpb.ServerReflectionResponse) *v1reflectionpb.ServerReflectionResponse { ^ reflection/internal/internal.go:387:17: SA1019: v1alpha.ValidHost is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1.ValidHost = v1alpha.ValidHost ^ reflection/internal/internal.go:388:5: SA1019: v1alpha.OriginalRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) if v1alpha.OriginalRequest != nil { ^ reflection/internal/internal.go:389:43: SA1019: v1alpha.OriginalRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1.OriginalRequest = V1AlphaToV1Request(v1alpha.OriginalRequest) ^ reflection/internal/internal.go:396:27: SA1019: mr.FileDescriptorResponse.GetFileDescriptorProto is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileDescriptorProto: mr.FileDescriptorResponse.GetFileDescriptorProto(), ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 18.372 ± 0.120 18.155 18.607 1.05 ± 0.01
v1.59.1 17.438 ± 0.187 17.237 17.777 1.00

gohugoio/hugo

``` modules/config.go:101:11: SA1019: dirs.DataDir is deprecated: Use module mounts. The data source directory. (staticcheck) dir = dirs.DataDir ^ modules/config.go:104:11: SA1019: dirs.LayoutDir is deprecated: Use module mounts. The layout source directory. (staticcheck) dir = dirs.LayoutDir ^ modules/config.go:107:11: SA1019: dirs.I18nDir is deprecated: Use module mounts. The i18n source directory. (staticcheck) dir = dirs.I18nDir ^ modules/config.go:110:11: SA1019: dirs.ArcheTypeDir is deprecated: Use module mounts. The archetypes source directory. (staticcheck) dir = dirs.ArcheTypeDir ^ modules/config.go:113:11: SA1019: dirs.AssetDir is deprecated: Use module mounts. The assets source directory. (staticcheck) dir = dirs.AssetDir ^ tpl/internal/go_templates/texttemplate/exec_test.go:1756:2: SA4006: this value of `err` is never used (staticcheck) tmpl, err = New("").Parse(textCall) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 63.213 ± 0.292 62.857 63.588 1.04 ± 0.01
v1.59.1 60.727 ± 0.294 60.353 61.422 1.00

go-acme/lego

``` ```
Command Mean [s] Min [s] Max [s] Relative
local 38.986 ± 0.117 38.827 39.152 1.05 ± 0.01
v1.59.1 37.024 ± 0.225 36.848 37.516 1.00

pact-foundation/pact-go

``` installer/installer.go:472:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) log.Fatalf(err.Error()) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 5.680 ± 0.035 5.619 5.733 1.05 ± 0.01
v1.59.1 5.404 ± 0.062 5.304 5.502 1.00

rclone/rclone

``` cmd/cmd.go:122:4: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) log.Fatalf(err.Error()) ^ cmd/bisync/operations.go:572:9: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) err = fmt.Errorf(Color(terminal.RedFg, "Overlapping paths detected. Cannot bisync between paths that overlap, unless excluded by filters.")) ^ cmd/mount/mount.go:72:5: SA4032: due to the file's build constraints, runtime.GOOS will never equal "darwin" (staticcheck) if runtime.GOOS == "darwin" { ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 32.572 ± 0.742 31.747 33.649 1.12 ± 0.03
v1.59.1 29.212 ± 0.281 28.756 29.816 1.00

hashicorp/terraform

``` internal/addrs/output_value_test.go:118:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(problem) ^ internal/addrs/parse_ref_test.go:162:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(problem) ^ internal/addrs/parse_ref_test.go:953:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(problem) ^ internal/cloud/tfe_client_mock.go:521:80: SA1019: tfe.DataRetentionPolicy is deprecated: Use DataRetentionPolicyDeleteOlder instead. This is the original representation of a data retention policy, only present in TFE v202311-1 and v202312-1 (staticcheck) func (m *MockOrganizations) ReadDataRetentionPolicy(context.Context, string) (*tfe.DataRetentionPolicy, error) { ^ internal/cloud/tfe_client_mock.go:525:102: SA1019: tfe.DataRetentionPolicySetOptions is deprecated: Use DataRetentionPolicyDeleteOlder variations instead (staticcheck) func (m *MockOrganizations) SetDataRetentionPolicy(ctx context.Context, organization string, options tfe.DataRetentionPolicySetOptions) (*tfe.DataRetentionPolicy, error) { ^ internal/cloud/tfe_client_mock.go:2309:93: SA1019: tfe.DataRetentionPolicy is deprecated: Use DataRetentionPolicyDeleteOlder instead. This is the original representation of a data retention policy, only present in TFE v202311-1 and v202312-1 (staticcheck) func (s *MockWorkspaces) ReadDataRetentionPolicy(ctx context.Context, workspaceID string) (*tfe.DataRetentionPolicy, error) { ^ internal/cloud/tfe_client_mock.go:2313:98: SA1019: tfe.DataRetentionPolicySetOptions is deprecated: Use DataRetentionPolicyDeleteOlder variations instead (staticcheck) func (s *MockWorkspaces) SetDataRetentionPolicy(ctx context.Context, workspaceID string, options tfe.DataRetentionPolicySetOptions) (*tfe.DataRetentionPolicy, error) { ^ internal/rpcapi/grpc_testing.go:34:25: SA1019: otelgrpc.UnaryServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.UnaryInterceptor(otelgrpc.UnaryServerInterceptor()), ^ internal/rpcapi/grpc_testing.go:35:26: SA1019: otelgrpc.StreamServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.StreamInterceptor(otelgrpc.StreamServerInterceptor()), ^ internal/rpcapi/grpc_testing.go:56:3: SA1019: grpc.WithInsecure is deprecated: use WithTransportCredentials and insecure.NewCredentials() instead. Will be supported throughout 1.x. (staticcheck) grpc.WithInsecure(), ^ internal/rpcapi/grpc_testing.go:57:29: SA1019: otelgrpc.UnaryClientInterceptor is deprecated: Use [NewClientHandler] instead. (staticcheck) grpc.WithUnaryInterceptor(otelgrpc.UnaryClientInterceptor()), ^ internal/rpcapi/grpc_testing.go:58:30: SA1019: otelgrpc.StreamClientInterceptor is deprecated: Use [NewClientHandler] instead. (staticcheck) grpc.WithStreamInterceptor(otelgrpc.StreamClientInterceptor()), ^ internal/rpcapi/server.go:42:27: SA1019: otelgrpc.UnaryServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.UnaryInterceptor(otelgrpc.UnaryServerInterceptor()), ^ internal/rpcapi/server.go:43:28: SA1019: otelgrpc.StreamServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.StreamInterceptor(otelgrpc.StreamServerInterceptor()), ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 41.141 ± 0.351 40.481 41.669 1.05 ± 0.01
v1.59.1 39.074 ± 0.215 38.740 39.356 1.00

traefik/traefik

``` ```
Command Mean [s] Min [s] Max [s] Relative
local 90.848 ± 0.475 90.281 92.015 1.08 ± 0.01
v1.59.1 84.503 ± 0.310 84.012 85.096 1.00

You can find the workflow here: https://github.com/ldez/golangci-lint-bench/actions/runs/9619847764

github-actions[bot] commented 4 months ago

The benchmark is done!

beego/beego

``` server/web/router_test.go:756:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(w.Body.String()) ^ server/web/router_test.go:1024:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(fmt.Sprintf("TestRouterAddRouterMethodPanicInvalidMethod failed: %v", err)) ^ server/web/router_test.go:1042:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(fmt.Sprintf("TestRouterAddRouterMethodPanicNotAMethod failed: %v", err)) ^ client/orm/do_nothing_orm_test.go:25:30: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) err := o.DoTxWithCtxAndOpts(nil, nil, nil) ^ client/orm/do_nothing_orm_test.go:28:22: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) err = o.DoTxWithCtx(nil, nil) ^ client/orm/do_nothing_orm_test.go:40:30: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) assert.Nil(t, o.ReadWithCtx(nil, nil)) ^ client/httplib/mock/mock_test.go:70:9: SA1019: httplib.Get("http://localhost:7777/abc").DoRequestWithCtx is deprecated: please use NewBeegoRequestWithContext (staticcheck) return httplib.Get("http://localhost:7777/abc").DoRequestWithCtx(ctx) ^ client/httplib/httpclient_test.go:231:31: SA1026: trying to marshal unsupported type func() (io.ReadCloser, error), via x.Resp.Request.GetBody (staticcheck) jsonStr, err := json.Marshal(input) ^ client/httplib/httpclient_test.go:259:31: SA1026: trying to marshal unsupported type func() (io.ReadCloser, error), via x.Resp.Request.GetBody (staticcheck) jsonStr, err := json.Marshal(input) ^ client/httplib/httpclient_test.go:124:27: SA1026: trying to marshal unsupported type func() (io.ReadCloser, error), via x.Resp.Request.GetBody (staticcheck) data, _ := json.Marshal(ssr) ^ core/config/etcd/config_test.go:114:25: SA1026: trying to marshal unsupported type func() time.Time, via x.TLS.Time (staticcheck) cfg, _ := json.Marshal(obj) ^ server/web/admin_controller.go:58:33: SA1026: trying to marshal unsupported type map[interface{}]interface{} (staticcheck) dataJSON, err := json.Marshal(data) ^ server/web/config_test.go:53:24: SA1026: trying to marshal unsupported type func(*github.com/beego/beego/v2/server/web/context.Context, *Config), via x.RecoverFunc (staticcheck) bs, _ := json.Marshal(newBConfig()) ^ client/httplib/mock/mock.go:48:32: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) return context.WithValue(ctx, mockCtxKey, mock) ^ client/orm/filter_orm_decorator_test.go:81:49: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) ctx := context.WithValue(context.Background(), TxNameKey, "Commit_tx") ^ client/orm/filter_orm_decorator_test.go:89:48: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) ctx = context.WithValue(context.Background(), TxNameKey, "Rollback_tx") ^ client/httplib/httplib_test.go:283:2: SA4006: this value of `err` is never used (staticcheck) b, err := os.ReadFile(f) ^ server/web/controller.go:676:27: SA6002: argument should be pointer-like to avoid allocations (staticcheck) defer copyBufferPool.Put(buf) ^ core/validation/util_test.go:94:2: SA9003: empty branch (staticcheck) if err != nil { ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 10.592 ± 0.077 10.431 10.690 1.04 ± 0.01
v1.59.1 10.200 ± 0.042 10.128 10.258 1.00

cilium/cilium

``` operator/cmd/flags.go:138:11: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return fmt.Errorf(errMsg) ^ pkg/alibabacloud/eni/node.go:99:38: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return 0, unableToDetermineLimits, fmt.Errorf(errUnableToDetermineLimits) ^ pkg/alibabacloud/eni/node.go:192:22: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return nil, stats, fmt.Errorf(errUnableToDetermineLimits) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 116.472 ± 0.875 115.168 117.857 1.02 ± 0.01
v1.59.1 113.979 ± 1.347 112.467 116.421 1.00

spf13/cobra

``` ```
Command Mean [s] Min [s] Max [s] Relative
local 2.071 ± 0.030 2.035 2.137 1.05 ± 0.03
v1.59.1 1.973 ± 0.058 1.927 2.120 1.00

hashicorp/consul

``` agent/agent_endpoint_test.go:7370:11: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) ch <- fmt.Errorf(resp.Body.String()) ^ agent/agent_endpoint_test.go:7506:11: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) ch <- fmt.Errorf(resp.Body.String()) ^ agent/config_endpoint_test.go:326:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(resp.Body.String()) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 88.474 ± 0.340 87.925 89.100 1.03 ± 0.01
v1.59.1 85.684 ± 0.465 85.176 86.585 1.00

go-delve/delve

``` pkg/proc/dump.go:263:41: SA1003: value of type bool cannot be used with binary.Write (staticcheck) binary.Write(buf, binary.LittleEndian, hasGaddr) ^ pkg/proc/proc_test.go:4820:2: SA3001: should not assign to b.N (staticcheck) b.N = 1 ^ pkg/proc/proc_test.go:519:2: SA4006: this value of `f` is never used (staticcheck) f, ln := currentLineNumber(p, t) ^ pkg/proc/proc_test.go:2645:4: SA4006: this value of `f` is never used (staticcheck) f, ln = assertLineNumber(p, t, 13, "Step did not step into function call") ^ service/test/integration2_test.go:3145:3: SA4006: this value of `err` is never used (staticcheck) _, err := c.CreateBreakpoint(&api.Breakpoint{File: fp, Line: 19}) ^ pkg/proc/scope_test.go:98:30: SA5011: possible nil pointer dereference (staticcheck) for i := range scopeCheck.varChecks { ^ pkg/proc/scope_test.go:92:7: SA5011(related information): this check suggests that the pointer can be nil (staticcheck) if scopeCheck == nil { ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 7.827 ± 0.045 7.768 7.915 1.04 ± 0.01
v1.59.1 7.541 ± 0.068 7.480 7.720 1.00

etcd-io/etcd

``` ```
Command Mean [s] Min [s] Max [s] Relative
local 10.447 ± 0.083 10.351 10.654 1.04 ± 0.01
v1.59.1 10.034 ± 0.072 9.949 10.151 1.00

go-gitea/gitea

``` modules/cache/context.go:112:32: SA1029: should not use empty anonymous struct as key for value; define your own type to avoid collisions (staticcheck) return context.WithValue(ctx, cacheContextKey, &cacheContext{ ^ routers/api/v1/repo/pull.go:753:7: SA1032: arguments have the wrong order (staticcheck) if errors.Is(pull_service.ErrUserHasNoPermissionForAction, err) { ^ routers/web/repo/pull.go:1600:6: SA1032: arguments have the wrong order (staticcheck) if errors.Is(pull_service.ErrUserHasNoPermissionForAction, err) { ^ routers/web/repo/view.go:741:23: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) ctx.NotFound("Home", fmt.Errorf(ctx.Locale.TrString("units.error.no_unit_allowed_repo"))) ^ services/actions/notifier_helper.go:46:32: SA1029: should not use empty anonymous struct as key for value; define your own type to avoid collisions (staticcheck) return context.WithValue(ctx, methodCtxKey, method) ^ services/automerge/automerge.go:279:6: SA1032: arguments have the wrong order (staticcheck) if errors.Is(pull_service.ErrUserNotAllowedToMerge, err) { ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 64.486 ± 0.520 63.591 65.409 1.07 ± 0.01
v1.59.1 60.295 ± 0.349 59.854 60.800 1.00

google/go-github

``` ```
Command Mean [s] Min [s] Max [s] Relative
local 8.381 ± 0.177 8.005 8.700 1.03 ± 0.05
v1.59.1 8.169 ± 0.315 7.769 8.723 1.00

golangci/golangci-lint

``` ```
Command Mean [s] Min [s] Max [s] Relative
local 16.460 ± 0.056 16.356 16.565 1.06 ± 0.01
v1.59.1 15.471 ± 0.065 15.366 15.564 1.00

goreleaser/goreleaser

``` internal/pipe/blob/blob_test.go:31:38: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) require.EqualError(t, handleError(fmt.Errorf(k), "someurl"), v) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 38.168 ± 0.865 37.203 40.099 1.17 ± 0.03
v1.59.1 32.486 ± 0.406 31.797 32.970 1.00

grpc/grpc-go

``` internal/transport/transport_test.go:1730:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ test/bufconn/bufconn_test.go:80:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ test/bufconn/bufconn_test.go:100:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ balancer/pickfirst/pickfirst.go:169:3: SA1019: b.cc.UpdateAddresses is deprecated: this method will be removed. Create new SubConns for new addresses instead. (staticcheck) b.cc.UpdateAddresses(b.subConn, addrs) ^ balancer/pickfirst/pickfirst.go:174:18: SA1019: b.cc.NewSubConn is deprecated: please be aware that in a future version, SubConns will only support one address per SubConn. (staticcheck) subConn, err := b.cc.NewSubConn(addrs, balancer.NewSubConnOptions{ ^ admin/test/utils.go:71:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(lis.Addr().String(), grpc.WithTransportCredentials(insecure.NewCredentials())) ^ benchmark/benchmark.go:344:15: SA1019: grpc.DialContext is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.DialContext(ctx, addr, opts...) ^ benchmark/benchmain/main.go:295:4: SA1019: grpc.RPCCompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCCompressor(nopCompressor{}), ^ benchmark/benchmain/main.go:296:4: SA1019: grpc.RPCDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCDecompressor(nopDecompressor{}), ^ benchmark/benchmain/main.go:299:4: SA1019: grpc.WithCompressor is deprecated: use UseCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithCompressor(nopCompressor{}), ^ benchmark/benchmain/main.go:300:4: SA1019: grpc.WithDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithDecompressor(nopDecompressor{}), ^ benchmark/benchmain/main.go:305:4: SA1019: grpc.RPCCompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCCompressor(grpc.NewGZIPCompressor()), ^ benchmark/benchmain/main.go:306:4: SA1019: grpc.RPCDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCDecompressor(grpc.NewGZIPDecompressor()), ^ benchmark/benchmain/main.go:309:4: SA1019: grpc.WithCompressor is deprecated: use UseCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithCompressor(grpc.NewGZIPCompressor()), ^ benchmark/benchmain/main.go:310:4: SA1019: grpc.WithDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithDecompressor(grpc.NewGZIPDecompressor()), ^ benchmark/client/main.go:141:4: SA1019: grpc.WithBlock is deprecated: this DialOption is not supported by NewClient. Will be supported throughout 1.x. (staticcheck) grpc.WithBlock(), ^ benchmark/worker/benchmark_client.go:150:52: SA1019: grpc.CallCustomCodec is deprecated: use ForceCodec instead. (staticcheck) opts = append(opts, grpc.WithDefaultCallOptions(grpc.CallCustomCodec(byteBufCodec{}))) ^ benchmark/worker/benchmark_server.go:128:24: SA1019: grpc.CustomCodec is deprecated: register codecs using encoding.RegisterCodec. The server will automatically use registered codecs based on the incoming requests' headers. See also https://github.com/grpc/grpc-go/blob/master/Documentation/encoding.md#using-a-codec. Will be supported throughout 1.x. (staticcheck) opts = append(opts, grpc.CustomCodec(byteBufCodec{})) ^ internal/stubserver/stubserver.go:195:13: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) cc, err := grpc.Dial(ss.Target, opts...) ^ interop/orcalb.go:59:3: SA1019: o.sc.UpdateAddresses is deprecated: this method will be removed. Create new SubConns for new addresses instead. (staticcheck) o.sc.UpdateAddresses(s.ResolverState.Addresses) ^ interop/orcalb.go:68:14: SA1019: o.cc.NewSubConn is deprecated: please be aware that in a future version, SubConns will only support one address per SubConn. (staticcheck) o.sc, err = o.cc.NewSubConn(s.ResolverState.Addresses, balancer.NewSubConnOptions{StateListener: o.updateSubConnState}) ^ interop/test_utils.go:692:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err = grpc.Dial(serverAddr, dopts...) ^ reflection/internal/internal.go:251:72: SA1019: v1alphareflectionpb.ServerReflectionResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1ToV1AlphaResponse(v1 *v1reflectionpb.ServerReflectionResponse) *v1alphareflectionpb.ServerReflectionResponse { ^ reflection/internal/internal.go:252:14: SA1019: v1alphareflectionpb.ServerReflectionResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) var v1alpha v1alphareflectionpb.ServerReflectionResponse ^ reflection/internal/internal.go:253:2: SA1019: v1alpha.ValidHost is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1alpha.ValidHost = v1.ValidHost ^ reflection/internal/internal.go:255:3: SA1019: v1alpha.OriginalRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1alpha.OriginalRequest = V1ToV1AlphaRequest(v1.OriginalRequest) ^ reflection/internal/internal.go:261:30: SA1019: v1alphareflectionpb.FileDescriptorResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileDescriptorResponse: &v1alphareflectionpb.FileDescriptorResponse{ ^ reflection/internal/internal.go:269:35: SA1019: v1alphareflectionpb.ExtensionNumberResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) AllExtensionNumbersResponse: &v1alphareflectionpb.ExtensionNumberResponse{ ^ reflection/internal/internal.go:277:20: SA1019: v1alphareflectionpb.ServiceResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) svcs := make([]*v1alphareflectionpb.ServiceResponse, len(mr.ListServicesResponse.GetService())) ^ reflection/internal/internal.go:279:16: SA1019: v1alphareflectionpb.ServiceResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) svcs[i] = &v1alphareflectionpb.ServiceResponse{ ^ reflection/internal/internal.go:284:28: SA1019: v1alphareflectionpb.ListServiceResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ListServicesResponse: &v1alphareflectionpb.ListServiceResponse{ ^ reflection/internal/internal.go:292:21: SA1019: v1alphareflectionpb.ErrorResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ErrorResponse: &v1alphareflectionpb.ErrorResponse{ ^ reflection/internal/internal.go:305:34: SA1019: v1alphareflectionpb.ServerReflectionRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1AlphaToV1Request(v1alpha *v1alphareflectionpb.ServerReflectionRequest) *v1reflectionpb.ServerReflectionRequest { ^ reflection/internal/internal.go:307:12: SA1019: v1alpha.Host is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1.Host = v1alpha.Host ^ reflection/internal/internal.go:311:20: SA1019: mr.FileByFilename is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileByFilename: mr.FileByFilename, ^ reflection/internal/internal.go:315:26: SA1019: mr.FileContainingSymbol is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileContainingSymbol: mr.FileContainingSymbol, ^ reflection/internal/internal.go:318:6: SA1019: mr.FileContainingExtension is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) if mr.FileContainingExtension != nil { ^ reflection/internal/internal.go:321:23: SA1019: mr.FileContainingExtension.GetContainingType is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ContainingType: mr.FileContainingExtension.GetContainingType(), ^ reflection/internal/internal.go:322:23: SA1019: mr.FileContainingExtension.GetExtensionNumber is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ExtensionNumber: mr.FileContainingExtension.GetExtensionNumber(), ^ reflection/internal/internal.go:328:31: SA1019: mr.AllExtensionNumbersOfType is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) AllExtensionNumbersOfType: mr.AllExtensionNumbersOfType, ^ reflection/internal/internal.go:332:18: SA1019: mr.ListServices is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ListServices: mr.ListServices, ^ reflection/internal/internal.go:341:70: SA1019: v1alphareflectionpb.ServerReflectionRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1ToV1AlphaRequest(v1 *v1reflectionpb.ServerReflectionRequest) *v1alphareflectionpb.ServerReflectionRequest { ^ reflection/internal/internal.go:342:14: SA1019: v1alphareflectionpb.ServerReflectionRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) var v1alpha v1alphareflectionpb.ServerReflectionRequest ^ reflection/internal/internal.go:343:2: SA1019: v1alpha.Host is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1alpha.Host = v1.Host ^ reflection/internal/internal.go:360:31: SA1019: v1alphareflectionpb.ExtensionRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileContainingExtension: &v1alphareflectionpb.ExtensionRequest{ ^ reflection/internal/internal.go:385:35: SA1019: v1alphareflectionpb.ServerReflectionResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1AlphaToV1Response(v1alpha *v1alphareflectionpb.ServerReflectionResponse) *v1reflectionpb.ServerReflectionResponse { ^ reflection/internal/internal.go:387:17: SA1019: v1alpha.ValidHost is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1.ValidHost = v1alpha.ValidHost ^ reflection/internal/internal.go:388:5: SA1019: v1alpha.OriginalRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) if v1alpha.OriginalRequest != nil { ^ reflection/internal/internal.go:389:43: SA1019: v1alpha.OriginalRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1.OriginalRequest = V1AlphaToV1Request(v1alpha.OriginalRequest) ^ reflection/internal/internal.go:396:27: SA1019: mr.FileDescriptorResponse.GetFileDescriptorProto is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileDescriptorProto: mr.FileDescriptorResponse.GetFileDescriptorProto(), ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 17.716 ± 0.099 17.629 17.934 1.04 ± 0.01
v1.59.1 16.991 ± 0.140 16.819 17.271 1.00

gohugoio/hugo

``` modules/config.go:101:11: SA1019: dirs.DataDir is deprecated: Use module mounts. The data source directory. (staticcheck) dir = dirs.DataDir ^ modules/config.go:104:11: SA1019: dirs.LayoutDir is deprecated: Use module mounts. The layout source directory. (staticcheck) dir = dirs.LayoutDir ^ modules/config.go:107:11: SA1019: dirs.I18nDir is deprecated: Use module mounts. The i18n source directory. (staticcheck) dir = dirs.I18nDir ^ modules/config.go:110:11: SA1019: dirs.ArcheTypeDir is deprecated: Use module mounts. The archetypes source directory. (staticcheck) dir = dirs.ArcheTypeDir ^ modules/config.go:113:11: SA1019: dirs.AssetDir is deprecated: Use module mounts. The assets source directory. (staticcheck) dir = dirs.AssetDir ^ tpl/internal/go_templates/texttemplate/exec_test.go:1756:2: SA4006: this value of `err` is never used (staticcheck) tmpl, err = New("").Parse(textCall) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 64.156 ± 0.396 63.723 64.978 1.04 ± 0.01
v1.59.1 61.445 ± 0.510 60.897 62.623 1.00

kubernetes/kubernetes

``` pkg/kubeapiserver/authorizer/config.go:179:15: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return nil, fmt.Errorf(errors.ToAggregate().Error()) ^ test/utils/deployment.go:229:9: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) err = fmt.Errorf(reason) ^ test/e2e/framework/debug/resource_usage_gatherer.go:598:20: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return &summary, fmt.Errorf(strings.Join(violatedConstraints, "\n")) ^ pkg/controller/garbagecollector/config/v1alpha1/defaults.go:21:2: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) "k8s.io/utils/pointer" ^ pkg/controller/volume/persistentvolume/config/v1alpha1/defaults.go:24:2: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) "k8s.io/utils/pointer" ^ pkg/apis/core/v1/defaults.go:67:5: SA1019: pointer.AllPtrFieldsNil is deprecated: Use ptr.AllPtrFieldsNil instead. (staticcheck) if pointer.AllPtrFieldsNil(&obj.VolumeSource) { ^ pkg/apis/core/v1/conversion.go:31:14: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) utilpointer "k8s.io/utils/pointer" ^ pkg/apis/certificates/helpers.go:65:63: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func IsKubeletServingCSR(req *x509.CertificateRequest, usages sets.String) bool { ^ pkg/apis/certificates/helpers.go:68:69: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func ValidateKubeletServingCSR(req *x509.CertificateRequest, usages sets.String) error { ^ pkg/apis/certificates/helpers.go:108:62: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func IsKubeletClientCSR(req *x509.CertificateRequest, usages sets.String) bool { ^ pkg/registry/scheduling/rest/storage_scheduling.go:82:10: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.Poll(1*time.Second, 30*time.Second, func() (done bool, err error) { ^ pkg/kubelet/cm/devicemanager/plugin/v1beta1/stub.go:163:2: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) wait.PollImmediate(1*time.Second, 10*time.Second, func() (bool, error) { ^ test/utils/deployment.go:81:9: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/deployment.go:209:9: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/runners.go:1575:8: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = wait.Poll(time.Second, timeout, func() (bool, error) { ^ cmd/kube-apiserver/app/testing/testserver.go:384:9: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = wait.Poll(100*time.Millisecond, time.Minute, func() (bool, error) { ^ cmd/kube-controller-manager/app/testing/testserver.go:135:8: SA1019: wait.PollWithContext is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = wait.PollWithContext(ctx, 100*time.Millisecond, 30*time.Second, func(ctx context.Context) (bool, error) { ^ pkg/api/service/testing/make.go:86:43: SA1019: utilpointer.BoolPtr is deprecated: Use ptr.To instead. (staticcheck) svc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) ^ pkg/api/service/testing/make.go:196:44: SA1019: utilpointer.BoolPtr is deprecated: Use ptr.To instead. (staticcheck) svc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(val) ^ test/e2e/framework/ssh/ssh.go:249:9: SA1019: wait.PollWithContext is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = wait.PollWithContext(ctx, 5*time.Second, 20*time.Second, func(ctx context.Context) (bool, error) { ^ test/e2e/framework/ssh/ssh.go:303:9: SA1019: wait.PollWithContext is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = wait.PollWithContext(ctx, 5*time.Second, 20*time.Second, func(ctx context.Context) (bool, error) { ^ test/e2e/framework/node/runtimeclass/runtimeclass.go:53:34: SA1019: utilpointer.BoolPtr is deprecated: Use ptr.To instead. (staticcheck) AutomountServiceAccountToken: utilpointer.BoolPtr(false), ^ test/e2e/common/node/container_probe.go:1517:19: SA1019: cache.NewInformer is deprecated: Use NewInformerWithOptions instead. (staticcheck) _, controller := cache.NewInformer( ^ test/e2e/common/node/security_context.go:382:23: SA1019: pointer.BoolPtr is deprecated: Use ptr.To instead. (staticcheck) RunAsNonRoot: pointer.BoolPtr(true), ^ test/e2e/common/node/security_context.go:395:43: SA1019: pointer.Int64Ptr is deprecated: Use ptr.To instead. (staticcheck) pod := makeNonRootPod(name, rootImage, pointer.Int64Ptr(nonRootTestUserID)) ^ test/e2e/common/node/security_context.go:405:46: SA1019: pointer.Int64Ptr is deprecated: Use ptr.To instead. (staticcheck) pod := makeNonRootPod(name, nonRootImage, pointer.Int64Ptr(0)) ^ test/e2e/framework/service/jig.go:365:18: SA1019: cache.NewInformer is deprecated: Use NewInformerWithOptions instead. (staticcheck) _, controller = cache.NewInformer( ^ test/e2e/framework/service/jig.go:403:20: SA1019: cache.NewInformer is deprecated: Use NewInformerWithOptions instead. (staticcheck) _, esController = cache.NewInformer( ^ test/e2e/apps/job.go:352:22: SA1019: pointer.BoolPtr is deprecated: Use ptr.To instead. (staticcheck) job.Spec.Suspend = pointer.BoolPtr(true) ^ test/e2e/apps/job.go:368:22: SA1019: pointer.BoolPtr is deprecated: Use ptr.To instead. (staticcheck) job.Spec.Suspend = pointer.BoolPtr(false) ^ test/e2e/auth/service_accounts.go:295:29: SA1019: utilptr.Int64Ptr is deprecated: Use ptr.To instead. (staticcheck) ExpirationSeconds: utilptr.Int64Ptr(60 * 60), ^ test/e2e/auth/service_accounts.go:357:29: SA1019: utilptr.Int64Ptr is deprecated: Use ptr.To instead. (staticcheck) ExpirationSeconds: utilptr.Int64Ptr(60 * 60), ^ test/e2e/auth/service_accounts.go:756:151: SA1019: utilptr.Int64Ptr is deprecated: Use ptr.To instead. (staticcheck) framework.ExpectNoError(f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Delete(ctx, rootCAConfigMapName, metav1.DeleteOptions{GracePeriodSeconds: utilptr.Int64Ptr(0)})) ^ test/e2e/network/networking.go:618:9: SA1019: utilwait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = utilwait.PollImmediate(framework.Poll, framework.RestartNodeReadyAgainTimeout, func() (bool, error) { ^ test/e2e/storage/testsuites/fsgroupchangepolicy.go:226:29: SA1019: utilpointer.Int64Ptr is deprecated: Use ptr.To instead. (staticcheck) FsGroup: utilpointer.Int64Ptr(int64(test.initialPodFsGroup)), ^ test/e2e/storage/testsuites/fsgroupchangepolicy.go:247:24: SA1019: utilpointer.Int64Ptr is deprecated: Use ptr.To instead. (staticcheck) podConfig.FsGroup = utilpointer.Int64Ptr(int64(test.secondPodFsGroup)) ^ test/e2e/storage/csimock/csi_storage_capacity.go:366:11: SA1019: wait.PollImmediateUntil is deprecated: This method does not return errors from context, use PollUntilContextCancel. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = wait.PollImmediateUntil(poll, condition, ctx.Done()) ^ pkg/api/pod/warnings_test.go:536:37: SA1019: utilpointer.Int64Ptr is deprecated: Use ptr.To instead. (staticcheck) TerminationGracePeriodSeconds: utilpointer.Int64Ptr(-1), ^ pkg/api/testing/applyconfiguration_test.go:182:5: SA1019: s.SelfLink is deprecated: selfLink is a legacy read-only field that is no longer populated by the system. +optional (staticcheck) s.SelfLink = "" ^ pkg/apis/core/validation/validation.go:6149:5: SA1019: node.Spec.ConfigSource is deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed. +optional (staticcheck) if node.Spec.ConfigSource != nil { ^ pkg/apis/core/validation/validation.go:6150:58: SA1019: node.Spec.ConfigSource is deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed. +optional (staticcheck) allErrs = append(allErrs, validateNodeConfigSourceSpec(node.Spec.ConfigSource, field.NewPath("spec", "configSource"))...) ^ pkg/apis/core/validation/validation.go:6180:43: SA1019: core.NodeConfigSource is deprecated: NodeConfigSource specifies a source of node configuration. Exactly one subfield must be non-nil. (staticcheck) func validateNodeConfigSourceSpec(source *core.NodeConfigSource, fldPath *field.Path) field.ErrorList { ^ pkg/apis/core/validation/validation.go:6199:52: SA1019: core.ConfigMapNodeConfigSource is deprecated: ConfigMapNodeConfigSource represents the config map of a node (staticcheck) func validateConfigMapNodeConfigSourceSpec(source *core.ConfigMapNodeConfigSource, fldPath *field.Path) field.ErrorList { ^ pkg/apis/core/validation/validation.go:6227:45: SA1019: core.NodeConfigSource is deprecated: NodeConfigSource specifies a source of node configuration. Exactly one subfield must be non-nil. (staticcheck) func validateNodeConfigSourceStatus(source *core.NodeConfigSource, fldPath *field.Path) field.ErrorList { ^ pkg/apis/core/validation/validation.go:6244:54: SA1019: core.ConfigMapNodeConfigSource is deprecated: ConfigMapNodeConfigSource represents the config map of a node (staticcheck) func validateConfigMapNodeConfigSourceStatus(source *core.ConfigMapNodeConfigSource, fldPath *field.Path) field.ErrorList { ^ pkg/apis/core/validation/validation.go:6257:48: SA1019: core.ConfigMapNodeConfigSource is deprecated: ConfigMapNodeConfigSource represents the config map of a node (staticcheck) func validateConfigMapNodeConfigSource(source *core.ConfigMapNodeConfigSource, fldPath *field.Path) field.ErrorList { ^ pkg/controller/certificates/certificate_controller_test.go:71:2: SA1019: wait.PollUntil is deprecated: This method does not return errors from context, use PollUntilContextCancel. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) wait.PollUntil(10*time.Millisecond, func() (bool, error) { ^ pkg/controller/endpointslice/endpointslice_controller_test.go:1113:16: SA1019: pointer.StringPtr is deprecated: Use ptr.To instead. (staticcheck) Name: pointer.StringPtr("sctp-example"), ^ pkg/controller/endpointslice/endpointslice_controller_test.go:1115:16: SA1019: pointer.Int32Ptr is deprecated: Use ptr.To instead. (staticcheck) Port: pointer.Int32Ptr(int32(3456)), ^ pkg/controller/endpointslice/endpointslice_controller_test.go:1118:16: SA1019: pointer.StringPtr is deprecated: Use ptr.To instead. (staticcheck) Name: pointer.StringPtr("udp-example"), ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 211.187 ± 1.243 208.965 213.844 1.03 ± 0.01
v1.59.1 204.982 ± 0.910 203.814 206.888 1.00

go-acme/lego

``` ```
Command Mean [s] Min [s] Max [s] Relative
local 38.900 ± 0.215 38.674 39.271 1.06 ± 0.01
v1.59.1 36.751 ± 0.243 36.473 37.331 1.00

pact-foundation/pact-go

``` installer/installer.go:472:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) log.Fatalf(err.Error()) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 5.708 ± 0.107 5.565 5.854 1.07 ± 0.02
v1.59.1 5.312 ± 0.057 5.222 5.420 1.00

rclone/rclone

``` cmd/cmd.go:122:4: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) log.Fatalf(err.Error()) ^ cmd/bisync/operations.go:572:9: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) err = fmt.Errorf(Color(terminal.RedFg, "Overlapping paths detected. Cannot bisync between paths that overlap, unless excluded by filters.")) ^ cmd/mount/mount.go:72:5: SA4032: due to the file's build constraints, runtime.GOOS will never equal "darwin" (staticcheck) if runtime.GOOS == "darwin" { ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 31.434 ± 0.072 31.335 31.551 1.08 ± 0.01
v1.59.1 29.032 ± 0.120 28.836 29.234 1.00

hashicorp/terraform

``` internal/addrs/output_value_test.go:118:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(problem) ^ internal/addrs/parse_ref_test.go:162:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(problem) ^ internal/addrs/parse_ref_test.go:953:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(problem) ^ internal/cloud/tfe_client_mock.go:521:80: SA1019: tfe.DataRetentionPolicy is deprecated: Use DataRetentionPolicyDeleteOlder instead. This is the original representation of a data retention policy, only present in TFE v202311-1 and v202312-1 (staticcheck) func (m *MockOrganizations) ReadDataRetentionPolicy(context.Context, string) (*tfe.DataRetentionPolicy, error) { ^ internal/cloud/tfe_client_mock.go:525:102: SA1019: tfe.DataRetentionPolicySetOptions is deprecated: Use DataRetentionPolicyDeleteOlder variations instead (staticcheck) func (m *MockOrganizations) SetDataRetentionPolicy(ctx context.Context, organization string, options tfe.DataRetentionPolicySetOptions) (*tfe.DataRetentionPolicy, error) { ^ internal/cloud/tfe_client_mock.go:2309:93: SA1019: tfe.DataRetentionPolicy is deprecated: Use DataRetentionPolicyDeleteOlder instead. This is the original representation of a data retention policy, only present in TFE v202311-1 and v202312-1 (staticcheck) func (s *MockWorkspaces) ReadDataRetentionPolicy(ctx context.Context, workspaceID string) (*tfe.DataRetentionPolicy, error) { ^ internal/cloud/tfe_client_mock.go:2313:98: SA1019: tfe.DataRetentionPolicySetOptions is deprecated: Use DataRetentionPolicyDeleteOlder variations instead (staticcheck) func (s *MockWorkspaces) SetDataRetentionPolicy(ctx context.Context, workspaceID string, options tfe.DataRetentionPolicySetOptions) (*tfe.DataRetentionPolicy, error) { ^ internal/rpcapi/grpc_testing.go:34:25: SA1019: otelgrpc.UnaryServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.UnaryInterceptor(otelgrpc.UnaryServerInterceptor()), ^ internal/rpcapi/grpc_testing.go:35:26: SA1019: otelgrpc.StreamServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.StreamInterceptor(otelgrpc.StreamServerInterceptor()), ^ internal/rpcapi/grpc_testing.go:56:3: SA1019: grpc.WithInsecure is deprecated: use WithTransportCredentials and insecure.NewCredentials() instead. Will be supported throughout 1.x. (staticcheck) grpc.WithInsecure(), ^ internal/rpcapi/grpc_testing.go:57:29: SA1019: otelgrpc.UnaryClientInterceptor is deprecated: Use [NewClientHandler] instead. (staticcheck) grpc.WithUnaryInterceptor(otelgrpc.UnaryClientInterceptor()), ^ internal/rpcapi/grpc_testing.go:58:30: SA1019: otelgrpc.StreamClientInterceptor is deprecated: Use [NewClientHandler] instead. (staticcheck) grpc.WithStreamInterceptor(otelgrpc.StreamClientInterceptor()), ^ internal/rpcapi/server.go:42:27: SA1019: otelgrpc.UnaryServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.UnaryInterceptor(otelgrpc.UnaryServerInterceptor()), ^ internal/rpcapi/server.go:43:28: SA1019: otelgrpc.StreamServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.StreamInterceptor(otelgrpc.StreamServerInterceptor()), ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 40.706 ± 0.233 40.403 41.108 1.05 ± 0.01
v1.59.1 38.749 ± 0.228 38.342 38.994 1.00

traefik/traefik

``` ```
Command Mean [s] Min [s] Max [s] Relative
local 91.844 ± 1.807 90.550 96.538 1.07 ± 0.02
v1.59.1 85.851 ± 0.904 84.844 87.387 1.00

You can find the workflow here: https://github.com/ldez/golangci-lint-bench/actions/runs/9620939299

github-actions[bot] commented 4 months ago

The benchmark is done!

beego/beego

local ``` server/web/router_test.go:756:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(w.Body.String()) ^ server/web/router_test.go:1024:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(fmt.Sprintf("TestRouterAddRouterMethodPanicInvalidMethod failed: %v", err)) ^ server/web/router_test.go:1042:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(fmt.Sprintf("TestRouterAddRouterMethodPanicNotAMethod failed: %v", err)) ^ server/web/router_test.go:1060:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(fmt.Sprintf("TestRouterAddRouterMethodPanicNotPublicMethod failed: %v", err)) ^ server/web/router_test.go:1078:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(fmt.Sprintf("TestRouterAddRouterMethodPanicNotImplementInterface failed: %v", err)) ^ server/web/router_test.go:1096:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(fmt.Sprintf("TestRouterAddRouterPointerMethodPanicNotImplementInterface failed: %v", err)) ^ server/web/statistics_test.go:36:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(err.Error()) ^ client/orm/do_nothing_orm_test.go:25:30: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) err := o.DoTxWithCtxAndOpts(nil, nil, nil) ^ client/orm/do_nothing_orm_test.go:28:22: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) err = o.DoTxWithCtx(nil, nil) ^ client/orm/do_nothing_orm_test.go:40:30: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) assert.Nil(t, o.ReadWithCtx(nil, nil)) ^ client/orm/do_nothing_orm_test.go:43:38: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) txOrm, err := o.BeginWithCtxAndOpts(nil, nil) ^ client/orm/do_nothing_orm_test.go:47:30: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) txOrm, err = o.BeginWithCtx(nil) ^ client/orm/do_nothing_orm_test.go:59:29: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) assert.Nil(t, o.RawWithCtx(nil, "")) ^ client/orm/do_nothing_orm_test.go:70:27: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) i, err = o.InsertWithCtx(nil, nil) ^ client/orm/do_nothing_orm_test.go:74:35: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) i, err = o.InsertOrUpdateWithCtx(nil, nil) ^ client/orm/do_nothing_orm_test.go:82:32: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) i, err = o.InsertMultiWithCtx(nil, 0, nil) ^ client/orm/do_nothing_orm_test.go:86:32: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) i, err = o.LoadRelatedWithCtx(nil, nil, "") ^ client/httplib/mock/mock_test.go:70:9: SA1019: httplib.Get("http://localhost:7777/abc").DoRequestWithCtx is deprecated: please use NewBeegoRequestWithContext (staticcheck) return httplib.Get("http://localhost:7777/abc").DoRequestWithCtx(ctx) ^ client/httplib/httpclient_test.go:231:31: SA1026: trying to marshal unsupported type func() (io.ReadCloser, error), via x.Resp.Request.GetBody (staticcheck) jsonStr, err := json.Marshal(input) ^ client/httplib/httpclient_test.go:259:31: SA1026: trying to marshal unsupported type func() (io.ReadCloser, error), via x.Resp.Request.GetBody (staticcheck) jsonStr, err := json.Marshal(input) ^ client/httplib/httpclient_test.go:124:27: SA1026: trying to marshal unsupported type func() (io.ReadCloser, error), via x.Resp.Request.GetBody (staticcheck) data, _ := json.Marshal(ssr) ^ core/config/etcd/config_test.go:114:25: SA1026: trying to marshal unsupported type func() time.Time, via x.TLS.Time (staticcheck) cfg, _ := json.Marshal(obj) ^ server/web/admin_controller.go:58:33: SA1026: trying to marshal unsupported type map[interface{}]interface{} (staticcheck) dataJSON, err := json.Marshal(data) ^ server/web/config_test.go:53:24: SA1026: trying to marshal unsupported type func(*github.com/beego/beego/v2/server/web/context.Context, *Config), via x.RecoverFunc (staticcheck) bs, _ := json.Marshal(newBConfig()) ^ client/httplib/mock/mock.go:48:32: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) return context.WithValue(ctx, mockCtxKey, mock) ^ client/orm/filter_orm_decorator_test.go:81:49: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) ctx := context.WithValue(context.Background(), TxNameKey, "Commit_tx") ^ client/orm/filter_orm_decorator_test.go:89:48: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) ctx = context.WithValue(context.Background(), TxNameKey, "Rollback_tx") ^ client/orm/filter_orm_decorator_test.go:170:49: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) ctx := context.WithValue(context.Background(), TxNameKey, "do tx name") ^ client/httplib/httplib_test.go:283:2: SA4006: this value of `err` is never used (staticcheck) b, err := os.ReadFile(f) ^ server/web/controller.go:676:27: SA6002: argument should be pointer-like to avoid allocations (staticcheck) defer copyBufferPool.Put(buf) ^ core/validation/util_test.go:94:2: SA9003: empty branch (staticcheck) if err != nil { ^ ```
v1.59.1 ``` client/httplib/mock/mock.go:48:32: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) return context.WithValue(ctx, mockCtxKey, mock) ^ client/orm/filter_orm_decorator_test.go:81:49: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) ctx := context.WithValue(context.Background(), TxNameKey, "Commit_tx") ^ client/orm/filter_orm_decorator_test.go:89:48: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) ctx = context.WithValue(context.Background(), TxNameKey, "Rollback_tx") ^ client/orm/filter_orm_decorator_test.go:170:49: SA1029: should not use built-in type string as key for value; define your own type to avoid collisions (staticcheck) ctx := context.WithValue(context.Background(), TxNameKey, "do tx name") ^ client/httplib/httplib_test.go:283:2: SA4006: this value of `err` is never used (staticcheck) b, err := os.ReadFile(f) ^ server/web/controller.go:676:27: SA6002: argument should be pointer-like to avoid allocations (staticcheck) defer copyBufferPool.Put(buf) ^ client/httplib/httpclient_test.go:231:31: SA1026: trying to marshal unsupported type func() (io.ReadCloser, error), via x.Resp.Request.GetBody (staticcheck) jsonStr, err := json.Marshal(input) ^ client/httplib/httpclient_test.go:259:31: SA1026: trying to marshal unsupported type func() (io.ReadCloser, error), via x.Resp.Request.GetBody (staticcheck) jsonStr, err := json.Marshal(input) ^ client/httplib/httpclient_test.go:124:27: SA1026: trying to marshal unsupported type func() (io.ReadCloser, error), via x.Resp.Request.GetBody (staticcheck) data, _ := json.Marshal(ssr) ^ core/config/etcd/config_test.go:114:25: SA1026: trying to marshal unsupported type func() time.Time, via x.TLS.Time (staticcheck) cfg, _ := json.Marshal(obj) ^ server/web/admin_controller.go:58:33: SA1026: trying to marshal unsupported type map[interface{}]interface{} (staticcheck) dataJSON, err := json.Marshal(data) ^ server/web/config_test.go:53:24: SA1026: trying to marshal unsupported type func(*github.com/beego/beego/v2/server/web/context.Context, *Config), via x.RecoverFunc (staticcheck) bs, _ := json.Marshal(newBConfig()) ^ client/httplib/mock/mock_test.go:70:9: SA1019: httplib.Get("http://localhost:7777/abc").DoRequestWithCtx is deprecated: please use NewBeegoRequestWithContext (staticcheck) return httplib.Get("http://localhost:7777/abc").DoRequestWithCtx(ctx) ^ core/utils/rand.go:33:3: SA1019: r.Seed has been deprecated since Go 1.20 and an alternative has been available since Go 1.0: As of Go 1.20 there is no reason to call Seed with a random value. Programs that call Seed with a known value to get a specific sequence of results should use New(NewSource(seed)) to obtain a local random generator. (staticcheck) r.Seed(time.Now().UnixNano()) ^ core/utils/slice.go:53:2: SA1019: rand.Seed has been deprecated since Go 1.20 and an alternative has been available since Go 1.0: As of Go 1.20 there is no reason to call Seed with a random value. Programs that call Seed with a known value to get a specific sequence of results should use New(NewSource(seed)) to obtain a local random generator. (staticcheck) rand.Seed(int64(t0.Nanosecond())) ^ server/web/context/context.go:385:33: SA1019: http.CloseNotifier has been deprecated since Go 1.11 and an alternative has been available since Go 1.7: the CloseNotifier interface predates Go's context package. New code should use [Request.Context] instead. (staticcheck) if cn, ok := r.ResponseWriter.(http.CloseNotifier); ok { ^ server/web/filter/cors/cors_test.go:68:5: SA1019: recorder.HeaderMap has been deprecated since Go 1.11 and an alternative has been available since Go 1.7: HeaderMap exists for historical compatibility and should not be used. To access the headers returned by a handler, use the Response.Header map as returned by the Result method. (staticcheck) if recorder.HeaderMap.Get(headerAllowOrigin) != "*" { ^ server/web/filter/cors/cors_test.go:87:17: SA1019: recorder.HeaderMap has been deprecated since Go 1.11 and an alternative has been available since Go 1.7: HeaderMap exists for historical compatibility and should not be used. To access the headers returned by a handler, use the Response.Header map as returned by the Result method. (staticcheck) headerValue := recorder.HeaderMap.Get(headerAllowOrigin) ^ server/web/filter/cors/cors_test.go:107:17: SA1019: recorder.HeaderMap has been deprecated since Go 1.11 and an alternative has been available since Go 1.7: HeaderMap exists for historical compatibility and should not be used. To access the headers returned by a handler, use the Response.Header map as returned by the Result method. (staticcheck) headerValue := recorder.HeaderMap.Get(headerAllowOrigin) ^ server/web/filter/cors/cors_test.go:130:20: SA1019: recorder.HeaderMap has been deprecated since Go 1.11 and an alternative has been available since Go 1.7: HeaderMap exists for historical compatibility and should not be used. To access the headers returned by a handler, use the Response.Header map as returned by the Result method. (staticcheck) credentialsVal := recorder.HeaderMap.Get(headerAllowCredentials) ^ server/web/filter/cors/cors_test.go:131:16: SA1019: recorder.HeaderMap has been deprecated since Go 1.11 and an alternative has been available since Go 1.7: HeaderMap exists for historical compatibility and should not be used. To access the headers returned by a handler, use the Response.Header map as returned by the Result method. (staticcheck) methodsVal := recorder.HeaderMap.Get(headerAllowMethods) ^ server/web/filter/cors/cors_test.go:132:16: SA1019: recorder.HeaderMap has been deprecated since Go 1.11 and an alternative has been available since Go 1.7: HeaderMap exists for historical compatibility and should not be used. To access the headers returned by a handler, use the Response.Header map as returned by the Result method. (staticcheck) headersVal := recorder.HeaderMap.Get(headerAllowHeaders) ^ server/web/filter/cors/cors_test.go:133:23: SA1019: recorder.HeaderMap has been deprecated since Go 1.11 and an alternative has been available since Go 1.7: HeaderMap exists for historical compatibility and should not be used. To access the headers returned by a handler, use the Response.Header map as returned by the Result method. (staticcheck) exposedHeadersVal := recorder.HeaderMap.Get(headerExposeHeaders) ^ server/web/filter/cors/cors_test.go:134:15: SA1019: recorder.HeaderMap has been deprecated since Go 1.11 and an alternative has been available since Go 1.7: HeaderMap exists for historical compatibility and should not be used. To access the headers returned by a handler, use the Response.Header map as returned by the Result method. (staticcheck) maxAgeVal := recorder.HeaderMap.Get(headerMaxAge) ^ server/web/filter/cors/cors_test.go:170:16: SA1019: recorder.HeaderMap has been deprecated since Go 1.11 and an alternative has been available since Go 1.7: HeaderMap exists for historical compatibility and should not be used. To access the headers returned by a handler, use the Response.Header map as returned by the Result method. (staticcheck) headersVal := recorder.HeaderMap.Get(headerAllowHeaders) ^ client/orm/do_nothing_orm_test.go:25:30: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) err := o.DoTxWithCtxAndOpts(nil, nil, nil) ^ client/orm/do_nothing_orm_test.go:28:22: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) err = o.DoTxWithCtx(nil, nil) ^ client/orm/do_nothing_orm_test.go:40:30: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) assert.Nil(t, o.ReadWithCtx(nil, nil)) ^ client/orm/do_nothing_orm_test.go:43:38: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) txOrm, err := o.BeginWithCtxAndOpts(nil, nil) ^ client/orm/do_nothing_orm_test.go:47:30: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) txOrm, err = o.BeginWithCtx(nil) ^ client/orm/do_nothing_orm_test.go:59:29: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) assert.Nil(t, o.RawWithCtx(nil, "")) ^ client/orm/do_nothing_orm_test.go:70:27: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) i, err = o.InsertWithCtx(nil, nil) ^ client/orm/do_nothing_orm_test.go:74:35: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) i, err = o.InsertOrUpdateWithCtx(nil, nil) ^ client/orm/do_nothing_orm_test.go:82:32: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) i, err = o.InsertMultiWithCtx(nil, 0, nil) ^ client/orm/do_nothing_orm_test.go:86:32: SA1012: do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (staticcheck) i, err = o.LoadRelatedWithCtx(nil, nil, "") ^ core/validation/util_test.go:94:2: SA9003: empty branch (staticcheck) if err != nil { ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 10.518 ± 0.095 10.379 10.714 1.03 ± 0.01
v1.59.1 10.224 ± 0.064 10.102 10.322 1.00

cilium/cilium

local ``` operator/cmd/flags.go:138:11: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return fmt.Errorf(errMsg) ^ pkg/alibabacloud/eni/node.go:99:38: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return 0, unableToDetermineLimits, fmt.Errorf(errUnableToDetermineLimits) ^ pkg/alibabacloud/eni/node.go:254:15: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return nil, fmt.Errorf(errUnableToDetermineLimits) ^ pkg/aws/eni/node.go:210:15: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return nil, fmt.Errorf(errUnableToDetermineLimits) ^ pkg/aws/eni/node.go:408:38: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return 0, unableToDetermineLimits, fmt.Errorf(errUnableToDetermineLimits) ^ pkg/bgp/manager/manager_test.go:89:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(cmp.Diff(rr.name, serviceID.String())) ^ pkg/bgp/manager/manager_test.go:95:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(cmp.Diff(rr.eps, serviceID)) ^ pkg/bgp/manager/manager_test.go:157:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(cmp.Diff(rr.name, serviceID.String())) ^ pkg/bgp/manager/manager_test.go:160:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(cmp.Diff(rr.srvRo, &v1Service)) ^ pkg/bgp/manager/manager_test.go:163:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(cmp.Diff(rr.eps, emptyEps)) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 118.146 ± 0.982 116.637 119.592 1.03 ± 0.01
v1.59.1 115.043 ± 0.606 114.290 116.463 1.00

spf13/cobra

Command Mean [s] Min [s] Max [s] Relative
local 2.130 ± 0.086 2.069 2.364 1.04 ± 0.05
v1.59.1 2.042 ± 0.047 2.006 2.159 1.00

hashicorp/consul

local ``` agent/agent_endpoint_test.go:7370:11: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) ch <- fmt.Errorf(resp.Body.String()) ^ agent/agent_endpoint_test.go:7506:11: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) ch <- fmt.Errorf(resp.Body.String()) ^ agent/config_endpoint_test.go:326:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(resp.Body.String()) ^ agent/config_endpoint_test.go:596:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(resp.Body.String()) ^ agent/grpc-external/stats_test.go:109:4: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Logf(err.Error()) ^ agent/grpc-internal/stats_test.go:109:4: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Logf(err.Error()) ^ agent/grpc-internal/services/subscribe/subscribe_test.go:1051:4: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Logf(err.Error()) ^ agent/hcp/bootstrap/bootstrap.go:324:14: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return "", fmt.Errorf(fmt.Sprintf("failed to read local bootstrap config file: %s", err)) ^ agent/leafcert/leafcert_test.go:523:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ agent/leafcert/leafcert_test.go:547:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 87.453 ± 0.409 87.021 88.322 1.03 ± 0.01
v1.59.1 84.884 ± 0.765 84.312 86.970 1.00

go-delve/delve

local ``` pkg/proc/dump.go:263:41: SA1003: value of type bool cannot be used with binary.Write (staticcheck) binary.Write(buf, binary.LittleEndian, hasGaddr) ^ pkg/proc/proc_test.go:4820:2: SA3001: should not assign to b.N (staticcheck) b.N = 1 ^ pkg/proc/proc_test.go:519:2: SA4006: this value of `f` is never used (staticcheck) f, ln := currentLineNumber(p, t) ^ pkg/proc/proc_test.go:2645:4: SA4006: this value of `f` is never used (staticcheck) f, ln = assertLineNumber(p, t, 13, "Step did not step into function call") ^ service/test/integration2_test.go:3145:3: SA4006: this value of `err` is never used (staticcheck) _, err := c.CreateBreakpoint(&api.Breakpoint{File: fp, Line: 19}) ^ pkg/proc/scope_test.go:98:30: SA5011: possible nil pointer dereference (staticcheck) for i := range scopeCheck.varChecks { ^ pkg/proc/scope_test.go:92:7: SA5011(related information): this check suggests that the pointer can be nil (staticcheck) if scopeCheck == nil { ^ ```
v1.59.1 ``` pkg/proc/proc_test.go:519:2: SA4006: this value of `f` is never used (staticcheck) f, ln := currentLineNumber(p, t) ^ pkg/proc/proc_test.go:2645:4: SA4006: this value of `f` is never used (staticcheck) f, ln = assertLineNumber(p, t, 13, "Step did not step into function call") ^ service/test/integration2_test.go:3145:3: SA4006: this value of `err` is never used (staticcheck) _, err := c.CreateBreakpoint(&api.Breakpoint{File: fp, Line: 19}) ^ pkg/proc/scope_test.go:98:30: SA5011: possible nil pointer dereference (staticcheck) for i := range scopeCheck.varChecks { ^ pkg/proc/scope_test.go:92:7: SA5011(related information): this check suggests that the pointer can be nil (staticcheck) if scopeCheck == nil { ^ pkg/proc/proc_test.go:4820:2: SA3001: should not assign to b.N (staticcheck) b.N = 1 ^ pkg/proc/proc_test.go:5096:2: SA1019: rand.Seed has been deprecated since Go 1.20 and an alternative has been available since Go 1.0: As of Go 1.20 there is no reason to call Seed with a random value. Programs that call Seed with a known value to get a specific sequence of results should use New(NewSource(seed)) to obtain a local random generator. (staticcheck) rand.Seed(time.Now().Unix()) ^ service/dap/server_test.go:4841:2: SA1019: rand.Seed has been deprecated since Go 1.20 and an alternative has been available since Go 1.0: As of Go 1.20 there is no reason to call Seed with a random value. Programs that call Seed with a known value to get a specific sequence of results should use New(NewSource(seed)) to obtain a local random generator. (staticcheck) rand.Seed(time.Now().Unix()) ^ service/test/integration1_test.go:1025:4: SA1019: rand.Seed has been deprecated since Go 1.20 and an alternative has been available since Go 1.0: As of Go 1.20 there is no reason to call Seed with a random value. Programs that call Seed with a known value to get a specific sequence of results should use New(NewSource(seed)) to obtain a local random generator. (staticcheck) rand.Seed(time.Now().Unix()) ^ service/test/integration2_test.go:1629:4: SA1019: rand.Seed has been deprecated since Go 1.20 and an alternative has been available since Go 1.0: As of Go 1.20 there is no reason to call Seed with a random value. Programs that call Seed with a known value to get a specific sequence of results should use New(NewSource(seed)) to obtain a local random generator. (staticcheck) rand.Seed(time.Now().Unix()) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 7.786 ± 0.059 7.678 7.886 1.04 ± 0.01
v1.59.1 7.519 ± 0.044 7.424 7.586 1.00

etcd-io/etcd

Command Mean [s] Min [s] Max [s] Relative
local 10.462 ± 0.227 10.123 10.834 1.04 ± 0.03
v1.59.1 10.068 ± 0.152 9.699 10.224 1.00

go-gitea/gitea

local ``` modules/cache/context.go:112:32: SA1029: should not use empty anonymous struct as key for value; define your own type to avoid collisions (staticcheck) return context.WithValue(ctx, cacheContextKey, &cacheContext{ ^ routers/api/v1/repo/pull.go:753:7: SA1032: arguments have the wrong order (staticcheck) if errors.Is(pull_service.ErrUserHasNoPermissionForAction, err) { ^ routers/web/repo/pull.go:1600:6: SA1032: arguments have the wrong order (staticcheck) if errors.Is(pull_service.ErrUserHasNoPermissionForAction, err) { ^ routers/web/repo/view.go:741:23: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) ctx.NotFound("Home", fmt.Errorf(ctx.Locale.TrString("units.error.no_unit_allowed_repo"))) ^ services/actions/notifier_helper.go:46:32: SA1029: should not use empty anonymous struct as key for value; define your own type to avoid collisions (staticcheck) return context.WithValue(ctx, methodCtxKey, method) ^ services/automerge/automerge.go:279:6: SA1032: arguments have the wrong order (staticcheck) if errors.Is(pull_service.ErrUserNotAllowedToMerge, err) { ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 66.520 ± 0.261 66.121 67.054 1.09 ± 0.01
v1.59.1 61.200 ± 0.309 60.601 61.478 1.00

google/go-github

Command Mean [s] Min [s] Max [s] Relative
local 6.384 ± 0.051 6.312 6.456 1.03 ± 0.01
v1.59.1 6.202 ± 0.067 6.100 6.303 1.00

golangci/golangci-lint

Command Mean [s] Min [s] Max [s] Relative
local 16.342 ± 0.112 16.160 16.505 1.06 ± 0.01
v1.59.1 15.380 ± 0.097 15.222 15.528 1.00

goreleaser/goreleaser

local ``` internal/pipe/blob/blob_test.go:31:38: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) require.EqualError(t, handleError(fmt.Errorf(k), "someurl"), v) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 28.859 ± 0.167 28.659 29.199 1.08 ± 0.01
v1.59.1 26.606 ± 0.085 26.429 26.697 1.00

grpc/grpc-go

local ``` internal/transport/transport_test.go:1730:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ test/bufconn/bufconn_test.go:80:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ test/bufconn/bufconn_test.go:100:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ test/bufconn/bufconn_test.go:103:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ test/bufconn/bufconn_test.go:172:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ test/bufconn/bufconn_test.go:175:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(err.Error()) ^ balancer/pickfirst/pickfirst.go:169:3: SA1019: b.cc.UpdateAddresses is deprecated: this method will be removed. Create new SubConns for new addresses instead. (staticcheck) b.cc.UpdateAddresses(b.subConn, addrs) ^ balancer/pickfirst/pickfirst.go:174:18: SA1019: b.cc.NewSubConn is deprecated: please be aware that in a future version, SubConns will only support one address per SubConn. (staticcheck) subConn, err := b.cc.NewSubConn(addrs, balancer.NewSubConnOptions{ ^ admin/test/utils.go:71:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(lis.Addr().String(), grpc.WithTransportCredentials(insecure.NewCredentials())) ^ benchmark/benchmark.go:344:15: SA1019: grpc.DialContext is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.DialContext(ctx, addr, opts...) ^ benchmark/benchmain/main.go:295:4: SA1019: grpc.RPCCompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCCompressor(nopCompressor{}), ^ benchmark/benchmain/main.go:296:4: SA1019: grpc.RPCDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCDecompressor(nopDecompressor{}), ^ benchmark/benchmain/main.go:299:4: SA1019: grpc.WithCompressor is deprecated: use UseCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithCompressor(nopCompressor{}), ^ benchmark/benchmain/main.go:300:4: SA1019: grpc.WithDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithDecompressor(nopDecompressor{}), ^ benchmark/benchmain/main.go:305:4: SA1019: grpc.RPCCompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCCompressor(grpc.NewGZIPCompressor()), ^ benchmark/benchmain/main.go:306:4: SA1019: grpc.RPCDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCDecompressor(grpc.NewGZIPDecompressor()), ^ benchmark/benchmain/main.go:309:4: SA1019: grpc.WithCompressor is deprecated: use UseCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithCompressor(grpc.NewGZIPCompressor()), ^ benchmark/benchmain/main.go:310:4: SA1019: grpc.WithDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithDecompressor(grpc.NewGZIPDecompressor()), ^ benchmark/client/main.go:141:4: SA1019: grpc.WithBlock is deprecated: this DialOption is not supported by NewClient. Will be supported throughout 1.x. (staticcheck) grpc.WithBlock(), ^ benchmark/worker/benchmark_client.go:150:52: SA1019: grpc.CallCustomCodec is deprecated: use ForceCodec instead. (staticcheck) opts = append(opts, grpc.WithDefaultCallOptions(grpc.CallCustomCodec(byteBufCodec{}))) ^ benchmark/worker/benchmark_server.go:128:24: SA1019: grpc.CustomCodec is deprecated: register codecs using encoding.RegisterCodec. The server will automatically use registered codecs based on the incoming requests' headers. See also https://github.com/grpc/grpc-go/blob/master/Documentation/encoding.md#using-a-codec. Will be supported throughout 1.x. (staticcheck) opts = append(opts, grpc.CustomCodec(byteBufCodec{})) ^ internal/stubserver/stubserver.go:195:13: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) cc, err := grpc.Dial(ss.Target, opts...) ^ interop/orcalb.go:59:3: SA1019: o.sc.UpdateAddresses is deprecated: this method will be removed. Create new SubConns for new addresses instead. (staticcheck) o.sc.UpdateAddresses(s.ResolverState.Addresses) ^ interop/orcalb.go:68:14: SA1019: o.cc.NewSubConn is deprecated: please be aware that in a future version, SubConns will only support one address per SubConn. (staticcheck) o.sc, err = o.cc.NewSubConn(s.ResolverState.Addresses, balancer.NewSubConnOptions{StateListener: o.updateSubConnState}) ^ interop/test_utils.go:692:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err = grpc.Dial(serverAddr, dopts...) ^ interop/alts/client/client.go:51:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(*serverAddr, grpc.WithTransportCredentials(altsTC), grpc.WithBlock()) ^ interop/client/client.go:264:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(serverAddr, opts...) ^ interop/grpclb_fallback/client_linux.go:115:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(*serverURI, opts...) ^ interop/http2/negative_http2_client.go:136:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(serverAddr, opts...) ^ interop/stress/client/main.go:322:9: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) return grpc.Dial(address, opts...) ^ interop/stress/metrics_client/main.go:78:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(*metricsServerAddress, grpc.WithTransportCredentials(insecure.NewCredentials())) ^ interop/xds_federation/client.go:104:14: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) cc, err := grpc.Dial(uris[i], opts...) ^ reflection/internal/internal.go:251:72: SA1019: v1alphareflectionpb.ServerReflectionResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1ToV1AlphaResponse(v1 *v1reflectionpb.ServerReflectionResponse) *v1alphareflectionpb.ServerReflectionResponse { ^ reflection/internal/internal.go:252:14: SA1019: v1alphareflectionpb.ServerReflectionResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) var v1alpha v1alphareflectionpb.ServerReflectionResponse ^ reflection/internal/internal.go:253:2: SA1019: v1alpha.ValidHost is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1alpha.ValidHost = v1.ValidHost ^ reflection/internal/internal.go:255:3: SA1019: v1alpha.OriginalRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1alpha.OriginalRequest = V1ToV1AlphaRequest(v1.OriginalRequest) ^ reflection/internal/internal.go:261:30: SA1019: v1alphareflectionpb.FileDescriptorResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileDescriptorResponse: &v1alphareflectionpb.FileDescriptorResponse{ ^ reflection/internal/internal.go:269:35: SA1019: v1alphareflectionpb.ExtensionNumberResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) AllExtensionNumbersResponse: &v1alphareflectionpb.ExtensionNumberResponse{ ^ reflection/internal/internal.go:277:20: SA1019: v1alphareflectionpb.ServiceResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) svcs := make([]*v1alphareflectionpb.ServiceResponse, len(mr.ListServicesResponse.GetService())) ^ reflection/internal/internal.go:279:16: SA1019: v1alphareflectionpb.ServiceResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) svcs[i] = &v1alphareflectionpb.ServiceResponse{ ^ reflection/internal/internal.go:284:28: SA1019: v1alphareflectionpb.ListServiceResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ListServicesResponse: &v1alphareflectionpb.ListServiceResponse{ ^ reflection/internal/internal.go:292:21: SA1019: v1alphareflectionpb.ErrorResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ErrorResponse: &v1alphareflectionpb.ErrorResponse{ ^ reflection/internal/internal.go:305:34: SA1019: v1alphareflectionpb.ServerReflectionRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1AlphaToV1Request(v1alpha *v1alphareflectionpb.ServerReflectionRequest) *v1reflectionpb.ServerReflectionRequest { ^ reflection/internal/internal.go:307:12: SA1019: v1alpha.Host is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1.Host = v1alpha.Host ^ reflection/internal/internal.go:311:20: SA1019: mr.FileByFilename is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileByFilename: mr.FileByFilename, ^ reflection/internal/internal.go:315:26: SA1019: mr.FileContainingSymbol is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileContainingSymbol: mr.FileContainingSymbol, ^ reflection/internal/internal.go:318:6: SA1019: mr.FileContainingExtension is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) if mr.FileContainingExtension != nil { ^ reflection/internal/internal.go:321:23: SA1019: mr.FileContainingExtension.GetContainingType is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ContainingType: mr.FileContainingExtension.GetContainingType(), ^ reflection/internal/internal.go:322:23: SA1019: mr.FileContainingExtension.GetExtensionNumber is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ExtensionNumber: mr.FileContainingExtension.GetExtensionNumber(), ^ reflection/internal/internal.go:328:31: SA1019: mr.AllExtensionNumbersOfType is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) AllExtensionNumbersOfType: mr.AllExtensionNumbersOfType, ^ ```
v1.59.1 ``` balancer/pickfirst/pickfirst.go:169:3: SA1019: b.cc.UpdateAddresses is deprecated: this method will be removed. Create new SubConns for new addresses instead. (staticcheck) b.cc.UpdateAddresses(b.subConn, addrs) ^ balancer/pickfirst/pickfirst.go:174:18: SA1019: b.cc.NewSubConn is deprecated: please be aware that in a future version, SubConns will only support one address per SubConn. (staticcheck) subConn, err := b.cc.NewSubConn(addrs, balancer.NewSubConnOptions{ ^ admin/test/utils.go:71:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(lis.Addr().String(), grpc.WithTransportCredentials(insecure.NewCredentials())) ^ benchmark/benchmark.go:344:15: SA1019: grpc.DialContext is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.DialContext(ctx, addr, opts...) ^ benchmark/benchmain/main.go:295:4: SA1019: grpc.RPCCompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCCompressor(nopCompressor{}), ^ benchmark/benchmain/main.go:296:4: SA1019: grpc.RPCDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCDecompressor(nopDecompressor{}), ^ benchmark/benchmain/main.go:299:4: SA1019: grpc.WithCompressor is deprecated: use UseCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithCompressor(nopCompressor{}), ^ benchmark/benchmain/main.go:300:4: SA1019: grpc.WithDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithDecompressor(nopDecompressor{}), ^ benchmark/benchmain/main.go:305:4: SA1019: grpc.RPCCompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCCompressor(grpc.NewGZIPCompressor()), ^ benchmark/benchmain/main.go:306:4: SA1019: grpc.RPCDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.RPCDecompressor(grpc.NewGZIPDecompressor()), ^ benchmark/benchmain/main.go:309:4: SA1019: grpc.WithCompressor is deprecated: use UseCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithCompressor(grpc.NewGZIPCompressor()), ^ benchmark/benchmain/main.go:310:4: SA1019: grpc.WithDecompressor is deprecated: use encoding.RegisterCompressor instead. Will be supported throughout 1.x. (staticcheck) grpc.WithDecompressor(grpc.NewGZIPDecompressor()), ^ benchmark/client/main.go:141:4: SA1019: grpc.WithBlock is deprecated: this DialOption is not supported by NewClient. Will be supported throughout 1.x. (staticcheck) grpc.WithBlock(), ^ benchmark/worker/benchmark_client.go:150:52: SA1019: grpc.CallCustomCodec is deprecated: use ForceCodec instead. (staticcheck) opts = append(opts, grpc.WithDefaultCallOptions(grpc.CallCustomCodec(byteBufCodec{}))) ^ benchmark/worker/benchmark_server.go:128:24: SA1019: grpc.CustomCodec is deprecated: register codecs using encoding.RegisterCodec. The server will automatically use registered codecs based on the incoming requests' headers. See also https://github.com/grpc/grpc-go/blob/master/Documentation/encoding.md#using-a-codec. Will be supported throughout 1.x. (staticcheck) opts = append(opts, grpc.CustomCodec(byteBufCodec{})) ^ internal/stubserver/stubserver.go:195:13: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) cc, err := grpc.Dial(ss.Target, opts...) ^ interop/orcalb.go:59:3: SA1019: o.sc.UpdateAddresses is deprecated: this method will be removed. Create new SubConns for new addresses instead. (staticcheck) o.sc.UpdateAddresses(s.ResolverState.Addresses) ^ interop/orcalb.go:68:14: SA1019: o.cc.NewSubConn is deprecated: please be aware that in a future version, SubConns will only support one address per SubConn. (staticcheck) o.sc, err = o.cc.NewSubConn(s.ResolverState.Addresses, balancer.NewSubConnOptions{StateListener: o.updateSubConnState}) ^ interop/test_utils.go:692:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err = grpc.Dial(serverAddr, dopts...) ^ interop/alts/client/client.go:51:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(*serverAddr, grpc.WithTransportCredentials(altsTC), grpc.WithBlock()) ^ interop/client/client.go:264:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(serverAddr, opts...) ^ interop/grpclb_fallback/client_linux.go:115:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(*serverURI, opts...) ^ interop/http2/negative_http2_client.go:136:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(serverAddr, opts...) ^ interop/stress/client/main.go:322:9: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) return grpc.Dial(address, opts...) ^ interop/stress/metrics_client/main.go:78:15: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) conn, err := grpc.Dial(*metricsServerAddress, grpc.WithTransportCredentials(insecure.NewCredentials())) ^ interop/xds_federation/client.go:104:14: SA1019: grpc.Dial is deprecated: use NewClient instead. Will be supported throughout 1.x. (staticcheck) cc, err := grpc.Dial(uris[i], opts...) ^ reflection/internal/internal.go:251:72: SA1019: v1alphareflectionpb.ServerReflectionResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1ToV1AlphaResponse(v1 *v1reflectionpb.ServerReflectionResponse) *v1alphareflectionpb.ServerReflectionResponse { ^ reflection/internal/internal.go:252:14: SA1019: v1alphareflectionpb.ServerReflectionResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) var v1alpha v1alphareflectionpb.ServerReflectionResponse ^ reflection/internal/internal.go:253:2: SA1019: v1alpha.ValidHost is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1alpha.ValidHost = v1.ValidHost ^ reflection/internal/internal.go:255:3: SA1019: v1alpha.OriginalRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1alpha.OriginalRequest = V1ToV1AlphaRequest(v1.OriginalRequest) ^ reflection/internal/internal.go:261:30: SA1019: v1alphareflectionpb.FileDescriptorResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileDescriptorResponse: &v1alphareflectionpb.FileDescriptorResponse{ ^ reflection/internal/internal.go:269:35: SA1019: v1alphareflectionpb.ExtensionNumberResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) AllExtensionNumbersResponse: &v1alphareflectionpb.ExtensionNumberResponse{ ^ reflection/internal/internal.go:277:20: SA1019: v1alphareflectionpb.ServiceResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) svcs := make([]*v1alphareflectionpb.ServiceResponse, len(mr.ListServicesResponse.GetService())) ^ reflection/internal/internal.go:279:16: SA1019: v1alphareflectionpb.ServiceResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) svcs[i] = &v1alphareflectionpb.ServiceResponse{ ^ reflection/internal/internal.go:284:28: SA1019: v1alphareflectionpb.ListServiceResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ListServicesResponse: &v1alphareflectionpb.ListServiceResponse{ ^ reflection/internal/internal.go:292:21: SA1019: v1alphareflectionpb.ErrorResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ErrorResponse: &v1alphareflectionpb.ErrorResponse{ ^ reflection/internal/internal.go:305:34: SA1019: v1alphareflectionpb.ServerReflectionRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1AlphaToV1Request(v1alpha *v1alphareflectionpb.ServerReflectionRequest) *v1reflectionpb.ServerReflectionRequest { ^ reflection/internal/internal.go:307:12: SA1019: v1alpha.Host is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1.Host = v1alpha.Host ^ reflection/internal/internal.go:311:20: SA1019: mr.FileByFilename is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileByFilename: mr.FileByFilename, ^ reflection/internal/internal.go:315:26: SA1019: mr.FileContainingSymbol is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileContainingSymbol: mr.FileContainingSymbol, ^ reflection/internal/internal.go:318:6: SA1019: mr.FileContainingExtension is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) if mr.FileContainingExtension != nil { ^ reflection/internal/internal.go:321:23: SA1019: mr.FileContainingExtension.GetContainingType is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ContainingType: mr.FileContainingExtension.GetContainingType(), ^ reflection/internal/internal.go:322:23: SA1019: mr.FileContainingExtension.GetExtensionNumber is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ExtensionNumber: mr.FileContainingExtension.GetExtensionNumber(), ^ reflection/internal/internal.go:328:31: SA1019: mr.AllExtensionNumbersOfType is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) AllExtensionNumbersOfType: mr.AllExtensionNumbersOfType, ^ reflection/internal/internal.go:332:18: SA1019: mr.ListServices is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) ListServices: mr.ListServices, ^ reflection/internal/internal.go:341:70: SA1019: v1alphareflectionpb.ServerReflectionRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1ToV1AlphaRequest(v1 *v1reflectionpb.ServerReflectionRequest) *v1alphareflectionpb.ServerReflectionRequest { ^ reflection/internal/internal.go:342:14: SA1019: v1alphareflectionpb.ServerReflectionRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) var v1alpha v1alphareflectionpb.ServerReflectionRequest ^ reflection/internal/internal.go:343:2: SA1019: v1alpha.Host is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) v1alpha.Host = v1.Host ^ reflection/internal/internal.go:360:31: SA1019: v1alphareflectionpb.ExtensionRequest is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) FileContainingExtension: &v1alphareflectionpb.ExtensionRequest{ ^ reflection/internal/internal.go:385:35: SA1019: v1alphareflectionpb.ServerReflectionResponse is deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. (staticcheck) func V1AlphaToV1Response(v1alpha *v1alphareflectionpb.ServerReflectionResponse) *v1reflectionpb.ServerReflectionResponse { ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 17.244 ± 0.133 17.067 17.531 1.03 ± 0.01
v1.59.1 16.688 ± 0.096 16.527 16.826 1.00

gohugoio/hugo

local ``` modules/config.go:101:11: SA1019: dirs.DataDir is deprecated: Use module mounts. The data source directory. (staticcheck) dir = dirs.DataDir ^ modules/config.go:104:11: SA1019: dirs.LayoutDir is deprecated: Use module mounts. The layout source directory. (staticcheck) dir = dirs.LayoutDir ^ modules/config.go:107:11: SA1019: dirs.I18nDir is deprecated: Use module mounts. The i18n source directory. (staticcheck) dir = dirs.I18nDir ^ modules/config.go:110:11: SA1019: dirs.ArcheTypeDir is deprecated: Use module mounts. The archetypes source directory. (staticcheck) dir = dirs.ArcheTypeDir ^ modules/config.go:113:11: SA1019: dirs.AssetDir is deprecated: Use module mounts. The assets source directory. (staticcheck) dir = dirs.AssetDir ^ tpl/internal/go_templates/texttemplate/exec_test.go:1756:2: SA4006: this value of `err` is never used (staticcheck) tmpl, err = New("").Parse(textCall) ^ ```
v1.59.1 ``` tpl/internal/go_templates/texttemplate/exec_test.go:1756:2: SA4006: this value of `err` is never used (staticcheck) tmpl, err = New("").Parse(textCall) ^ helpers/general.go:200:10: SA1019: strings.Title has been deprecated since Go 1.18 and an alternative has been available since Go 1.0: The rule Title uses for word boundaries does not handle Unicode punctuation properly. Use golang.org/x/text/cases instead. (staticcheck) return strings.Title ^ modules/config.go:101:11: SA1019: dirs.DataDir is deprecated: Use module mounts. The data source directory. (staticcheck) dir = dirs.DataDir ^ modules/config.go:104:11: SA1019: dirs.LayoutDir is deprecated: Use module mounts. The layout source directory. (staticcheck) dir = dirs.LayoutDir ^ modules/config.go:107:11: SA1019: dirs.I18nDir is deprecated: Use module mounts. The i18n source directory. (staticcheck) dir = dirs.I18nDir ^ modules/config.go:110:11: SA1019: dirs.ArcheTypeDir is deprecated: Use module mounts. The archetypes source directory. (staticcheck) dir = dirs.ArcheTypeDir ^ modules/config.go:113:11: SA1019: dirs.AssetDir is deprecated: Use module mounts. The assets source directory. (staticcheck) dir = dirs.AssetDir ^ tpl/internal/go_templates/texttemplate/examplefunc_test.go:24:12: SA1019: strings.Title has been deprecated since Go 1.18 and an alternative has been available since Go 1.0: The rule Title uses for word boundaries does not handle Unicode punctuation properly. Use golang.org/x/text/cases instead. (staticcheck) "title": strings.Title, ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 62.602 ± 0.420 62.099 63.362 1.03 ± 0.01
v1.59.1 60.669 ± 0.516 60.336 62.083 1.00

kubernetes/kubernetes

local ``` pkg/kubeapiserver/authorizer/config.go:179:15: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return nil, fmt.Errorf(errors.ToAggregate().Error()) ^ test/utils/deployment.go:229:9: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) err = fmt.Errorf(reason) ^ test/e2e/framework/debug/resource_usage_gatherer.go:598:20: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return &summary, fmt.Errorf(strings.Join(violatedConstraints, "\n")) ^ test/e2e/framework/autoscaling/autoscaling_utils.go:487:13: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return 0, fmt.Errorf(invalidKind) ^ test/e2e/upgrades/apps/cassandra.go:134:15: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return nil, fmt.Errorf(string(b)) ^ test/e2e/upgrades/apps/cassandra.go:156:10: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return fmt.Errorf(string(b)) ^ test/e2e/upgrades/apps/etcd.go:128:15: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return nil, fmt.Errorf(string(b)) ^ test/e2e/upgrades/apps/etcd.go:149:10: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return fmt.Errorf(string(b)) ^ test/e2e/upgrades/apps/mysql.go:197:10: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return fmt.Errorf(string(b)) ^ test/e2e/upgrades/apps/mysql.go:215:13: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return 0, fmt.Errorf(string(b)) ^ pkg/controller/garbagecollector/config/v1alpha1/defaults.go:21:2: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) "k8s.io/utils/pointer" ^ pkg/controller/volume/persistentvolume/config/v1alpha1/defaults.go:24:2: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) "k8s.io/utils/pointer" ^ pkg/apis/core/v1/defaults.go:67:5: SA1019: pointer.AllPtrFieldsNil is deprecated: Use ptr.AllPtrFieldsNil instead. (staticcheck) if pointer.AllPtrFieldsNil(&obj.VolumeSource) { ^ pkg/apis/core/v1/conversion.go:31:14: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) utilpointer "k8s.io/utils/pointer" ^ pkg/apis/core/v1/defaults.go:29:2: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) "k8s.io/utils/pointer" ^ pkg/apis/certificates/helpers.go:65:63: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func IsKubeletServingCSR(req *x509.CertificateRequest, usages sets.String) bool { ^ pkg/apis/certificates/helpers.go:68:69: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func ValidateKubeletServingCSR(req *x509.CertificateRequest, usages sets.String) error { ^ pkg/apis/certificates/helpers.go:108:62: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func IsKubeletClientCSR(req *x509.CertificateRequest, usages sets.String) bool { ^ pkg/apis/certificates/helpers.go:111:68: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func ValidateKubeletClientCSR(req *x509.CertificateRequest, usages sets.String) error { ^ pkg/apis/batch/v1/defaults.go:27:14: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) utilpointer "k8s.io/utils/pointer" ^ pkg/apis/admissionregistration/v1/defaults.go:23:14: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) utilpointer "k8s.io/utils/pointer" ^ pkg/apis/admissionregistration/v1beta1/defaults.go:23:14: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) utilpointer "k8s.io/utils/pointer" ^ pkg/apis/autoscaling/v2/defaults.go:24:2: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) "k8s.io/utils/pointer" ^ pkg/apis/autoscaling/v2beta2/defaults.go:24:2: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) "k8s.io/utils/pointer" ^ pkg/apis/networking/v1/defaults.go:23:14: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) utilpointer "k8s.io/utils/pointer" ^ pkg/registry/scheduling/rest/storage_scheduling.go:82:10: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.Poll(1*time.Second, 30*time.Second, func() (done bool, err error) { ^ pkg/kubelet/cm/devicemanager/plugin/v1beta1/stub.go:163:2: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) wait.PollImmediate(1*time.Second, 10*time.Second, func() (bool, error) { ^ test/utils/deployment.go:81:9: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/deployment.go:209:9: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/deployment.go:305:13: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) pollErr := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/deployment.go:333:9: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/deployment.go:353:9: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/deployment.go:369:13: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) pollErr := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/pod_store.go:59:12: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) if err := wait.PollImmediate(50*time.Millisecond, 2*time.Minute, func() (bool, error) { ^ test/utils/replicaset.go:36:13: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) pollErr := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/replicaset.go:59:12: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) if err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/runners.go:223:38: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func (p podDiff) String(ignorePhases sets.String) string { ^ test/utils/runners.go:655:24: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) ContainerRestartNodes sets.String ^ test/utils/runners.go:1575:8: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = wait.Poll(time.Second, timeout, func() (bool, error) { ^ cmd/kube-apiserver/app/testing/testserver.go:405:9: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = wait.Poll(100*time.Millisecond, time.Minute, func() (bool, error) { ^ cmd/kube-apiserver/app/testing/testserver.go:435:8: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = wait.Poll(100*time.Millisecond, 30*time.Second, func() (bool, error) { ^ pkg/api/service/testing/make.go:86:43: SA1019: utilpointer.BoolPtr is deprecated: Use ptr.To instead. (staticcheck) svc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) ^ pkg/api/service/testing/make.go:196:44: SA1019: utilpointer.BoolPtr is deprecated: Use ptr.To instead. (staticcheck) svc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(val) ^ pkg/controller/nodeipam/ipam/test/utils.go:60:9: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) return wait.Poll(NodePollInterval, timeout, func() (bool, error) { ^ test/e2e/framework/network/utils.go:221:159: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func (config *NetworkingTestConfig) DialFromEndpointContainer(ctx context.Context, protocol, targetIP string, targetPort, maxTries, minTries int, expectedEps sets.String) error { ^ test/e2e/framework/network/utils.go:226:155: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func (config *NetworkingTestConfig) DialFromTestContainer(ctx context.Context, protocol, targetIP string, targetPort, maxTries, minTries int, expectedEps sets.String) error { ^ test/e2e/framework/network/utils.go:251:77: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func (config *NetworkingTestConfig) diagnoseMissingEndpoints(foundEndpoints sets.String) { ^ test/e2e/framework/network/utils.go:264:57: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func (config *NetworkingTestConfig) EndpointHostnames() sets.String { ^ test/e2e/framework/node/runtimeclass/runtimeclass.go:53:34: SA1019: utilpointer.BoolPtr is deprecated: Use ptr.To instead. (staticcheck) AutomountServiceAccountToken: utilpointer.BoolPtr(false), ^ test/e2e/common/node/container_probe.go:1517:19: SA1019: cache.NewInformer is deprecated: Use NewInformerWithOptions instead. (staticcheck) _, controller := cache.NewInformer( ^ ```
v1.59.1 ``` pkg/controller/garbagecollector/config/v1alpha1/defaults.go:21:2: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) "k8s.io/utils/pointer" ^ pkg/controller/volume/persistentvolume/config/v1alpha1/defaults.go:24:2: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) "k8s.io/utils/pointer" ^ pkg/apis/core/v1/defaults.go:67:5: SA1019: pointer.AllPtrFieldsNil is deprecated: Use ptr.AllPtrFieldsNil instead. (staticcheck) if pointer.AllPtrFieldsNil(&obj.VolumeSource) { ^ pkg/apis/core/v1/conversion.go:31:14: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) utilpointer "k8s.io/utils/pointer" ^ pkg/apis/core/v1/defaults.go:29:2: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) "k8s.io/utils/pointer" ^ cmd/dependencyverifier/dependencyverifier.go:23:2: SA1019: "io/ioutil" has been deprecated since Go 1.19: As of Go 1.16, the same functionality is now provided by package [io] or package [os], and those implementations should be preferred in new code. See the specific function documentation for details. (staticcheck) "io/ioutil" ^ pkg/apis/certificates/helpers.go:65:63: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func IsKubeletServingCSR(req *x509.CertificateRequest, usages sets.String) bool { ^ pkg/apis/certificates/helpers.go:68:69: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func ValidateKubeletServingCSR(req *x509.CertificateRequest, usages sets.String) error { ^ pkg/apis/certificates/helpers.go:108:62: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func IsKubeletClientCSR(req *x509.CertificateRequest, usages sets.String) bool { ^ pkg/apis/certificates/helpers.go:111:68: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func ValidateKubeletClientCSR(req *x509.CertificateRequest, usages sets.String) error { ^ pkg/apis/batch/v1/defaults.go:27:14: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) utilpointer "k8s.io/utils/pointer" ^ pkg/apis/admissionregistration/v1/defaults.go:23:14: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) utilpointer "k8s.io/utils/pointer" ^ pkg/apis/admissionregistration/v1beta1/defaults.go:23:14: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) utilpointer "k8s.io/utils/pointer" ^ pkg/apis/autoscaling/v2/defaults.go:24:2: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) "k8s.io/utils/pointer" ^ pkg/apis/autoscaling/v2beta2/defaults.go:24:2: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) "k8s.io/utils/pointer" ^ pkg/apis/networking/v1/defaults.go:23:14: SA1019: "k8s.io/utils/pointer" is deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare dereferenced pointers. (staticcheck) utilpointer "k8s.io/utils/pointer" ^ pkg/registry/scheduling/rest/storage_scheduling.go:82:10: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.Poll(1*time.Second, 30*time.Second, func() (done bool, err error) { ^ pkg/kubelet/cm/devicemanager/plugin/v1beta1/stub.go:163:2: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) wait.PollImmediate(1*time.Second, 10*time.Second, func() (bool, error) { ^ test/utils/deployment.go:81:9: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/deployment.go:209:9: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/deployment.go:305:13: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) pollErr := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/deployment.go:333:9: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/deployment.go:353:9: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/deployment.go:369:13: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) pollErr := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/pod_store.go:59:12: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) if err := wait.PollImmediate(50*time.Millisecond, 2*time.Minute, func() (bool, error) { ^ test/utils/replicaset.go:36:13: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) pollErr := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/replicaset.go:59:12: SA1019: wait.PollImmediate is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) if err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { ^ test/utils/runners.go:223:38: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func (p podDiff) String(ignorePhases sets.String) string { ^ test/utils/runners.go:655:24: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) ContainerRestartNodes sets.String ^ test/utils/runners.go:1575:8: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = wait.Poll(time.Second, timeout, func() (bool, error) { ^ cmd/kube-apiserver/app/testing/testserver.go:405:9: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = wait.Poll(100*time.Millisecond, time.Minute, func() (bool, error) { ^ cmd/kube-apiserver/app/testing/testserver.go:435:8: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = wait.Poll(100*time.Millisecond, 30*time.Second, func() (bool, error) { ^ pkg/api/service/testing/make.go:86:43: SA1019: utilpointer.BoolPtr is deprecated: Use ptr.To instead. (staticcheck) svc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) ^ pkg/api/service/testing/make.go:196:44: SA1019: utilpointer.BoolPtr is deprecated: Use ptr.To instead. (staticcheck) svc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(val) ^ pkg/controller/nodeipam/ipam/test/utils.go:60:9: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) return wait.Poll(NodePollInterval, timeout, func() (bool, error) { ^ test/e2e/framework/network/utils.go:221:159: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func (config *NetworkingTestConfig) DialFromEndpointContainer(ctx context.Context, protocol, targetIP string, targetPort, maxTries, minTries int, expectedEps sets.String) error { ^ test/e2e/framework/network/utils.go:226:155: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func (config *NetworkingTestConfig) DialFromTestContainer(ctx context.Context, protocol, targetIP string, targetPort, maxTries, minTries int, expectedEps sets.String) error { ^ test/e2e/framework/network/utils.go:251:77: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func (config *NetworkingTestConfig) diagnoseMissingEndpoints(foundEndpoints sets.String) { ^ test/e2e/framework/network/utils.go:264:57: SA1019: sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (staticcheck) func (config *NetworkingTestConfig) EndpointHostnames() sets.String { ^ test/e2e/framework/node/runtimeclass/runtimeclass.go:53:34: SA1019: utilpointer.BoolPtr is deprecated: Use ptr.To instead. (staticcheck) AutomountServiceAccountToken: utilpointer.BoolPtr(false), ^ test/e2e/common/node/container_probe.go:1517:19: SA1019: cache.NewInformer is deprecated: Use NewInformerWithOptions instead. (staticcheck) _, controller := cache.NewInformer( ^ test/e2e/common/node/node_lease.go:140:10: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err = wait.Poll(time.Second, 5*time.Minute, func() (bool, error) { ^ test/e2e/common/node/pods.go:798:11: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) err := wait.Poll(time.Second, time.Minute, func() (bool, error) { ^ test/e2e/common/node/security_context.go:382:23: SA1019: pointer.BoolPtr is deprecated: Use ptr.To instead. (staticcheck) RunAsNonRoot: pointer.BoolPtr(true), ^ test/e2e/common/node/security_context.go:395:43: SA1019: pointer.Int64Ptr is deprecated: Use ptr.To instead. (staticcheck) pod := makeNonRootPod(name, rootImage, pointer.Int64Ptr(nonRootTestUserID)) ^ test/e2e/common/node/security_context.go:405:46: SA1019: pointer.Int64Ptr is deprecated: Use ptr.To instead. (staticcheck) pod := makeNonRootPod(name, nonRootImage, pointer.Int64Ptr(0)) ^ test/e2e/common/util.go:194:13: SA1019: wait.Poll is deprecated: This method does not return errors from context, use PollUntilContextTimeout. Note that the new method will no longer return ErrWaitTimeout and instead return errors defined by the context package. Will be removed in a future release. (staticcheck) if err := wait.Poll(30*time.Second, framework.RestartNodeReadyAgainTimeout, func() (bool, error) { ^ test/e2e/framework/service/jig.go:365:18: SA1019: cache.NewInformer is deprecated: Use NewInformerWithOptions instead. (staticcheck) _, controller = cache.NewInformer( ^ test/e2e/framework/service/jig.go:403:20: SA1019: cache.NewInformer is deprecated: Use NewInformerWithOptions instead. (staticcheck) _, esController = cache.NewInformer( ^ test/e2e/scheduling/events.go:67:19: SA1019: cache.NewInformer is deprecated: Use NewInformerWithOptions instead. (staticcheck) _, controller := cache.NewInformer( ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 210.711 ± 2.472 207.858 215.868 1.02 ± 0.01
v1.59.1 205.844 ± 0.825 205.142 208.018 1.00

go-acme/lego

Command Mean [s] Min [s] Max [s] Relative
local 39.064 ± 0.239 38.588 39.437 1.05 ± 0.01
v1.59.1 37.177 ± 0.180 36.980 37.549 1.00

pact-foundation/pact-go

local ``` installer/installer.go:467:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) log.Fatalf(err.Error()) ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 5.545 ± 0.028 5.495 5.589 1.03 ± 0.01
v1.59.1 5.379 ± 0.036 5.336 5.464 1.00

rclone/rclone

local ``` cmd/cmd.go:122:4: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) log.Fatalf(err.Error()) ^ cmd/bisync/operations.go:572:9: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) err = fmt.Errorf(Color(terminal.RedFg, "Overlapping paths detected. Cannot bisync between paths that overlap, unless excluded by filters.")) ^ cmd/mount/mount.go:72:5: SA4032: due to the file's build constraints, runtime.GOOS will never equal "darwin" (staticcheck) if runtime.GOOS == "darwin" { ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 31.494 ± 0.102 31.350 31.655 1.08 ± 0.00
v1.59.1 29.183 ± 0.061 29.086 29.265 1.00

hashicorp/terraform

local ``` internal/addrs/output_value_test.go:118:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(problem) ^ internal/addrs/parse_ref_test.go:162:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(problem) ^ internal/addrs/parse_ref_test.go:953:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(problem) ^ internal/addrs/parse_target_test.go:406:5: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(problem) ^ internal/addrs/provider_test.go:435:4: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Errorf(problem) ^ internal/backend/remote/backend_common.go:442:13: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return fmt.Errorf( ^ internal/cloud/backend_common.go:415:13: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return fmt.Errorf( ^ internal/cloud/backend_taskStages.go:194:17: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) return false, fmt.Errorf( ^ internal/cloud/e2e/helper_test.go:262:3: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) t.Fatalf(fmt.Sprintf("Error instantiating go-version for %s", version)) ^ internal/command/init.go:170:24: SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck) diags = diags.Append(fmt.Errorf(view.PrepareMessage(views.InitConfigError)), earlyConfDiags) ^ internal/cloud/tfe_client_mock.go:521:80: SA1019: tfe.DataRetentionPolicy is deprecated: Use DataRetentionPolicyDeleteOlder instead. This is the original representation of a data retention policy, only present in TFE v202311-1 and v202312-1 (staticcheck) func (m *MockOrganizations) ReadDataRetentionPolicy(context.Context, string) (*tfe.DataRetentionPolicy, error) { ^ internal/cloud/tfe_client_mock.go:525:102: SA1019: tfe.DataRetentionPolicySetOptions is deprecated: Use DataRetentionPolicyDeleteOlder variations instead (staticcheck) func (m *MockOrganizations) SetDataRetentionPolicy(ctx context.Context, organization string, options tfe.DataRetentionPolicySetOptions) (*tfe.DataRetentionPolicy, error) { ^ internal/cloud/tfe_client_mock.go:2309:93: SA1019: tfe.DataRetentionPolicy is deprecated: Use DataRetentionPolicyDeleteOlder instead. This is the original representation of a data retention policy, only present in TFE v202311-1 and v202312-1 (staticcheck) func (s *MockWorkspaces) ReadDataRetentionPolicy(ctx context.Context, workspaceID string) (*tfe.DataRetentionPolicy, error) { ^ internal/cloud/tfe_client_mock.go:2313:98: SA1019: tfe.DataRetentionPolicySetOptions is deprecated: Use DataRetentionPolicyDeleteOlder variations instead (staticcheck) func (s *MockWorkspaces) SetDataRetentionPolicy(ctx context.Context, workspaceID string, options tfe.DataRetentionPolicySetOptions) (*tfe.DataRetentionPolicy, error) { ^ internal/rpcapi/grpc_testing.go:34:25: SA1019: otelgrpc.UnaryServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.UnaryInterceptor(otelgrpc.UnaryServerInterceptor()), ^ internal/rpcapi/grpc_testing.go:35:26: SA1019: otelgrpc.StreamServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.StreamInterceptor(otelgrpc.StreamServerInterceptor()), ^ internal/rpcapi/grpc_testing.go:56:3: SA1019: grpc.WithInsecure is deprecated: use WithTransportCredentials and insecure.NewCredentials() instead. Will be supported throughout 1.x. (staticcheck) grpc.WithInsecure(), ^ internal/rpcapi/grpc_testing.go:57:29: SA1019: otelgrpc.UnaryClientInterceptor is deprecated: Use [NewClientHandler] instead. (staticcheck) grpc.WithUnaryInterceptor(otelgrpc.UnaryClientInterceptor()), ^ internal/rpcapi/grpc_testing.go:58:30: SA1019: otelgrpc.StreamClientInterceptor is deprecated: Use [NewClientHandler] instead. (staticcheck) grpc.WithStreamInterceptor(otelgrpc.StreamClientInterceptor()), ^ internal/rpcapi/server.go:42:27: SA1019: otelgrpc.UnaryServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.UnaryInterceptor(otelgrpc.UnaryServerInterceptor()), ^ internal/rpcapi/server.go:43:28: SA1019: otelgrpc.StreamServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.StreamInterceptor(otelgrpc.StreamServerInterceptor()), ^ ```
v1.59.1 ``` internal/replacefile/writefile.go:8:2: SA1019: "io/ioutil" has been deprecated since Go 1.19: As of Go 1.16, the same functionality is now provided by package [io] or package [os], and those implementations should be preferred in new code. See the specific function documentation for details. (staticcheck) "io/ioutil" ^ internal/modsdir/manifest.go:10:2: SA1019: "io/ioutil" has been deprecated since Go 1.19: As of Go 1.16, the same functionality is now provided by package [io] or package [os], and those implementations should be preferred in new code. See the specific function documentation for details. (staticcheck) "io/ioutil" ^ internal/e2e/e2e.go:10:2: SA1019: "io/ioutil" has been deprecated since Go 1.19: As of Go 1.16, the same functionality is now provided by package [io] or package [os], and those implementations should be preferred in new code. See the specific function documentation for details. (staticcheck) "io/ioutil" ^ internal/backend/local/backend.go:10:2: SA1019: "io/ioutil" has been deprecated since Go 1.19: As of Go 1.16, the same functionality is now provided by package [io] or package [os], and those implementations should be preferred in new code. See the specific function documentation for details. (staticcheck) "io/ioutil" ^ internal/backend/remote/backend_plan.go:12:2: SA1019: "io/ioutil" has been deprecated since Go 1.19: As of Go 1.16, the same functionality is now provided by package [io] or package [os], and those implementations should be preferred in new code. See the specific function documentation for details. (staticcheck) "io/ioutil" ^ internal/backend/remote-state/http/client.go:13:2: SA1019: "io/ioutil" has been deprecated since Go 1.19: As of Go 1.16, the same functionality is now provided by package [io] or package [os], and those implementations should be preferred in new code. See the specific function documentation for details. (staticcheck) "io/ioutil" ^ internal/cloud/tfe_client_mock.go:521:80: SA1019: tfe.DataRetentionPolicy is deprecated: Use DataRetentionPolicyDeleteOlder instead. This is the original representation of a data retention policy, only present in TFE v202311-1 and v202312-1 (staticcheck) func (m *MockOrganizations) ReadDataRetentionPolicy(context.Context, string) (*tfe.DataRetentionPolicy, error) { ^ internal/cloud/tfe_client_mock.go:525:102: SA1019: tfe.DataRetentionPolicySetOptions is deprecated: Use DataRetentionPolicyDeleteOlder variations instead (staticcheck) func (m *MockOrganizations) SetDataRetentionPolicy(ctx context.Context, organization string, options tfe.DataRetentionPolicySetOptions) (*tfe.DataRetentionPolicy, error) { ^ internal/cloud/tfe_client_mock.go:2309:93: SA1019: tfe.DataRetentionPolicy is deprecated: Use DataRetentionPolicyDeleteOlder instead. This is the original representation of a data retention policy, only present in TFE v202311-1 and v202312-1 (staticcheck) func (s *MockWorkspaces) ReadDataRetentionPolicy(ctx context.Context, workspaceID string) (*tfe.DataRetentionPolicy, error) { ^ internal/cloud/tfe_client_mock.go:2313:98: SA1019: tfe.DataRetentionPolicySetOptions is deprecated: Use DataRetentionPolicyDeleteOlder variations instead (staticcheck) func (s *MockWorkspaces) SetDataRetentionPolicy(ctx context.Context, workspaceID string, options tfe.DataRetentionPolicySetOptions) (*tfe.DataRetentionPolicy, error) { ^ internal/cloud/backend_plan.go:13:2: SA1019: "io/ioutil" has been deprecated since Go 1.19: As of Go 1.16, the same functionality is now provided by package [io] or package [os], and those implementations should be preferred in new code. See the specific function documentation for details. (staticcheck) "io/ioutil" ^ internal/cloud/tfe_client_mock.go:13:2: SA1019: "io/ioutil" has been deprecated since Go 1.19: As of Go 1.16, the same functionality is now provided by package [io] or package [os], and those implementations should be preferred in new code. See the specific function documentation for details. (staticcheck) "io/ioutil" ^ internal/cloud/state_test.go:9:2: SA1019: "io/ioutil" has been deprecated since Go 1.19: As of Go 1.16, the same functionality is now provided by package [io] or package [os], and those implementations should be preferred in new code. See the specific function documentation for details. (staticcheck) "io/ioutil" ^ internal/cloud/e2e/main_test.go:9:2: SA1019: "io/ioutil" has been deprecated since Go 1.19: As of Go 1.16, the same functionality is now provided by package [io] or package [os], and those implementations should be preferred in new code. See the specific function documentation for details. (staticcheck) "io/ioutil" ^ internal/rpcapi/grpc_testing.go:34:25: SA1019: otelgrpc.UnaryServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.UnaryInterceptor(otelgrpc.UnaryServerInterceptor()), ^ internal/rpcapi/grpc_testing.go:35:26: SA1019: otelgrpc.StreamServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.StreamInterceptor(otelgrpc.StreamServerInterceptor()), ^ internal/rpcapi/grpc_testing.go:56:3: SA1019: grpc.WithInsecure is deprecated: use WithTransportCredentials and insecure.NewCredentials() instead. Will be supported throughout 1.x. (staticcheck) grpc.WithInsecure(), ^ internal/rpcapi/grpc_testing.go:57:29: SA1019: otelgrpc.UnaryClientInterceptor is deprecated: Use [NewClientHandler] instead. (staticcheck) grpc.WithUnaryInterceptor(otelgrpc.UnaryClientInterceptor()), ^ internal/rpcapi/grpc_testing.go:58:30: SA1019: otelgrpc.StreamClientInterceptor is deprecated: Use [NewClientHandler] instead. (staticcheck) grpc.WithStreamInterceptor(otelgrpc.StreamClientInterceptor()), ^ internal/rpcapi/server.go:42:27: SA1019: otelgrpc.UnaryServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.UnaryInterceptor(otelgrpc.UnaryServerInterceptor()), ^ internal/rpcapi/server.go:43:28: SA1019: otelgrpc.StreamServerInterceptor is deprecated: Use [NewServerHandler] instead. (staticcheck) grpc.StreamInterceptor(otelgrpc.StreamServerInterceptor()), ^ ```
Command Mean [s] Min [s] Max [s] Relative
local 40.731 ± 0.215 40.433 41.006 1.04 ± 0.01
v1.59.1 39.003 ± 0.109 38.836 39.212 1.00

traefik/traefik

Command Mean [s] Min [s] Max [s] Relative
local 95.545 ± 0.644 94.512 97.060 1.08 ± 0.01
v1.59.1 88.659 ± 0.382 88.132 89.458 1.00

You can find the workflow here: https://github.com/ldez/golangci-lint-bench/actions/runs/9785114327