Latest release adds GCP-specific credential libraries to dependency graph for all downstream projects
The dependency additions in https://github.com/grpc/grpc-go/pull/9118 (link) are a really unfortunate set of dependencies to pass on transitively to every consumer of grpc:
- cloud.google.com/go/auth
- github.com/google/s2a-go
- github.com/googleapis/enterprise-certificate-proxy
- github.com/googleapis/gax-go/v2
These pull in cloud-specific deps we've done enormous amounts of work to prune out and avoid, and the pervasiveness of the grpc library means passing these on to the majority of the Go ecosystem by default.
Can the GCP-specific authentication type be split to a distinct module and linked in optionally by the things that want to target GCP APIs?
Originally posted by @liggitt in #9118
xref
- https://github.com/googleapis/go-genproto/issues/1015
- https://github.com/googleapis/go-genproto/pull/1012
- https://github.com/googleapis/go-genproto/pull/1016
- https://github.com/googleapis/go-genproto/pull/1087
- https://github.com/googleapis/go-genproto/pull/1093
- https://github.com/googleapis/google-cloud-go/issues/6311
- https://github.com/googleapis/google-cloud-go/pull/6944
we ran across these new unwanted dependencies trying to update an unrelated library in https://github.com/kubernetes/kubernetes/pull/141360 which pulled in the latest grpc release
Source: grpc/grpc-go