Open ysimonson opened 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.
I haven't managed to find a way to rename fields with the official package yet :(
I was hoping the new API v2 would be a good basis, but it has two major shortcomings:
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
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.