Skip to content

Releases: protocolbuffers/protobuf

Protocol Buffers v23.4

06 Jul 21:25
Compare
Choose a tag to compare

Announcements

  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.

Compiler

  • Add dllexport_decl for generated default instance. (#13085) (0c70d95)

Java

  • Deps: Update Guava to 32.0.1 (40d5777)

Protocol Buffers v23.3

14 Jun 19:22
Compare
Choose a tag to compare

Announcements

  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.

C++

  • Regenerate stale files (#13046) (58b6ddb)
  • Use the same ABI for static and shared libraries on non-Windows platforms (#12983) (efa1ec7)

Objective-C

UPB (Python/PHP/Ruby C-Extension)

  • Fixed a bug in upb_Map_Delete() that caused crashes in map.delete(k) for Ruby when string-keyed maps were in use. (protocolbuffers/upb@2de798e)

Protocol Buffers v23.2

26 May 16:43
Compare
Choose a tag to compare

Announcements

  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.

Compiler

  • Add missing header to Objective-c generator

Java

  • Rollback of: Simplify protobuf Java message builder by removing methods that calls the super class only. (b556b88)

Protocol Buffers v23.1

17 May 17:28
Compare
Choose a tag to compare

Announcements

  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.

Compiler

  • Add a workaround for GCC constexpr bug (67ecdde)

C++

  • Add a workaround for GCC constexpr bug (67ecdde)

Csharp

  • [C#] Replace regex that validates descriptor names (#12174) (0ced986)

Protocol Buffers v22.5

10 May 03:56
Compare
Choose a tag to compare

Announcements

  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.

C++

  • Fix: avoid warnings on MSVC (#12697) (4483f10)
  • Fix: avoid warnings on Windows (#12701) (a1435ad)
  • Add missing cstdint header (9daf5fb)
  • Fix: missing -DPROTOBUF_USE_DLLS in pkg-config (#12700) (18fae1c)
  • Avoid using string(JOIN..., which requires cmake 3.12 (0ce610e)
  • Explicitly include GTest package in examples (5191c3b)
  • Bump Abseil submodule to 20230125.3 (#12660) (2880a20)

Protocol Buffers v23.0

08 May 18:31
Compare
Choose a tag to compare

Announcements

  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.

Compiler

  • Implement a retain_options flag in protoc. (83507c7)
  • Make protoc --descriptor_set_out respect option retention (ae2531d)
  • Modify release artifacts for protoc to statically link system libraries. (723bd4c)
  • Extension declaration: Enforce that if the extension range has a declaration then all extensions in that range must be declared. This should prevent non-declared extensions from being added. (5dc171f)
  • Implement "reserved" for extension declaration. (41287bd)
  • Open-source extension declaration definition. (145900f)

C++

  • Fix(libprotoc): export useful symbols from .so (46fb4aa)
  • Turn off clang::musttail on i386 (b40633f)
  • Fixes Clang 6 linker bug (49bb3f2)
  • Remove PROTOBUF_DEPRECATED in favor of [[deprecated]]. (5c59290)
  • Add assert to the list of keywords for C++. (a75c1a2)
  • Added Reflection::GetCord() method in C++ (6ecb5d0)
  • Support C++ protobuf ctype=CORD for bytes field (generated code). (714f975)
  • Expand LazySerializerEmitter to cover proto3 cases. (fab7f92)
  • Unconditionally generate unknown field accessors. (dd8a3cf)
  • Introduce proto filter for inject_field_listener_events. (2dc5338)
  • Add ParseFromCord to TextFormat (055a6c6)
  • Mark proto2::Arena::GetArena as deprecated. (9f95958)

Java

  • Adds Timestamps.now(). (295f112)
  • Added Reflection::GetCord() method in C++ (6ecb5d0)
  • Re-attach OSGI headers to lite,core, and util. This information was dropped in the move from maven to bazel. (4b5652b)
  • Add Java FileDescriptor.copyHeadingTo() which copies file-level settings (e.g. syntax, package, file options) to FileDescriptorProto.Builder (6e6d0bc)
  • Remove unnecessary has bits from proto2 Java. (c440da9)
  • Add casts to make protobuf compatible with Java 1.8 runtime. (d40aadf)
  • Fix mutability bug in Java proto lite: sub-messages inside of oneofs were not (fa82155)
  • Document known quirks of EnumDescriptor::is_closed() when importing across files with different syntaxes. (1de344f)

Kotlin

  • Remove errorprone dependency from kotlin protos. (7b6e828)

Csharp

  • Make json_name take priority over name (fully) in C# parsing (#12262) (4326e0f)
  • Add C# presence methods to proto3 oneof fields. (affadac)

Objective-C

  • Enforce the max message size when serializing to binary form. (e6d01b2)
  • Mark mergeFromData:extensionRegistry: as deprecated. (e3b0051)

Python

  • Fix bug in _internal_copy_files where the rule would fail in downstream repositories. (b36c392)
  • Make numpy/pip_deps a test-only dependency. (fe038fc)
  • Fix Python bug with required fields (579f4ab)
  • Mark deprecated SupportsUnknownEnumValues on Message reflection. Use FieldDescriptor or EnumDescriptor instead. (0b9134b)
  • Raise warnings for MessageFactory class usages (dd9dd86)
  • Add Python support for retention attribute (63389c0)
  • Document known quirks of EnumDescriptor::is_closed() when importing across files with different syntaxes. (1de344f)

Python C-Extension (Default)

  • Fix Python bug with required fields (protocolbuffers/upb@ea4cb79)
  • See also UPB changes below, which may affect Python C-Extension (Default).

PHP

PHP C-Extension

  • RepeatedField: unset by index (#11425) (363fa89)
  • See also UPB changes below, which may affect PHP C-Extension.

Ruby

  • Change the Ruby code generator to emit a serialized proto instead of the DSL (#12319) (bd52d04)
  • Feat(6178): emit ruby enum as integer (#11673) (8aa2b17)

Ruby C-Extension

  • Feat(6178): emit ruby enum as integer (#11673) (8aa2b17)
  • Ruby: Implement Write Barriers (#11793) (d82d8a4)
  • See also UPB changes below, which may affect Ruby C-Extension.

UPB (Python/PHP/Ruby C-Extension)

Other

  • Fix: missing -DPROTOBUF_USE_DLLS in pkg-config (#12700) (1ca4e9c)
  • Avoid using string(JOIN..., which requires cmake 3.12 (54caf40)
  • Bump Abseil submodule to 20230125.3 (#12660) (750a6e7)
  • Fix btree issue in map tests. (9898418)
  • Fix declared dependencies for pkg-config (#12518) (f79e35c)
  • Fix build for newlib (#12501) (945bf3c)
  • Update usage disclaimer on FieldOptions.ctype (b8e7192)
  • Add config option to print 64-bit integers in JSON as unquoted ints if they can be losslessly converted into a 64-bit float. (330e10d)
  • Version protoc according to the compiler version number. (e67136d)
  • Fix shared object ABI exports (#5144) (#11032) (462964e)
  • Ensure VarintParseSlowArm{32,64} are exported with PROTOBUF_EXPORT (2ce5639)
  • Update the min required CMake version to 3.10 (bcb20bb)

Protocol Buffers v23.0-rc3

05 May 17:20
Compare
Choose a tag to compare
Pre-release

Announcements

  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.

C++

  • Fix(libprotoc): export useful symbols from .so (46fb4aa)
  • Turn off clang::musttail on i386 (b40633f)

Python

  • Fix bug in _internal_copy_files where the rule would fail in downstream repositories. (b36c392)

Other

Protocol Buffers v22.4

04 May 20:35
Compare
Choose a tag to compare

Announcements

  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.

C++

  • Fix libprotoc: export useful symbols from .so (860fbf1)
  • Fix btree issue in map tests. (d379c08)

Python

  • Fix bug in _internal_copy_files where the rule would fail in downstream repositories. (859410b)

Other

  • Bump utf8_range to version with working pkg-config (#12584) (b05ee4f)
  • Fix declared dependencies for pkg-config (2c55945)
  • Update abseil dependency and reorder dependencies to ensure we use the version specified in protobuf_deps. (99529a2)
  • Turn off clang::musttail on i386 (5381f40)

Protocol Buffers v23.0-rc2

28 Apr 18:59
Compare
Choose a tag to compare
Pre-release

Announcements

  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.

C++

  • Fixes Clang 6 linker bug (49bb3f2)

General

  • Replace previous breaking changes in 23.0-rc1 with deprecation warnings. (db1d3f8)

Protocol Buffers v23.0-rc1 (Incomplete)

26 Apr 23:16
Compare
Choose a tag to compare
Pre-release

Announcements

  • This RC was abandoned before artifact publishing due to unintended breaking changes:
    • [Cpp] lock down visibility for FileDescriptor syntax APIs. (8b1be51)
    • [Java] Lock down visibility for FileDescriptor.getSyntax(). (8c8b2be)
    • [Ruby] Lock down visibility for FileDescriptor.getSyntax(). (8c8b2be)
  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.

Compiler

  • Implement a retain_options flag in protoc. (83507c7)
  • Make protoc --descriptor_set_out respect option retention (ae2531d)
  • Modify release artifacts for protoc to statically link system libraries. (723bd4c)
  • Extension declaration: Enforce that if the extension range has a declaration then all extensions in that range must be declared. This should prevent non-declared extensions from being added. (5dc171f)
  • Implement "reserved" for extension declaration. (41287bd)
  • Open-source extension declaration definition. (145900f)

C++

  • Breaking change: lock down visibility for FileDescriptor syntax APIs. (8b1be51)
  • Remove PROTOBUF_DEPRECATED in favor of [[deprecated]]. (5c59290)
  • Add assert to the list of keywords for C++. (a75c1a2)
  • Added Reflection::GetCord() method in C++ (6ecb5d0)
  • Support C++ protobuf ctype=CORD for bytes field (generated code). (714f975)
  • Expand LazySerializerEmitter to cover proto3 cases. (fab7f92)
  • Unconditionally generate unknown field accessors. (dd8a3cf)
  • Introduce proto filter for inject_field_listener_events. (2dc5338)
  • Add ParseFromCord to TextFormat (055a6c6)
  • Mark proto2::Arena::GetArena as deprecated. (9f95958)

Java

  • Adds Timestamps.now(). (295f112)
  • Breaking change: Lock down visibility for FileDescriptor.getSyntax(). (8c8b2be)
  • Added Reflection::GetCord() method in C++ (6ecb5d0)
  • Re-attach OSGI headers to lite,core, and util. This information was dropped in the move from maven to bazel. (4b5652b)
  • Add Java FileDescriptor.copyHeadingTo() which copies file-level settings (e.g. syntax, package, file options) to FileDescriptorProto.Builder (6e6d0bc)
  • Remove unnecessary has bits from proto2 Java. (c440da9)
  • Add casts to make protobuf compatible with Java 1.8 runtime. (d40aadf)
  • Fix mutability bug in Java proto lite: sub-messages inside of oneofs were not (fa82155)
  • Document known quirks of EnumDescriptor::is_closed() when importing across files with different syntaxes. (1de344f)

Kotlin

  • Remove errorprone dependency from kotlin protos. (7b6e828)

Csharp

  • Make json_name take priority over name (fully) in C# parsing (#12262) (4326e0f)
  • Add C# presence methods to proto3 oneof fields. (affadac)

Objective-C

  • Enforce the max message size when serializing to binary form. (e6d01b2)
  • mark mergeFromData:extensionRegistry: as deprecated. (e3b0051)

Python

  • Make numpy/pip_deps a test-only dependency. (fe038fc)
  • Mark sequence containers as Py_TPFLAGS_SEQUENCE, enabling pattern matching (a05c57d)
  • Fix Python bug with required fields (579f4ab)
  • Mark deprecated SupportsUnknownEnumValues on Message reflection. Use FieldDescriptor or EnumDescriptor instead. (0b9134b)
  • Raise warnings for MessageFactory class usages (dd9dd86)
  • Add Python support for retention attribute (63389c0)
  • Document known quirks of EnumDescriptor::is_closed() when importing across files with different syntaxes. (1de344f)

Python C-Extension (Default)

  • Fix Python bug with required fields (protocolbuffers/upb@ea4cb79)
  • See also UPB changes below, which may affect Python C-Extension (Default).

PHP

PHP C-Extension

  • RepeatedField: unset by index (#11425) (363fa89)
  • See also UPB changes below, which may affect PHP C-Extension.

Ruby

  • Change the Ruby code generator to emit a serialized proto instead of the DSL (#12319) (bd52d04)
  • Breaking change: Lock down visibility for FileDescriptor.getSyntax(). (8c8b2be)
  • Feat(6178): emit ruby enum as integer (#11673) (8aa2b17)

Ruby C-Extension

  • Feat(6178): emit ruby enum as integer (#11673) (8aa2b17)
  • Ruby: Implement Write Barriers (#11793) (d82d8a4)
  • See also UPB changes below, which may affect Ruby C-Extension.

UPB (Python/PHP/Ruby C-Extension)

Other

  • Fix btree issue in map tests. (9898418)
  • Fix declared dependencies for pkg-config (#12518) (f79e35c)
  • Fix build for newlib (#12501) (945bf3c)
  • Update usage disclaimer on FieldOptions.ctype (b8e7192)
  • Add config option to print 64-bit integers in JSON as unquoted ints if they can be losslessly converted into a 64-bit float. (330e10d)
  • Version protoc according to the compiler version number. (e67136d)
  • Fix shared object ABI exports (#5144) (#11032) (462964e)
  • Ensure VarintParseSlowArm{32,64} are exported with PROTOBUF_EXPORT (2ce5639)
  • Update the min required CMake version to 3.10 (bcb20bb)