From e70de721b8576dd8df41ca75f5ed6af8de0c6185 Mon Sep 17 00:00:00 2001 From: Ahmed Radwan Date: Tue, 29 Oct 2024 09:21:27 +0300 Subject: [PATCH] remove deprecated protobuf ptypes (#942) * remove deprecated protobuf ptypes * tidy compiled proto and go mod * bump protobuf --- go.mod | 3 +- go.sum | 11 +----- internal/base/base.go | 80 ++++++++++++-------------------------- internal/proto/asynq.pb.go | 21 ++++------ 4 files changed, 36 insertions(+), 79 deletions(-) diff --git a/go.mod b/go.mod index 4f20e6c..d9f0891 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,6 @@ module github.com/hibiken/asynq go 1.22 require ( - github.com/golang/protobuf v1.5.3 github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 github.com/redis/go-redis/v9 v9.4.0 @@ -12,7 +11,7 @@ require ( go.uber.org/goleak v1.3.0 golang.org/x/sys v0.16.0 golang.org/x/time v0.3.0 - google.golang.org/protobuf v1.31.0 + google.golang.org/protobuf v1.35.1 ) require ( diff --git a/go.sum b/go.sum index 6c7a00a..71cca1c 100644 --- a/go.sum +++ b/go.sum @@ -10,10 +10,6 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -40,10 +36,7 @@ golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/base/base.go b/internal/base/base.go index 054edf5..d80ec42 100644 --- a/internal/base/base.go +++ b/internal/base/base.go @@ -14,12 +14,12 @@ import ( "sync" "time" - "github.com/golang/protobuf/ptypes" //nolint: staticcheck "github.com/hibiken/asynq/internal/errors" pb "github.com/hibiken/asynq/internal/proto" "github.com/hibiken/asynq/internal/timeutil" "github.com/redis/go-redis/v9" "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/timestamppb" ) // Version of asynq library and CLI. @@ -379,10 +379,8 @@ func EncodeServerInfo(info *ServerInfo) ([]byte, error) { for q, p := range info.Queues { queues[q] = int32(p) } - started, err := ptypes.TimestampProto(info.Started) //nolint: staticcheck - if err != nil { - return nil, err - } + started := timestamppb.New(info.Started) + return proto.Marshal(&pb.ServerInfo{ Host: info.Host, Pid: int32(info.PID), @@ -406,10 +404,8 @@ func DecodeServerInfo(b []byte) (*ServerInfo, error) { for q, p := range pbmsg.GetQueues() { queues[q] = int(p) } - startTime, err := ptypes.Timestamp(pbmsg.GetStartTime()) //nolint: staticcheck - if err != nil { - return nil, err - } + startTime := pbmsg.GetStartTime() + return &ServerInfo{ Host: pbmsg.GetHost(), PID: int(pbmsg.GetPid()), @@ -418,7 +414,7 @@ func DecodeServerInfo(b []byte) (*ServerInfo, error) { Queues: queues, StrictPriority: pbmsg.GetStrictPriority(), Status: pbmsg.GetStatus(), - Started: startTime, + Started: startTime.AsTime(), ActiveWorkerCount: int(pbmsg.GetActiveWorkerCount()), }, nil } @@ -441,14 +437,9 @@ func EncodeWorkerInfo(info *WorkerInfo) ([]byte, error) { if info == nil { return nil, fmt.Errorf("cannot encode nil worker info") } - startTime, err := ptypes.TimestampProto(info.Started) //nolint: staticcheck - if err != nil { - return nil, err - } - deadline, err := ptypes.TimestampProto(info.Deadline) //nolint: staticcheck - if err != nil { - return nil, err - } + startTime := timestamppb.New(info.Started) + deadline := timestamppb.New(info.Deadline) + return proto.Marshal(&pb.WorkerInfo{ Host: info.Host, Pid: int32(info.PID), @@ -468,14 +459,9 @@ func DecodeWorkerInfo(b []byte) (*WorkerInfo, error) { if err := proto.Unmarshal(b, &pbmsg); err != nil { return nil, err } - startTime, err := ptypes.Timestamp(pbmsg.GetStartTime()) //nolint: staticcheck - if err != nil { - return nil, err - } - deadline, err := ptypes.Timestamp(pbmsg.GetDeadline()) //nolint: staticcheck - if err != nil { - return nil, err - } + startTime := pbmsg.GetStartTime() + deadline := pbmsg.GetDeadline() + return &WorkerInfo{ Host: pbmsg.GetHost(), PID: int(pbmsg.GetPid()), @@ -484,8 +470,8 @@ func DecodeWorkerInfo(b []byte) (*WorkerInfo, error) { Type: pbmsg.GetTaskType(), Payload: pbmsg.GetTaskPayload(), Queue: pbmsg.GetQueue(), - Started: startTime, - Deadline: deadline, + Started: startTime.AsTime(), + Deadline: deadline.AsTime(), }, nil } @@ -519,14 +505,9 @@ func EncodeSchedulerEntry(entry *SchedulerEntry) ([]byte, error) { if entry == nil { return nil, fmt.Errorf("cannot encode nil scheduler entry") } - next, err := ptypes.TimestampProto(entry.Next) //nolint: staticcheck - if err != nil { - return nil, err - } - prev, err := ptypes.TimestampProto(entry.Prev) //nolint: staticcheck - if err != nil { - return nil, err - } + next := timestamppb.New(entry.Next) + prev := timestamppb.New(entry.Prev) + return proto.Marshal(&pb.SchedulerEntry{ Id: entry.ID, Spec: entry.Spec, @@ -544,22 +525,17 @@ func DecodeSchedulerEntry(b []byte) (*SchedulerEntry, error) { if err := proto.Unmarshal(b, &pbmsg); err != nil { return nil, err } - next, err := ptypes.Timestamp(pbmsg.GetNextEnqueueTime()) //nolint: staticcheck - if err != nil { - return nil, err - } - prev, err := ptypes.Timestamp(pbmsg.GetPrevEnqueueTime()) //nolint: staticcheck - if err != nil { - return nil, err - } + next := pbmsg.GetNextEnqueueTime() + prev := pbmsg.GetPrevEnqueueTime() + return &SchedulerEntry{ ID: pbmsg.GetId(), Spec: pbmsg.GetSpec(), Type: pbmsg.GetTaskType(), Payload: pbmsg.GetTaskPayload(), Opts: pbmsg.GetEnqueueOptions(), - Next: next, - Prev: prev, + Next: next.AsTime(), + Prev: prev.AsTime(), }, nil } @@ -578,10 +554,7 @@ func EncodeSchedulerEnqueueEvent(event *SchedulerEnqueueEvent) ([]byte, error) { if event == nil { return nil, fmt.Errorf("cannot encode nil enqueue event") } - enqueuedAt, err := ptypes.TimestampProto(event.EnqueuedAt) //nolint: staticcheck - if err != nil { - return nil, err - } + enqueuedAt := timestamppb.New(event.EnqueuedAt) return proto.Marshal(&pb.SchedulerEnqueueEvent{ TaskId: event.TaskID, EnqueueTime: enqueuedAt, @@ -595,13 +568,10 @@ func DecodeSchedulerEnqueueEvent(b []byte) (*SchedulerEnqueueEvent, error) { if err := proto.Unmarshal(b, &pbmsg); err != nil { return nil, err } - enqueuedAt, err := ptypes.Timestamp(pbmsg.GetEnqueueTime()) //nolint: staticcheck - if err != nil { - return nil, err - } + enqueuedAt := pbmsg.GetEnqueueTime() return &SchedulerEnqueueEvent{ TaskID: pbmsg.GetTaskId(), - EnqueuedAt: enqueuedAt, + EnqueuedAt: enqueuedAt.AsTime(), }, nil } diff --git a/internal/proto/asynq.pb.go b/internal/proto/asynq.pb.go index ec14b8c..a7d77be 100644 --- a/internal/proto/asynq.pb.go +++ b/internal/proto/asynq.pb.go @@ -4,14 +4,13 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 -// protoc v3.17.3 +// protoc-gen-go v1.34.2 +// protoc v3.19.6 // source: asynq.proto package proto import ( - proto "github.com/golang/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" @@ -26,10 +25,6 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// This is a compile-time assertion that a sufficiently up-to-date version -// of the legacy proto package is being used. -const _ = proto.ProtoPackageIsVersion4 - // TaskMessage is the internal representation of a task with additional // metadata fields. // Next ID: 15 @@ -739,7 +734,7 @@ func file_asynq_proto_rawDescGZIP() []byte { } var file_asynq_proto_msgTypes = make([]protoimpl.MessageInfo, 6) -var file_asynq_proto_goTypes = []interface{}{ +var file_asynq_proto_goTypes = []any{ (*TaskMessage)(nil), // 0: asynq.TaskMessage (*ServerInfo)(nil), // 1: asynq.ServerInfo (*WorkerInfo)(nil), // 2: asynq.WorkerInfo @@ -769,7 +764,7 @@ func file_asynq_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_asynq_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_asynq_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*TaskMessage); i { case 0: return &v.state @@ -781,7 +776,7 @@ func file_asynq_proto_init() { return nil } } - file_asynq_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_asynq_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*ServerInfo); i { case 0: return &v.state @@ -793,7 +788,7 @@ func file_asynq_proto_init() { return nil } } - file_asynq_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_asynq_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*WorkerInfo); i { case 0: return &v.state @@ -805,7 +800,7 @@ func file_asynq_proto_init() { return nil } } - file_asynq_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_asynq_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*SchedulerEntry); i { case 0: return &v.state @@ -817,7 +812,7 @@ func file_asynq_proto_init() { return nil } } - file_asynq_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_asynq_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*SchedulerEnqueueEvent); i { case 0: return &v.state