Skip to content

Releases: tomas-abrahamsson/gpb

Release 4.17.1

17 Apr 18:06
Compare
Choose a tag to compare

Version 4.17.1
2021-Apr-17

  • Fix compilation with Elixir 1.12.0, by respecting the
    REBAR_BARE_COMPILER_OUTPUT_DIR env var during descriptor
    compilation. Thanks to Michael Davis. (#204, #205)

  • On decoding, mask ints to 32 or 64 bits. (#206)

  • Rename helpers/export-from-git to mk-versioned-archive
    and make it able to export also from a non-git dir,
    allowing the version to be set using options.
    Keep a symlink from the old name for backwards compatibility.

Release 4.17.0

11 Apr 19:49
Compare
Choose a tag to compare

Version 4.17.0
2021-Apr-11

  • Save all options as well as custom options, and introduce
    versions 3 and 4 of the proto defs format. (#202)
    See the doc/dev-guide/proto-defs-versions.md for more info.

    The following definition elements were added and changed:

    • Enum values have changed from 2-tuples to 3-tuples:
      previously: {Symbol, Value}
      now: {Symbol, Value, EnumValueOptions}
    • Added: {{enum_options,EnumName}, [, ...]}
    • Added: {{service_options,ServiceName}, [, ...]}
    • Rpc (custom) option names now look like any other
      custom option names.
    • Option name elements can now contain tuples
      to indicate parenthesized path components, as indicated
      in the doc/dev-guide/proto-defs-versions.md.

    The above redesign also fixes a crash when there were
    enum option. (#203)

    The default version of the returned format and of the format
    in the generated introspection functions is still 1, for
    backwards compatibility. Use the {proto_defs_version,4} option
    in order to use the added definition elements.

  • Add an option, introspect_get_proto_defs (-introspect-get_proto_defs)
    Normally a get_msg_defs/0 function is generated, but this
    has historically only contained message and enum elements.
    With the introspect_get_proto_defs option, a get_proto_defs/0
    is instead generated, containing the same definitions as returned
    when compiling with the to_proto_defs option.
    NB that the format version of the definitions for get_proto_defs/0,
    as well as those for get_msg_defs/0, is by default 1, but can
    be changed with the {proto_defs_version,N} option.

Release 4.16.2

27 Feb 14:05
Compare
Choose a tag to compare

Version 4.16.2
2021-Feb-27

  • Rework the import handling to check full paths when checking
    if an proto to import has already been seen. #194
  • In a verifier error, emit the faulty field as a string
    instead of as an atom to avoid hitting the system limit
    of 255 chars during the making of the error re ason. #195
  • Fix spec for empty messages to work with dialyzer -Wunderspecs #196
    Also emit -dialyzer({no_underspecs, /}) on erl >= 24.
  • Fix the Erlang type of string fields: change to unicode:chardata()
    from iodata() to allow for unicode code points >255. #200
    For clarity, the encoding always worked with such code points,
    it was just the field's type that was wrong.
  • Fix help text when using protoc-erl.
  • A few fixes for Erlang 24 (doc building and in an eunit test)

Release 4.16.1

19 Jan 20:24
Compare
Choose a tag to compare

Version 4.16.1
2021-Jan-19

  • Create Github releases on upload of new tagged versions.
    This is done by a workflow script.
  • Bugfix the export-from-git helper script.
    Except for this fix, this release contains no functional change.