-
Notifications
You must be signed in to change notification settings - Fork 40k
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
Untangle genproto / cloud.google.com/go dependencies #113366
Comments
I am in the process of doing item one rn: googleapis/google-cloud-go#6311 |
For item three I might say this can be simplified to the following:
google.golang.org/genproto/protobuf/field_mask is already an alias to another project that should be used directly. |
opened googleapis/gax-go#237 for item 2 |
opened google/cadvisor#3194 for |
The latest versions simplify the transitive dependency tree (see kubernetes/kubernetes#113366 for details). Signed-off-by: Stephen Kitt <skitt@redhat.com>
The latest versions simplify the transitive dependency tree (see kubernetes/kubernetes#113366 for details). Signed-off-by: Stephen Kitt <skitt@redhat.com>
This drops the indirect dependency on cloud.google.com/go, which helps reduce the dependency tree (see kubernetes/kubernetes#113366 and kubernetes/kubernetes#114772 for the wider context). Signed-off-by: Stephen Kitt <skitt@redhat.com>
The latest versions simplify the transitive dependency tree (see kubernetes/kubernetes#113366 for details). Signed-off-by: Stephen Kitt <skitt@redhat.com>
This update dropped the otelgrpc → cloud.google.com/go/compute dependency, among others. This dropped out because genproto cleaned up it's dependencies on google cloud libraries, and otel updated - details in kubernetes#113366.
This update dropped the otelgrpc → cloud.google.com/go/compute dependency, among others. This dropped out because genproto cleaned up it's dependencies on google cloud libraries, and otel updated - details in kubernetes#113366.
This update dropped the otelgrpc → cloud.google.com/go/compute dependency, among others. This dropped out because genproto cleaned up it's dependencies on google cloud libraries, and otel updated - details in kubernetes#113366.
This update dropped the otelgrpc → cloud.google.com/go/compute dependency, among others. This dropped out because genproto cleaned up it's dependencies on google cloud libraries, and otel updated - details in kubernetes#113366. Signed-off-by: Davanum Srinivas <davanum@gmail.com>
This update dropped the otelgrpc → cloud.google.com/go/compute dependency, among others. This dropped out because genproto cleaned up it's dependencies on google cloud libraries, and otel updated - details in kubernetes#113366. Signed-off-by: Davanum Srinivas <davanum@gmail.com> Co-Authored-By: David Ashpole <dashpole@google.com>
This update dropped the otelgrpc → cloud.google.com/go/compute dependency, among others. This dropped out because genproto cleaned up it's dependencies on google cloud libraries, and otel updated - details in kubernetes#113366.
This update dropped the otelgrpc → cloud.google.com/go/compute dependency, among others. This dropped out because genproto cleaned up it's dependencies on google cloud libraries, and otel updated - details in kubernetes#113366. Signed-off-by: Davanum Srinivas <davanum@gmail.com> Co-Authored-By: David Ashpole <dashpole@google.com>
#113225 uncovered a coming snarl of dependencies between cloud.google.com/go and google.golang.org/genproto
Because several generic libraries use the cloud.google.com/go/compute/metadata package, the following chain makes it almost impossible to avoid adding all cloud.google.com/go submodules into the dependency graph for all downstream consumers:
It's possible we can avoid the updates that expanded these cross-references in the short-term with judicious upstream changes back to older genproto versions, but we should get ahead of this if we want to avoid being forced to pull in these dependency graph increases in the future for a critical bugfix.
Recommendations
1. Isolate cloud.google.com/go/compute/metadata
The cloud.google.com/go/compute/metadata package (https://github.com/googleapis/google-cloud-go/tree/main/compute/metadata) only uses stdlib dependencies, but lives inside cloud.google.com/go/compute, which has many other references (https://github.com/googleapis/google-cloud-go/blob/main/compute/go.mod)
Isolate cloud.google.com/go/compute/metadata to its own zero-dependency module
cloud.google.com/go/compute
from https://github.com/googleapis/google-cloud-go/blob/main/compute/metadata/go.mod#L5 to reach zero-dependencies - chore: re-drop weak refs to parent modules and tag googleapis/google-cloud-go#9545Sweep dependencies using cloud.google.com/go/compute/metadata and update them to use the zero-dependency alternative
2. Prune use of cloud genproto packages in non-cloud.google.com modules
3. Drop use of
google.golang.org/genproto/protobuf/field_mask
Update to use canonical
google.golang.org/protobuf/types/known/fieldmaskpb
package insteadgrpc-gateway
etcd-io/etcd#14499 (used by go.etcd.io/etcd/api/v3 / go.etcd.io/etcd/server/v3)4. Isolate generic genproto packages
make the types in the following generic packages available without dragging in all of cloud.google.com/go
Update the following dependencies to use the isolated generic rpc/api packages:
/priority important-longterm
/area code-organization
/sig architecture
/cc @dims
fyi @codyoss @bertinatto
The text was updated successfully, but these errors were encountered: