Skip to content
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

Update dependency github.com/golang.protobuf #7787

Closed
deejross opened this issue Apr 20, 2017 · 4 comments
Closed

Update dependency github.com/golang.protobuf #7787

deejross opened this issue Apr 20, 2017 · 4 comments

Comments

@deejross
Copy link

I started getting this error in my builds which depends on Etcd, gRPC, and gRPC-Gateway:

# github.com/deejross/mydis/vendor/google.golang.org/genproto/googleapis/api/annotations
vendor/google.golang.org/genproto/googleapis/api/annotations/annotations.pb.go:41: unknown field 'Filename' in struct literal of type proto.ExtensionDesc

After finally figuring out that Etcd uses a version of golang/protobuf from 2016, I forced Glide to update to a newer version and started seeing this warning:

[WARN]	Conflict: github.com/golang/protobuf rev is currently 2bba0603135d7d7f5cb73b2125beeda19c09f4ef, but github.com/coreos/etcd wants 4bd1920723d7b7c925de087aa32e2187708897f7

Now that I've overcome this issue, I ran into another one where gRPC-Gateway's attempt to sync with gRPC-Go's version numbers introduced backwards-incompatible changes in a patch release, which is a big no-no in Semantic Versioning. I've already submitted feedback that they should stop doing that: grpc-ecosystem/grpc-gateway#365

@heyitsanthony
Copy link
Contributor

Is there a reason why https://github.com/deejross/mydis/blob/master/glide.yaml isn't pinning etcd, grpc, and grpc-gateway versions / revisions at all? I'm surprised anything works with the way it is now.

@deejross
Copy link
Author

I've been updating glide.yaml to pin versions and ran into this. I haven't committed it yet, but this is my entry in glide.yaml for etcd:

- package: github.com/coreos/etcd
  version: ^3.1.6

@gyuho
Copy link
Contributor

gyuho commented Apr 20, 2017

@deejross
Copy link
Author

@gyuho: after having a discussion with the grpc-gateway folks, I think I have better understanding of the underlying problem. I might end up falling back to using the same versions Etcd uses for grpc, grpc-gateway, and protobuf. The trick is ensuring the compiler plugins are also using the same versions. I still think the Semantic Versioning rules were violated in this case (by grpc-gateway) but I think I have a workaround.

Etcd has, so far, been an excellent configuration database backend and adding additional functionality on top of it (which is what the Mydis project does) has ended up becoming the primary configuration backend for a project I'm working on, with MongoDB being used for non-configuration data. Etcd is an amazing project that has a decent sized code base, but updating some of its dependencies may not be a bad thing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

3 participants