api-client-staging
api-client-staging copied to clipboard
chore(deps): com.google.api.grpc:proto-google-common-protos: protobuf-java dependency upgrade to the latest 3.11.1
protobuf-java dependency upgrade to the latest 3.11.1 for Maven artifact com.google.api.grpc:proto-google-common-protos
.
Background
The class path generated by the pair com.google.api:gax-grpc:1.52.0
x com.google.api.grpc:proto-google-common-protos:1.17.0
has the following linkage errors, because proto-google-common-protos has old protobuf-java dependencies. com.google.api:gax-grpc
needs protobuf-java 3.10 or higher.
Linkage Error on com.google.api:gax-grpc:1.52.0 x com.google.api.grpc:proto-google-common-protos:1.17.0
Class com.google.protobuf.GeneratedMessageV3$UnusedPrivateParameter is not found (type: CLASS_NOT_FOUND)
io.grpc.alts.internal.RpcProtocolVersions (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.StartClientHandshakeReq (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.HandshakerStatus (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.ServerHandshakeParameters (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.StartServerHandshakeReq (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.NextHandshakeMessageReq (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.AltsContext (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.Identity (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.HandshakerResult (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.Endpoint (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.HandshakerReq (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.HandshakerResp (io.grpc:grpc-alts:1.25.0)
io.grpc.lb.v1.InitialLoadBalanceRequest (io.grpc:grpc-grpclb:1.25.0)
io.grpc.lb.v1.InitialLoadBalanceResponse (io.grpc:grpc-grpclb:1.25.0)
io.grpc.lb.v1.ClientStatsPerToken (io.grpc:grpc-grpclb:1.25.0)
io.grpc.lb.v1.Server (io.grpc:grpc-grpclb:1.25.0)
io.grpc.lb.v1.ClientStats (io.grpc:grpc-grpclb:1.25.0)
io.grpc.lb.v1.ServerList (io.grpc:grpc-grpclb:1.25.0)
io.grpc.lb.v1.LoadBalanceRequest (io.grpc:grpc-grpclb:1.25.0)
io.grpc.lb.v1.LoadBalanceResponse (io.grpc:grpc-grpclb:1.25.0)
Class com.google.protobuf.AbstractMessageLite$InternalOneOfEnum is not found (type: CLASS_NOT_FOUND)
io.grpc.alts.internal.HandshakerReq (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.Identity (io.grpc:grpc-alts:1.25.0)
io.grpc.lb.v1.LoadBalanceResponse (io.grpc:grpc-grpclb:1.25.0)
io.grpc.lb.v1.LoadBalanceRequest (io.grpc:grpc-grpclb:1.25.0)
Class com.google.protobuf.TypeRegistry is not found (type: CLASS_NOT_FOUND)
com.google.protobuf.util.JsonFormat (com.google.protobuf:protobuf-java-util:3.10.0)
(com.google.protobuf:protobuf-java:3.7.1) com.google.protobuf.Descriptors$FileDescriptor's method internalBuildGeneratedFileFrom(String[] arg1, com.google.protobuf.Descriptors$FileDescriptor[] arg2) is not found (type: SYMBOL_NOT_FOUND)
io.grpc.alts.internal.HandshakerProto (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.TransportSecurityCommonProto (io.grpc:grpc-alts:1.25.0)
io.grpc.alts.internal.AltsContextProto (io.grpc:grpc-alts:1.25.0)
io.grpc.lb.v1.LoadBalancerProto (io.grpc:grpc-grpclb:1.25.0)
The presubmit check failure has been there already.
@lukesneeringer @noahdietz Would you review/merge this PR?
@vam-google I don't know how this repo is used by any of the mentioned dependencies. This repo probably shouldn't be used as I don't think it is being maintained. Would you mind taking a look?
I often see proto-google-common-protos dependency in Google-related repositories. At least the following artifacts use proto-google-common-protos:
@noahdietz The status of this repo is "undefined". This means it should not be used, but it used to be used, and I used recently once because there was no alternative (to release iam protos, because those are upsed very rarely and there were no new place for them).
@suztomo @noahdietz FYI (sorry, I forgot to mention you in the previous comment)
@vam-google Thank you for response. Yes, I’m familiar with BOM, with which users can solve the inconsistency. (You can forget about grpc. It happened to be the artifact that had conflict)
I feel concerned, because this widely-used artifact being unmaintained may cause a risk of diamond dependency problem in Google-related Java libraries. Would you share the reason why this repository is not maintained any more? (team change, difficult release process, etc.?)
@suztomo The artifact is maintained, but this repo is not... This repository existed solely to push the generated stuff on github, because the root-level gradle build script in this repo has the "pushing" logic in it.
The artifact proto-google-common-protos
, published to the maven should be considered as a maintained artifact without a maintained public repository for it. The the code in this artifact is automatically generated, that is why not having a public repo with sources kind of makes sense.
@vam-google Thanks. It’s good to hear the artifact is maintained. The directory name “generated” was strange to me as well. But you also edited a build.gradle few months back https://github.com/googleapis/api-client-staging/pull/678/files#r363570370 .
Should I try to edit different files (this repo or google3?) to upgrade the dependencies of proto-google-common-protos for a future release?