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

Release/v0.12.0 #216

Merged
merged 26 commits into from
Aug 17, 2018
Merged

Release/v0.12.0 #216

merged 26 commits into from
Aug 17, 2018

Conversation

liamsi
Copy link
Contributor

@liamsi liamsi commented Aug 6, 2018

This release fixes a bunch of edge cases since the initial change to proto3 (default values on time encoding, empty structs, nil pointer to empty structs). It also fixes the circleci 1.0 -> 2.0 migration on master and removes the dependency on tmlibs/common.

Full change log:
https://github.com/tendermint/go-amino/blob/b501f6cbae3af423a404e13233267656e1b75a66/CHANGELOG.md

It makes sense to merge #218 first and rebase on this. Apparently, we didn't merge master back into develop last time we did a release.

Emmanuel T Odeke and others added 25 commits June 15, 2018 15:14
* DecodeInt{8, 16} negative limit checks + tests

Updates #120

Also adds a test for Byteslice encoding and decoding
roundtripping and part slicing then rejoining.

* fix circleci2.0

* some metalinter issues
* skip over empty structs by default

* slightly more info on panics
* update changelog for release

* prep release 0.11.0
- fix decoding of skipped fields in time, or completely skipped time 
- neccessary because sec=0 and ns=0 do not result in time.Time{} and vice versa
* update changelog for release
- top-level entry functions called with BinFieldNum:1 to properly encode e.g. arrays of structs (see non-time related test)
- add defaultValue method, different from #196 it deals with multiply nested pointers
Removes dependency on tmlibs/common
- compare to proto3 behaviour
- test for pointers to empty struct and nil pointer

Signed-off-by: Liamsi <[email protected]>
- use []byte{} not []byte(nil)

Signed-off-by: Liamsi <[email protected]>
Write empty (non-nil) struct pointers, unless (is list element and empty_elements isn't set)
# Conflicts:
#	CHANGELOG.md
@liamsi liamsi requested a review from jaekwon August 6, 2018 14:37
This was referenced Aug 6, 2018
@jaekwon
Copy link
Contributor

jaekwon commented Aug 15, 2018

LGTM!
Did we run both fuzz testers? The google fuzzer & the other one for catching decode panics...
Maybe we should add those to some checklist for Amino releases.
That checklist should maybe include a note saying that we should take care to keep behavior backwards compatible except in exceptional circumstances, because we all overlooked compatibility issues w/ Tendermint, e.g. for empty structs and for empty structs in lists.

@liamsi
Copy link
Contributor Author

liamsi commented Aug 16, 2018

Thanks Jae. I think I did. But I'm actually not sure if I did only run the binary fuzzer. Let me rerun both.

Maybe we should add those to some checklist for Amino releases.

That is a good idea. Are there any templates for releases? Similar to PR templates with checklists? Let me see.

@liamsi
Copy link
Contributor Author

liamsi commented Aug 16, 2018

OK, just to be sure, I reran all three: make gofuzz_binary, make gofuzz_json and the google fuzzer via make test (which is also run by circelci / go test).

@liamsi liamsi merged commit faa6e73 into master Aug 17, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants