This version includes breaking changes to: C++, Java, PHP, Python, Ruby.
C++ 5.26.0-rc1 has the following breaking changes:
Make protobuf comply with the C++ layering check
Remove const GetArena method on RepeatedPtrField
Disallow incorrect ctype usage
Remove deprecated std::string error collector overrides
Promote ExtensionRange to a proper class
Remove deprecated clear APIs on repeated fields
Remove C++ legacy syntax descriptor APIs
Remove deprecated syntax APIs
Remove deprecated SupportsUnknownEnumValues method
Java 4.26.0-rc1 has the following breaking changes:
Remove unused helper methods for creating new mutable arraylists.
Use Editions features in Java full runtimes.
Stop generating the "newInstance" method. This is not used anymore.
Remove unused overload of AbstractMessageLite.addAll that worked on a Collection instead of a List.
Remove obsolete runtime internalBuildGeneratedFileFrom which was for backwards compatibility with old gencode.
Remove unnecessary overloads of methods:
Remove unnecessary generated overrides for GeneratedMessage.Builder methods:
The base class for generated messages will be GeneratedMessage, not GeneratedMessageV3.
Remove deprecated runtime methods for compatibility with old v2.x.x gencode.
Remove deprecated TextFormat print methods. These should be replaced by corresponding TextFormat.printer
Lock down visibility for descriptor syntax APIs.
Make deprecated Java gencode PARSER variable private.
PHP 4.26.0-rc1 has the following breaking changes:
Validate UTF-8 in string setters, as previously announced.
Remove support for PHP generic services
Python 5.26.0-rc1 has the following breaking changes:
Made text_format output default to UTF-8.
Remove deprecated syntax accessor.
Remove RegisterExtension in message class
Reject extend repeated field with none iterable
Remove Deprecated APIs that add non top descriptor.
check if Timestamp is valid.
Remove msg.UnknownFields
Ruby 4.26.0-rc1 has the following breaking changes:
Removed syntax and added has_presence?/is_packed?.
Fixed json_encode/json_decode to use the message's pool.
Freeze is now recursive, affecting all sub-messages, maps, and repeated fields.
Fixed inconsistencies in Message#to_h, as previously announced.
Dropped support for Ruby DSL, as previously announced.
Lock down visibility for descriptor syntax APIs.
Fixed json_encode/json_decode to use the message's pool.