All Versions
38
Latest Version
Avg Release Cycle
23 days
Latest Release
1346 days ago

Changelog History
Page 2

  • v3.12.3 Changes

    June 03, 2020

    Objective-C

    • ๐Ÿ‘‰ Tweak the union used for Extensions to support old generated code. #7573
  • v3.12.2 Changes

    May 26, 2020

    C++

    • ๐Ÿ— Simplified the template export macros to fix the build for mingw32. (#7539)

    Objective-C

    • ๐Ÿ›  Fix for the :protobuf_objc target in the Bazel BUILD file. (#7538)
  • v3.12.1 Changes

    May 20, 2020

    ๐Ÿ’Ž Ruby

    • ๐Ÿ’Ž Re-add binary gems for Ruby 2.3 and 2.4. These are EOL upstream, however
      ๐Ÿ‘ many people still use them and dropping support will require more
      coordination. (#7529, #7531).
  • v3.12.0 Changes

    May 15, 2020

    Protocol Compiler

    • ๐Ÿ‘ [experimental] Singular, non-message typed fields in proto3 now support
      presence tracking. This is enabled by adding the "optional" field label and
      ๐Ÿ‘ passing the --experimental_allow_proto3_optional flag to protoc.
    • ๐Ÿ‘ Allow duplicate symbol names when multiple descriptor sets are passed on
      the command-line, to match the behavior when multiple .proto files are passed.
    • Deterministic protoc --descriptor_set_out (#7175)

    C++

    • ๐Ÿ‘ [experimental] Added proto3 presence support.
    • ๐Ÿ†• New descriptor APIs to support proto3 presence.
    • ๐Ÿ›  Fix for #7463 in -rc1 (core dump mixing optional and singular fields in proto3)
    • 0๏ธโƒฃ Enable Arenas by default on all .proto files.
    • Documented that users are not allowed to subclass Message or MessageLite.
    • Mark generated classes as final; inheriting from protos is strongly discouraged.
    • โž• Add stack overflow protection for text format with unknown fields.
    • โž• Add accessors for map key and value FieldDescriptors.
    • โž• Add FieldMaskUtil::FromFieldNumbers().
    • ๐Ÿ“œ MessageDifferencer: use ParsePartial() on Any fields so the diff does not
      fail when there are missing required fields.
    • ๐Ÿ”€ ReflectionOps::Merge(): lookup messages in the right factory, if it can.
    • Added Descriptor::WellKnownTypes enum and Descriptor::well_known_type()
      accessor as an easier way of determining if a message is a Well-Known Type.
    • โšก๏ธ Optimized RepeatedField::Add() when it is used in a loop.
    • ๐Ÿšš Made proto move/swap more efficient.
    • De-virtualize the GetArena() method in MessageLite.
    • Improves performance of json_stream_parser.cc by factor 1000 (#7230)
    • ๐Ÿ› bug: #7076 undefine Windows OUT and OPTIONAL macros (#7087)
    • ๐Ÿ›  Fixed a bug in FieldDescriptor::DebugString() that would erroneously print
      an "optional" label for a field in a oneof.
    • ๐Ÿ›  Fix bug in parsing bool extensions that assumed they are always 1 byte.
    • ๐Ÿ›  Fix off-by-one error in FieldOptions::ByteSize() when extensions are present.
    • Clarified the comments to show an example of the difference between
      Descriptor::extension and DescriptorPool::FindAllExtensions.
    • โšก๏ธ Add a compiler option 'code_size' to force optimize_for=code_size on all
      protos where this is possible.

    Java

    • ๐Ÿ‘ [experimental] Added proto3 presence support.
    • ๐Ÿ›  Fix for #7480 in -rc1 ("TextFormat and JsonFormat ignore experimental proto3 optional enums")
    • ๐Ÿ›  Fix for #7505 in -rc1 (" toString() returns incorrect ascii when there are duplicate keys in a map")
    • ๐Ÿ—„ Mark java enum _VALUE constants as @deprecated if the enum field is deprecated
    • โฌ‡๏ธ reduce size for enums with allow_alias set to true.
    • ๐Ÿ–จ Sort map fields alphabetically by the field's key when printing textproto.
    • ๐Ÿ”€ TextFormat.merge() handles Any as top level type.
    • Throw a descriptive IllegalArgumentException when calling
      getValueDescriptor() on enum special value UNRECOGNIZED instead of
      ArrayIndexOutOfBoundsException.
    • ๐Ÿ›  Fixed an issue with JsonFormat.printer() where setting printingEnumsAsInts()
      ๐Ÿ”ง would override the configuration passed into includingDefaultValueFields().
    • Implement overrides of indexOf() and contains() on primitive lists returned
      for repeated fields to avoid autoboxing the list contents.
    • โž• Add overload to FieldMaskUtil.fromStringList that accepts a descriptor.
    • ๐Ÿšš [bazel] Move Java runtime/toolchains into //java (#7190)

    Python

    • ๐Ÿ‘ [experimental] Added proto3 presence support.
    • [experimental] fast import protobuf module, only works with cpp generated code linked in.
    • Truncate 'float' fields to 4 bytes of precision in setters for pure-Python
      implementation (C++ extension was already doing this).
    • ๐Ÿ›  Fixed a memory leak in C++ bindings.
    • โž• Added a deprecation warning when code tries to create Descriptor objects
      directly.
    • ๐Ÿ›  Fix unintended comparison between bytes and string in descriptor.py.
    • ๐Ÿ–จ Avoid printing excess digits for float fields in TextFormat.
    • โœ‚ Remove Python 2.5 syntax compatibility from the proto compiler generated _pb2.py module code.
    • โฌ‡๏ธ Drop 3.3, 3.4 and use single version docker images for all python tests (#7396)

    JavaScript

    • ๐Ÿ›  Fix js message pivot selection (#6813)

    PHP

    • Persistent Descriptor Pool (#6899)
    • Implement lazy loading of php class for proto messages (#6911)
    • Correct @return in Any.unpack docblock (#7089)
    • Ignore unknown enum value when ignore_unknown specified (#7455)

    ๐Ÿ’Ž Ruby

    • ๐Ÿ’Ž [experimental] Implemented proto3 presence for Ruby. (#7406)
    • ๐Ÿ— Stop building binary gems for ruby <2.5 (#7453)
    • ๐Ÿ›  Fix for wrappers with a zero value (#7195)
    • ๐Ÿ›  Fix for JSON serialization of 0/empty-valued wrapper types (#7198)
    • Call "Class#new" over rb_class_new_instance in decoding (#7352)
    • ๐Ÿ— Build extensions for Ruby 2.7 (#7027)
    • assigning 'nil' to submessage should clear the field. (#7397)

    C

    • ๐Ÿ‘ [experimental] Add support for proto3 presence fields in C# (#7382)
    • Cleanup various bits of Google.Protobuf (#6674)
    • ๐Ÿ›  Fix conformance test failures for Google.Protobuf (#6910)
    • ๐Ÿ›  Fix latest ArgumentException for C# extensions (#6938)
    • โœ‚ Remove unnecessary branch from ReadTag (#7289)
    • Enforce recursion depth checking for unknown fields (#7132)
    • Mark GetOption API as obsolete and expose the "GetOptions()" method
      on descriptors instead (#7491)
    • โœ‚ Remove Has/Clear members for C# message fields in proto2 (#7429)

    Objective-C

    • ๐Ÿ‘ [experimental] ObjC Proto3 optional support (#7421)
    • Block subclassing of generated classes (#7124)
    • ๐Ÿ‘‰ Use references to Obj C classes instead of names in descriptors. (#7026)
    • Revisit how the WKTs are bundled with ObjC. (#7173)

    Other

    • Add a proto_lang_toolchain for javalite (#6882)
    • โšก๏ธ [bazel] Update gtest and deprecate //external:{gtest,gtest_main} (#7237)
    • โž• Add application note for explicit presence tracking. (#7390)
    • Howto doc for implementing proto3 presence in a code generator. (#7407)
  • v3.12.0-rc2 Changes

    May 12, 2020

    C++ / Python

    • ๐Ÿ‘ Fix for #7463 ("mixing with optional fields: core dump --experimental_allow_proto3_optional")

    Java

    • ๐Ÿ›  Fix for #7480 ("TextFormat and JsonFormat ignore experimental proto3 optional enums")

    PHP

    • Ignore unknown enum value when ignore_unknown specified (#7455)

    C

    • Mark GetOption API as obsolete and expose the "GetOptions()" method on descriptors instead (#7491)
    • โœ‚ Remove Has/Clear members for C# message fields in proto2 (#7429)
  • v3.12.0-rc1 Changes

    May 04, 2020

    Protocol Compiler

    • ๐Ÿ‘ [experimental] Singular, non-message typed fields in proto3 now support
      presence tracking. This is enabled by adding the "optional" field label and
      ๐Ÿ‘ passing the --experimental_allow_proto3_optional flag to protoc.
    • ๐Ÿ‘ Allow duplicate symbol names when multiple descriptor sets are passed on
      the command-line, to match the behavior when multiple .proto files are passed.
    • Deterministic protoc --descriptor_set_out (#7175)

    C++

    • ๐Ÿ‘ [experimental] Added proto3 presence support.
    • ๐Ÿ†• New descriptor APIs to support proto3 presence.
    • 0๏ธโƒฃ Enable Arenas by default on all .proto files.
    • Documented that users are not allowed to subclass Message or MessageLite.
    • Mark generated classes as final; inheriting from protos is strongly discouraged.
    • โž• Add stack overflow protection for text format with unknown fields.
    • โž• Add accessors for map key and value FieldDescriptors.
    • โž• Add FieldMaskUtil::FromFieldNumbers().
    • ๐Ÿ“œ MessageDifferencer: use ParsePartial() on Any fields so the diff does not
      fail when there are missing required fields.
    • ๐Ÿ”€ ReflectionOps::Merge(): lookup messages in the right factory, if it can.
    • Added Descriptor::WellKnownTypes enum and Descriptor::well_known_type()
      accessor as an easier way of determining if a message is a Well-Known Type.
    • โšก๏ธ Optimized RepeatedField::Add() when it is used in a loop.
    • ๐Ÿšš Made proto move/swap more efficient.
    • De-virtualize the GetArena() method in MessageLite.
    • Improves performance of json_stream_parser.cc by factor 1000 (#7230)
    • ๐Ÿ› bug: #7076 undefine Windows OUT and OPTIONAL macros (#7087)
    • ๐Ÿ›  Fixed a bug in FieldDescriptor::DebugString() that would erroneously print
      an "optional" label for a field in a oneof.
    • ๐Ÿ›  Fix bug in parsing bool extensions that assumed they are always 1 byte.
    • ๐Ÿ›  Fix off-by-one error in FieldOptions::ByteSize() when extensions are present.
    • Clarified the comments to show an example of the difference between
      Descriptor::extension and DescriptorPool::FindAllExtensions.
    • โšก๏ธ Add a compiler option 'code_size' to force optimize_for=code_size on all
      protos where this is possible.

    Java

    • ๐Ÿ‘ [experimental] Added proto3 presence support.
    • ๐Ÿ—„ Mark java enum _VALUE constants as @deprecated if the enum field is deprecated
    • โฌ‡๏ธ reduce size for enums with allow_alias set to true.
    • ๐Ÿ–จ Sort map fields alphabetically by the field's key when printing textproto.
    • ๐Ÿ”€ TextFormat.merge() handles Any as top level type.
    • Throw a descriptive IllegalArgumentException when calling
      getValueDescriptor() on enum special value UNRECOGNIZED instead of
      ArrayIndexOutOfBoundsException.
    • ๐Ÿ›  Fixed an issue with JsonFormat.printer() where setting printingEnumsAsInts()
      ๐Ÿ”ง would override the configuration passed into includingDefaultValueFields().
    • Implement overrides of indexOf() and contains() on primitive lists returned
      for repeated fields to avoid autoboxing the list contents.
    • โž• Add overload to FieldMaskUtil.fromStringList that accepts a descriptor.
    • ๐Ÿšš [bazel] Move Java runtime/toolchains into //java (#7190)

    Python

    • ๐Ÿ‘ [experimental] Added proto3 presence support.
    • [experimental] fast import protobuf module, only works with cpp generated code linked in.
    • Truncate 'float' fields to 4 bytes of precision in setters for pure-Python
      implementation (C++ extension was already doing this).
    • ๐Ÿ›  Fixed a memory leak in C++ bindings.
    • โž• Added a deprecation warning when code tries to create Descriptor objects
      directly.
    • ๐Ÿ›  Fix unintended comparison between bytes and string in descriptor.py.
    • ๐Ÿ–จ Avoid printing excess digits for float fields in TextFormat.
    • โœ‚ Remove Python 2.5 syntax compatibility from the proto compiler generated _pb2.py module code.
    • โฌ‡๏ธ Drop 3.3, 3.4 and use single version docker images for all python tests (#7396)

    JavaScript

    • ๐Ÿ›  Fix js message pivot selection (#6813)

    PHP

    • Persistent Descriptor Pool (#6899)
    • Implement lazy loading of php class for proto messages (#6911)
    • Correct @return in Any.unpack docblock (#7089)

    ๐Ÿ’Ž Ruby

    • ๐Ÿ’Ž [experimental] Implemented proto3 presence for Ruby. (#7406)
    • ๐Ÿ— Stop building binary gems for ruby <2.5 (#7453)
    • ๐Ÿ›  Fix for wrappers with a zero value (#7195)
    • ๐Ÿ›  Fix for JSON serialization of 0/empty-valued wrapper types (#7198)
    • Call "Class#new" over rb_class_new_instance in decoding (#7352)
    • ๐Ÿ— Build extensions for Ruby 2.7 (#7027)
    • assigning 'nil' to submessage should clear the field. (#7397)

    C#

    • ๐Ÿ‘ [experimental] Add support for proto3 presence fields in C# (#7382)
    • Cleanup various bits of Google.Protobuf (#6674)
    • ๐Ÿ›  Fix conformance test failures for Google.Protobuf (#6910)
    • ๐Ÿ›  Fix latest ArgumentException for C# extensions (#6938)
    • โœ‚ Remove unnecessary branch from ReadTag (#7289)
    • Enforce recursion depth checking for unknown fields (#7132)

    Objective-C

    • ๐Ÿ‘ [experimental] ObjC Proto3 optional support (#7421)
    • Block subclassing of generated classes (#7124)
    • ๐Ÿ‘‰ Use references to Obj C classes instead of names in descriptors. (#7026)
    • Revisit how the WKTs are bundled with ObjC. (#7173)

    Other

    • Add a proto_lang_toolchain for javalite (#6882)
    • โšก๏ธ [bazel] Update gtest and deprecate //external:{gtest,gtest_main} (#7237)
    • โž• Add application note for explicit presence tracking. (#7390)
    • Howto doc for implementing proto3 presence in a code generator. (#7407)
  • v3.11.4 Changes

    February 14, 2020

    C

    • ๐Ÿ›  Fix latest ArgumentException for C# extensions (#7188)
    • Enforce recursion depth checking for unknown fields (#7210)

    ๐Ÿ’Ž Ruby

    • ๐Ÿ›  Fix wrappers with a zero value (#7195)
    • ๐Ÿ›  Fix JSON serialization of 0/empty-valued wrapper types (#7198)
  • v3.11.3 Changes

    February 02, 2020

    C++

    • โž• Add OUT and OPTIONAL to windows portability files (#7087)

    PHP

    • ๐Ÿ”จ Refactored ulong to zend_ulong for php7.4 compatibility (#7147)
    • Call register_class before getClass from desc to fix segfault (#7077)
  • v3.11.2 Changes

    December 13, 2019

    PHP

    • ๐Ÿ‘‰ Make c extension portable for php 7.4 (#6968)
  • v3.11.1 Changes

    December 03, 2019

    PHP

    • Extern declare protobuf_globals (#6946)