Releases
v23.0
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 )
You can’t perform that action at this time.