-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
google-pub-sub-grpc, google-cloud-bigquery-storage: Bump pubsub protos and protobuf-java dep #277
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you remove the protobuf-java changes? Protobuf-Java is required by io.grpc lib grpc-protobuf3.
Hmm sorry about that, was too hasty. Would it make sense to bump |
I can look at this in more detail later. So far, we have been conservative when upgrading dependencies. Any changes so far have been to lower the number of dependencies with CVEs. We tend to make more people unhappy with significant upgrades. In the end, each connector is pretty small code wise. Users can take our code and adjust it to suit their own needs. If you can provide a test case where it is proven that there is an issue that can affect most users, it will improve the chances that we will make changes. |
Thanks, I appreciate it. The main trouble we hit is when mixing Connectors libs with up-to-date GCP Java libs on the same classpath. GCP's gRPC dependencies are such a disaster it seems like the only sane way to tackle it is by keeping everything on the latest versions. A test case would be tricky, because certain clients need to be on the class path at specific versions to produce a runtime error. The particular thing we hit was this (omitted irrelevant parts of the trace):
This was with I did actually wonder about tackling this by shading the GCP/proto/gRPC deps in the Connectors lib. Not something I have a ton of experience with, and I believe it's somewhat of an unsolved problem in Scala, but I did manage to get something going with |
I was trying to suggest you copy paste the code that you need, inline it and compile it with your favourite jar dependencies. gRPC is in the same ballpark as Hadoop in terms of the number of dependencies it brings and the minefield of managing that when you have other dependencies that bring clashing version requirements. |
Yep, got it. Definitely something we can consider. Was trying to be a good open-source citizen but understand that it's hard to balance the needs of many different users. |
Even if it is a valid issue, I still think such a significant change should be marked for pekko connectors 1.1.x, although nothing is stopping us from creating a 1.1.x branch and even a milestone if it helps |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
These protos were a couple years old, and so if you happen to also include newer GCP Java libs on your classpath, you can easily get conflicts between the class files generated by Pekko Connectors and those. This version is not quite the newest... unfortunately any newer version gives the following error which I'm disinclined to troubleshoot right now:
Also, depending on
protobuf-java
seems unnecessary?