Skip to content

Releases: protocolbuffers/protobuf

Protocol Buffers v24.0-rc1

11 Jul 23:41
Compare
Choose a tag to compare
Pre-release

Announcements

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

Compiler

  • Release prototype of Protobuf Editions. (4f9e417)
  • Compiler: Correct depfile generation when there are no outputs (a44fc2b)
  • Add dllexport_decl for generated default instance. (#13085) (9d0961a)
  • In TSan mode, detect concurrent mutations of repeated/map fields. (d800c5f)
  • Add a workaround for GCC constexpr bug (e15326b)
  • Turn on the table-driven parser by default, as it is no longer experimental. (c3e2efe)
  • Shrink code size of generated protocol buffer code via a few (97c3513)
  • Implement enforcement of target constraints (e3848c1)
  • Fix(libprotoc): export useful symbols from .so (44b4bcc)

C++

  • Fix building shared libraries on MinGW-w64 (#13240) (c2f07bb)
  • Enable TSan validation to detect when a mutable accessor of a message is called concurrently with another accessor on the same message, which is a data race. (0275e51)
  • Release prototype of Protobuf Editions. (4f9e417)
  • Enable TSan validation to detect when a mutable accessor of a message is called concurrently with another accessor on the same message, which is a data race. (e2eae81)
  • Fix case of locality optimizer being wrong for split repeated fields and add a check that the optimized order has the same size as the unoptimized order. (76a327e)
  • Enable TSan validation to detect when a mutable accessor of a message is called concurrently with another accessor on the same message, which is a data race. (80dbc50)
  • Mark single arg ctor explicit in DynamicMessageFactory. (8fe88a5)
  • Enable TSan validation to detect when a mutable accessor of a message is called concurrently with another accessor on the same message, which is a data race. (6d79d13)
  • Let ParseRepeatedStringOnce call AllocateFromStringBlock(). (bcf3e36)
  • Check next tag in MpRepeatedMessage. (9e1cf6f)
  • When parsing repeated primitives, append to a tmp array on stack. (adb2c4b)
  • Add dllexport_decl for generated default instance. (#13085) (9d0961a)
  • TextFormat::ParseFieldValueFromString now takes absl::string_view as input instead of const std::string & (5411fc6)
  • In TSan mode, detect concurrent mutations of repeated/map fields. (d800c5f)
  • Use the same ABI for static and shared libraries on non-Windows platforms (#12983) (4329fde)
  • Replace ColdChunkSkipper with iterator-based approach. (ad677f3)
  • Check invalid type_id after casting it to uint32_t. (d890126)
  • Strengthen assertions on reflection methods. (eb5e9e0)
  • Add assertions to reflection methods. (5866e45)
  • Fail to parse message sets if type_id is zero. (bc1b1f6)
  • Enable the use of [SU]Int32Size and EnumSize templates for AArch64 (#11102) (e285d3e)
  • Add a workaround for GCC constexpr bug (e15326b)
  • Add ABSL_ATTRIBUTE_LIFETIME_BOUND attribute on Map, RepeatedField and RepeatedPtrField. (7b7ba2d)
  • Turn on the table-driven parser by default, as it is no longer experimental. (c3e2efe)
  • Fix: avoid warnings on MSVC (#12697) (4fcf2c0)
  • Fix: avoid warnings on Windows (#12701) (f9108c2)
  • Shrink code size of generated protocol buffer code via a few (97c3513)
  • Fix(libprotoc): export useful symbols from .so (#12619) (b1ae4fa)
  • Forbid embedded nulls in json_name. (b478a29)
  • Implement option retention for C# (5f64444)
  • Implement enforcement of target constraints (e3848c1)
  • Make RepeatedField and RepeatedPtrField be destructor skippable for proto arenas. (e4168df)
  • Update MessageDifferencer to conditionally force comparing additional fields while doing PARTIAL comparison (compare fields which are not repeated, have no presence and are set to their default value). (748f57f)
  • CMake: Use the correct jsoncpp target name in static builds (#12733) (d372fcd)
  • Fix: missing -DPROTOBUF_USE_DLLS in pkg-config (#12700) (f86008a)
  • Avoid using string(JOIN..., which requires cmake 3.12 (adee0a5)

Java

  • Mark OneofDescriptor.isSynthetic() deprecated. (b6b86e2)
  • Use ProtobufArrayList for repeated bytes field. Presize primitive arrays for fixed-length primitives. (b0b926a)
  • Add protobuf-kotlin into protobuf-bom (#12936) (943b696)
  • Handle clear for Java proto3 optionals (synthetic oneofs) using field descriptor instead of clear method. (a534902)
  • Deps: Update Guava to 32.0.0 (#12953) (cd615a8)
  • Migrate repeated numeric fields to use bit field to track presence instead of using it to indicate the field mutability to potentially skip work on the field during build operations. (f0de774)
  • Automated rollback of commit 3e188b7. (a1b3ff0)

Csharp

  • [C#] Replace regex that validates descriptor names (#12174) (cfb702a)
  • Implement option retention for C# (5f64444)

Objective-C

Read more

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)