hashicorp/raft

github.com/hashicorp/go-msgpack - obsolete fork?

Closed this issue · 2 comments

github.com/hashicorp/go-msgpack is an unnecessary fork of actively maintained github.com/ugorji/go.
I recommend to use the latter.

raft successfully builds and passes all tests with imports replaced from "github.com/hashicorp/go-msgpack" to "github.com/ugorji/go".

Please consider switching to "github.com/ugorji/go".

banks commented

Hey @onlyjob, thanks for filing this.

The reason for that fork originally is still the reason we can't easily update. The upstream library changed its encoding (of dates IIRC) in a backwards incompatible way which means that if we upgrade, all of our tools like Consul and Nomad will not have any upgrade path that doesn't totally break RPC during the upgrade. The same is true for any other system that uses this Raft library now.

We've looked into this several times and it's not a simple fix. The best option I recall would be if we can get a PR merged upstream that optionally decodes the old format as well so that it would be backwards compatible but so far no-one has had time to do that as we are not feeling specific pain points that a newer version would address.

If anyone is interested in figuring out the compatibility stuff and proposing a PR for upstream that would make it safe for us to upgrade then we'd certainly be interested!

See hashicorp/consul#6664, going to close this now