-
Notifications
You must be signed in to change notification settings - Fork 2k
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 ugorji/go to latest #5676
Conversation
Our testing so far indicates that ugorji/go/codec maintains backward compatiblity with the version we are using now, for purposes of Nomad serialization. Using latest ugorji/go allows us to get back to using upstream library, get get the optimizations benefits in RPC paths (including code generation optimizations). ugorji/go introduced two significant changes: * time binary format in ugorji/go@debb8e2. Setting `h.BasicHandle.TimeNotBuiltin = true` restores old behavior * ugorji/go started honoring `json` tag as well: v1.1.4 is the latest but has a bug in handling RawString that's fixed in ugorji/go@d09a80c .
I worked on #5312 and noticed a dependency problem because both libpod and nomad depend on ugorji/go Here is a simple test using go 1.12 and a go module: in go.mod
in main.go
go build says then:
Building against nomad v0.9.2 (release) yields much more errors, though. |
I've tested with latest ugorji/go version (v.1.1.7) and discovered that it handles Merging this as-is for this to soak in while we run testing and do a write up and follow up with ugorji/go library. |
@towe75, I'm afraid I don't have much experience with go mod. The dependency on ugorji/go seems very brittle right now. I'd suggest testing with using the exact version of ugorji/go as used by nomad and specified in |
"latest" should only ever mean formal, tagged semantic release: https://github.com/ugorji/go/releases It is a bad practice to vendor by some random commit in-between releases. Please vendor properly. |
I'm going to lock this pull request because it has been closed for 120 days ⏳. This helps our maintainers find and focus on the active contributions. |
fixes #4454
Our testing so far indicates that ugorji/go/codec maintains backward
compatiblity with the version we are using now, for purposes of Nomad
serialization.
Using latest ugorji/go allows us to get back to using upstream library,
get get the optimizations benefits in RPC paths (including code
generation optimizations).
ugorji/go introduced two significant changes:
h.BasicHandle.TimeNotBuiltin = true
restores old behaviorjson
tag as well:v1.1.4 is the latest but has a bug in handling RawString that's fixed in
ugorji/go@d09a80c
.