pachyderm / pachyderm

Data-Centric Pipelines and Data Versioning
https://www.pachyderm.com/
Apache License 2.0
6.19k stars 566 forks source link

Move off of gogoprotobuf? #5057

Open ysimonson opened 4 years ago

ysimonson commented 4 years ago

gogoprotobuf is on life support, so we need to figure out whether we want to maintain it ourselves, move to another golang protobuf driver, or something else.

One way it's affecting us today: gogoprotobuf doesn't include support for experimental field presence checks recently added in proto3. As a result, some weird contortions had to be added to https://github.com/pachyderm/pachyderm/pull/5053.

jdoliner commented 4 years ago

The obvious choice would be to move to the officially supported proto library here: https://github.com/golang/protobuf

We moved off of this because gogo had some nice features we wanted, like the ability to rename fields so they passed the golinter, and the official library was breaking in a number of ways for us. That was years ago though so I would guess that all of those issues have been fixed and we can move back.

ysimonson commented 4 years ago

I haven't managed to find a way to rename fields with the official package yet :(

ysimonson commented 4 years ago

I was hoping the new API v2 would be a good basis, but it has two major shortcomings:

adelelopez commented 4 years ago

I think we also need to wait for this PR to make it to the etcd release: https://github.com/etcd-io/etcd/pull/12000