fullstorydev / grpcurl

Like cURL, but for gRPC: Command-line tool for interacting with gRPC servers
MIT License
10.36k stars 497 forks source link

Update `protoreflect` v1.15.2 and `grpc` v1.57.0 #406

Closed sigv closed 10 months ago

sigv commented 10 months ago

This bumps github.com/jhump/protoreflect to v1.15.2 and google.golang.org/grpc to v1.57.0.

The proposal already exists by Dependabot, as PRs #403 and #409, but the version bump pulls in grpc.reflection.v1.ServerReflection resulting in minor test change being required.

Transient dependency github.com/bufbuild/protocompile is now added, and requires at least Go 1.18. This PR includes the version removal.

ghost commented 10 months ago
👇 Click on the image for a new way to code review #### [![Review these changes using an interactive CodeSee Map](https://s3.us-east-2.amazonaws.com/maps.codesee.io/images/github/fullstorydev/grpcurl/406/51fcb08f/2b1710658a5bd444b469cafd266d65b57c48f9fd.svg)](https://app.codesee.io/r/reviews?pr=406&src=https%3A%2F%2Fgithub.com%2Ffullstorydev%2Fgrpcurl) #### Legend CodeSee Map legend
sigv commented 10 months ago

I'm guessing the updated @jhump protoreflect depends on bufbuild?

Indeed. You can see v1.14.1 go.mod without github.com/bufbuild/protocompile dependency. All of the v1.15.x versions have some bufbuild dependency however:

jhump commented 10 months ago

I'm guessing the updated @jhump protoreflect depends on bufbuild?

Yeah, there were two major changes as of v1.15:

  1. The core descriptor interfaces and concrete types in the desc package are now just wrappers around the stuff added in API v2 of the protobuf runtime, in google.golang.org/protobuf/reflect/protoreflect. This greatly improves interop between the official protoreflect library and mine (which predates the official one).
  2. The protoparse package would have been a tremendous pain to overhaul to support the above bullet. So instead, it is now just a thin API veneer over github.com/bufbuild/protocompile -- a newer parser/compiler that directly works with the v2 API's official protoreflect package.