Closed matejsp closed 2 months ago
Changes we need to consider with 5.x.x
Thanks for calling that out @artificial-aidan. @matejsp - I'll pick this up when I get a chance, I believe we'll have to write some shims to handle the breaking method changes that were made in 5.0.
Tangentially - we should look at adjusting the CI tests to run with different versions of protobuf.
I think it's time to give up on single versioning. In the future, why not specify the protobuf and grpc version support coverage per major version in grpc_requests?
like this
I think I disagree with that. Because the dependencies are pretty simple in grpc_requests and managing the different protobuf versions with helper functions is pretty simple.
Managing multiple version publishing, and adding back porting fixes/features becomes painful.
I understand. So, in this case if we include support for protobuf>=5.27.2 or later versions, and then add the dependency restriction after including support for protobuf>=27.2 and later versions?
Starting in I think 4.21.x protobuf changed how they version their packages. The minor/patch versions are reserved for protobuf versioning, and the major version is language specific, in case language packages need to make breaking changes. So as far as grpc_requests goes, we just need to be restricting to major versions (because minor bumps won't be breaking changes). So after adding support for protobuf 5.x.x we just need to set the dependency restriction to <=5
. And when 6 is released we can evaluate if the breaking changes effect the code or not.
Also - we do have precedent for adding a shim to do specific setup based on the version of protobuf version available to the environment running the code. For Protobuf 5, we could (hopefully) just add to that shim to use the changed methods to add the requested support.
In terms of messaging what we support, I think we could just make it clear that grpc_requests
will follow support timelines for its dependencies. (i.e. when we removed 3.7 compatibility because that was end of life) Maybe even make that clear for important ones like protobuf with a wee badgey the way we do with Python.
Yeah that would be good. Protobuf has clear support timelines too.
Support and documentation on this ticket has just been merged into develop. I'll get a new release out this week.
Used this as a good excuse to leverage nox
to run tests in more combinations locally and expand the test matrices in the PR pipeline to cover supported versions.
Is your feature request related to a problem? Please describe. We already are using latest protobuf (protobuf==5.27.2) and would like to use it with grpc_requests. We are using robot framework calling grpc calls.
Describe the solution you'd like Support for latest protobuf.
Describe alternatives you've considered Downgrading protobuf to 4.25.3.
Issues with pinning:
Basically latest grpcio-reflection 1.65.1 needs newer protobuf than grcp_requests ...