Most of the enhancements in this release concern JSON support.
JSON support for Google types. The library now supports JSON mapping of
Google.Protobuf.* types such as timestamps, durations, type wrappers, and
so on. In order to use this correctly, you need to manually generate the
Protobuf Elixir files from the .proto files provided by Google since they
are not shipped with this library.
Accept integer numbers for float fields when decoding JSON.
Add Protobuf.encode_to_iodata/1.
Add the one_file_per_module CLI option when using the protoc-gen-elixir
plugin.
Use type-aware defaults in struct definitions for Protobuf messages. This
means that now doing %MyMessage{} should be equivalent to
MyMessage.new().
Don't generate the transformer_module/0 callback in generated Protobuf
modules if the transformer_module CLI option is not used.
Bug fixes
Fix enum aliasing in JSON mapping.
Fix encoding of default values when using transformer modules.
Raise a Protobuf.DecodeError when decoding if fields with number 0 are
encountered.
Fix bugs when decoding big varints, integers, and so on (by casting).
Cast enum integers to int32 when they overflow when decoding.
Skip encoding for fields if they match their user-defined default in proto2.
Fix decoding and encoding of packed repeated fields.
Don't pack fields that use the [packed = false] option explicitly in
proto3.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps protobuf from 0.8.0 to 0.9.0.
Changelog
Sourced from protobuf's changelog.
Commits
a4fbe57
Release v0.9.0 (#230)9f8f402
Small refactors to Protobuf.DSL8cf69dc
Rename errors file from error.ex to errors.ex0902685
Small refactor to tag decoding in Protobuf.Decoder39ebb9f
Improve tests for Protobuf.Wire.Varint06ada77
Move Protobuf.Encoder.wire_type/2 to Protobuf.Wire25d49b8
Cast enum integers to int32 when they overflow78c3c67
Fix explicit [packed = false] option in proto3 (#229)9e03367
Deep merge nested messages (#227)8e113c9
Improve variable name in Protobuf.DecoderDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)