Protobuf

Latest version: v5.26.1

Safety actively analyzes 621329 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 26

27.0rc1

Announcements
* [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes.

Compiler
* Officially release Editions in 27.0. (https://github.com/protocolbuffers/protobuf/commit/baa83b6b43113a9b39c77e40dc4b10640abda657)
* Define lifetimes of edition 2023 features (https://github.com/protocolbuffers/protobuf/commit/77f62de93e2e84d6aab0364629919779970fb9f1)
* Implement feature lifetime validation in protoc and the C++ runtime. (https://github.com/protocolbuffers/protobuf/commit/b3b4497d61cabf1d0d37b10178f93c570ec67ac6)
* Add edition lifetime options for feature specs. (https://github.com/protocolbuffers/protobuf/commit/b09b3e46fe2a111d412251f6d043649334e9cbee)
* Enable editions support for Java Lite. (https://github.com/protocolbuffers/protobuf/commit/500c953d105d0447479be259a5fb0b6f7124e978)
* Release edition defaults CLI arguments. (https://github.com/protocolbuffers/protobuf/commit/7a0e10e0219fd753b97c2879eb9a92584a419105)
* Update protoc release to include editions language features protos for Java and C++ (https://github.com/protocolbuffers/protobuf/commit/6483c4755daadf1bceb95c4519851c52e8842d2e)

C++
* [C++] Ensure we allocate overaligned types with aligned operator new. (https://github.com/protocolbuffers/protobuf/commit/11ef0ffb873ebd270ab0266270ea965a04c5f2e5)
* Fix text-format delimited field handling (https://github.com/protocolbuffers/protobuf/commit/29c69ff00b58b60e67fcf40fd810009bd39b86c6)
* In debug mode, after clearing oneof messages on arenas, poison them if ASAN. (https://github.com/protocolbuffers/protobuf/commit/8826bafcf507120bdb77883e9a9c0c43a5f5a302)
* Allow string_type for Edition 2023. (https://github.com/protocolbuffers/protobuf/commit/d8251ebc43cb21d3239a38554a2f0a618f368a78)
* Breaking change: Ensure we allocate overaligned types with aligned operator new. (https://github.com/protocolbuffers/protobuf/commit/11ef0ffb873ebd270ab0266270ea965a04c5f2e5)
* Python JSON parser: Ignore invalid enum string values if ignore_unknown_fields is set (15887) (https://github.com/protocolbuffers/protobuf/commit/86abf35ef5ee5b1004ec11bebb36d84c2ef6645e)
* Move java_features.proto to java/core/srce/main/resources (https://github.com/protocolbuffers/protobuf/commit/274bc7f26ff9da996714cf5cd011a7edaf6ce34c)
* Add an RAII namespace printer helper for C++ codegen. (https://github.com/protocolbuffers/protobuf/commit/8599ab5a5934579e9cb775b2cf2bcc69e67c2747)
* Enable editions support for Java Lite. (https://github.com/protocolbuffers/protobuf/commit/500c953d105d0447479be259a5fb0b6f7124e978)
* Add an RAII ifndef helper for C++ codegen. (https://github.com/protocolbuffers/protobuf/commit/1087274e7dc3ea6864af39a46091160b98e809f1)
* Clear oneof message fields even on arena on non-OPT builds. (https://github.com/protocolbuffers/protobuf/commit/5c183bda866e4410a66cda550d6afa2428408879)
* Implement edition 2023 support in all Ruby runtimes. (https://github.com/protocolbuffers/protobuf/commit/bca8fb6117cf24785edb238d96bffe2c3a6d7164)
* Release edition defaults CLI arguments. (https://github.com/protocolbuffers/protobuf/commit/7a0e10e0219fd753b97c2879eb9a92584a419105)
* Deprecate Arena::CreateMessage for OSS. (https://github.com/protocolbuffers/protobuf/commit/d4bfe52d998dae068ea7e2d44decd234bb090c46)
* Open sourcing reflection_visit_fieds. (https://github.com/protocolbuffers/protobuf/commit/cfc07df845a6b5cfc6837e56f3bf8ed20e06eb76)
* Fixed the use of c++ keywords within namespace names (15954) (https://github.com/protocolbuffers/protobuf/commit/988194a591f0b82b1ae52590e4daa5f0519ef8c7)
* Fix pkg-config metadata for shared abseil on windows (15888) (https://github.com/protocolbuffers/protobuf/commit/fe6edca15b2d80df79ab31117dc49621ef461202)
* Add GetStringView() and GetRepeatedStringView() with scratch. (https://github.com/protocolbuffers/protobuf/commit/a3f5af066fcb16bc2e90e28c006597aef1904eab)
* Avoid a 'may be used uninitialized' warning when built with '-c opt'. (15846) (https://github.com/protocolbuffers/protobuf/commit/eb70b343aab7584ed164a6ab4b39789427d0474f)
* Add software prefetch to ByteSizeLong (https://github.com/protocolbuffers/protobuf/commit/948ca2e0f3e74a2444bc4c3cc8da1d0a4cb82058)
* Add prefetching in arena blocks. (https://github.com/protocolbuffers/protobuf/commit/9e57b8e0d800b90d38ab70ac12f086310eb2484e)
* Breaking change: Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/26995798757fbfef5cf6648610848e389db1fecf)
* Rename the 'includingDefaultValueWithoutPresenceFields' and 'always_print_without_presence_fields' to 'alwaysPrintFieldsWithNoPresence' in the Cpp, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/7d43131a0a3a2a7640208849eeac016c6c61374e)
* Remove tags for arena cleanup nodes now that we have dedicated string cleanup blocks. (https://github.com/protocolbuffers/protobuf/commit/202b10639242d3ee1d10c5577618aa008e222ec4)
* Avoid unused-parameter warning in field accessor listeners. (https://github.com/protocolbuffers/protobuf/commit/f4d5c2c571038146de2ee2b22f399527510501d2)
* Add new 'always_print_without_presence_fields' option to the C++ JSON serializer. (https://github.com/protocolbuffers/protobuf/commit/671b61b523dbec8bf8e41a61d5a8f689c3e2bb9f)
* Fail to build descriptor if ctype is specified for non string/bytes fields (https://github.com/protocolbuffers/protobuf/commit/8b4c7a1f33eb6849b57b6457d12adbd001109273)
* Check ctype() in DescriptorBuilder for edition 2023 and beyond. (https://github.com/protocolbuffers/protobuf/commit/307aeac9cf1b31a217921198e46a847179723240)
* Fail building descriptors if `ctype` is used for fields other than string or bytes. (https://github.com/protocolbuffers/protobuf/commit/403e2078b4501359f04b2c0b60bf37b9305a9e0e)
* Fix generation of HasExtension and ExtensionSize functions to restrict to the (https://github.com/protocolbuffers/protobuf/commit/9f5be076540d3b7374987ba42499080075dd6678)
* Add the privacy manifest to the C++ CocoaPod. (https://github.com/protocolbuffers/protobuf/commit/982ea24a9471f5bfbf411568aec8c938dfa7f5ae)

Java
* Define lifetimes of edition 2023 features (https://github.com/protocolbuffers/protobuf/commit/77f62de93e2e84d6aab0364629919779970fb9f1)
* Check that size is non-negative when reading string or bytes in StreamDecoder. (https://github.com/protocolbuffers/protobuf/commit/a94f57bd69e9a5999ba67736e4d70a9d7f96aaf5)
* Fix text-format delimited field handling (https://github.com/protocolbuffers/protobuf/commit/29c69ff00b58b60e67fcf40fd810009bd39b86c6)
* Move java_features.proto to java/core/srce/main/resources (https://github.com/protocolbuffers/protobuf/commit/274bc7f26ff9da996714cf5cd011a7edaf6ce34c)
* Add java_features.proto to kotlin_mvn release (https://github.com/protocolbuffers/protobuf/commit/369732a581f44adc5a4dc5a03c866e9c7f04dc14)
* Enable editions support for Java Lite. (https://github.com/protocolbuffers/protobuf/commit/500c953d105d0447479be259a5fb0b6f7124e978)
* Fix descriptor to access type via getType() s.t. messages using delimited encoding are consistently treated as groups for Java lite. (https://github.com/protocolbuffers/protobuf/commit/9f001a965872b1c82e0f61e53aefb92109357213)
* Make UnsafeByteOperations stable; removing experimental annotation. (https://github.com/protocolbuffers/protobuf/commit/0070ac118863d7bfd12fa3eeab09e78178e41c65)
* Fix features inheritance of oneof fields and extensions and fix/move unit tests to actually run. (https://github.com/protocolbuffers/protobuf/commit/eb10ebd169593600e57106d6cdc84d6ad226f9a8)
* Add software prefetch to ByteSizeLong (https://github.com/protocolbuffers/protobuf/commit/948ca2e0f3e74a2444bc4c3cc8da1d0a4cb82058)
* Breaking change: Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/26995798757fbfef5cf6648610848e389db1fecf)
* Rename the 'includingDefaultValueWithoutPresenceFields' and 'always_print_without_presence_fields' to 'alwaysPrintFieldsWithNoPresence' in the Cpp, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/7d43131a0a3a2a7640208849eeac016c6c61374e)
* Add a new 'includingDefaultValueWithoutPresenceFields' option to the Java parser which is intended to replace the current 'includingDefaultValueFields'. (https://github.com/protocolbuffers/protobuf/commit/58baeb4c3b664f8918d24cef5151083d9da9767c)

Kotlin
* Add java_features.proto to kotlin_mvn release (https://github.com/protocolbuffers/protobuf/commit/369732a581f44adc5a4dc5a03c866e9c7f04dc14)

Csharp
* C: Optimize JSON parsing in JsonTokenizer (https://github.com/protocolbuffers/protobuf/commit/68e6e3e8eecd31b0078422f688a3f01fb881d367)
* C: Avoid string concatenation when looking up enum values by name. (https://github.com/protocolbuffers/protobuf/commit/e6684ac037940c962c7fc3bd7b247b0e583bae2e)
* Cache StringBuilder instances in the .NET JsonTextTokenizer. (https://github.com/protocolbuffers/protobuf/commit/fac929d9aa607ccdfd078344ac12cee7d2b3fdda)
* Enable Editions in the C generator. (https://github.com/protocolbuffers/protobuf/commit/421040b32b002828f0a37404b62e1454fb610761)
* Runtime support for Protobuf Editions in C. (https://github.com/protocolbuffers/protobuf/commit/450022de9939f5eaf9f33696c17005ee7609eecc)
* Tweak "group to property name" mapping for C. Under editions, where fields using a delimited encoding have independent field names from type names, we want to use the specified field name. (https://github.com/protocolbuffers/protobuf/commit/139ea4d38525281349e38bcfadce449a6990421c)
* C: Ignore invalid enum string values in JSON, when invalid fields are being ignored. (https://github.com/protocolbuffers/protobuf/commit/55e50ba40679eb82269c62872116b76c5923d74d)

Objective-C
* Optimize startup be reducing selector lookup. (https://github.com/protocolbuffers/protobuf/commit/b375d010bf57a6d673125330ec47f6e6a7e03f5c)
* Add the privacy manifest to the ObjC CocoaPod. (https://github.com/protocolbuffers/protobuf/commit/0d9151519f28a2221c980594257d88c8bfe1be51)

Python
* Implement feature lifetime validation in protoc and the C++ runtime. (https://github.com/protocolbuffers/protobuf/commit/b3b4497d61cabf1d0d37b10178f93c570ec67ac6)
* Fix text-format delimited field handling (https://github.com/protocolbuffers/protobuf/commit/29c69ff00b58b60e67fcf40fd810009bd39b86c6)
* Python JSON parser: Ignore invalid enum string values if ignore_unknown_fields is set (15887) (https://github.com/protocolbuffers/protobuf/commit/86abf35ef5ee5b1004ec11bebb36d84c2ef6645e)
* Fix upb python: DO NOT create empty optional field after sorting empty repeated field (https://github.com/protocolbuffers/protobuf/commit/7cf02389b30088182269a862f235712f60ab278a)
* Enable Protobuf Python version check. (https://github.com/protocolbuffers/protobuf/commit/0442ed62cbea989742933d6c90f4f0a70078959a)
* Register Scalar/MessageMapContainerTypes as virtual subclasses of MutableMapping instead of inheriting directly. (https://github.com/protocolbuffers/protobuf/commit/5b32936822e64b796fa18fcff53df2305c6b7686)
* Breaking change: Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/26995798757fbfef5cf6648610848e389db1fecf)
* Rename the 'includingDefaultValueWithoutPresenceFields' and 'always_print_without_presence_fields' to 'alwaysPrintFieldsWithNoPresence' in the Cpp, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/7d43131a0a3a2a7640208849eeac016c6c61374e)
* Breaking change: Removed obsolete/duplicate `setup.py` from Python. (https://github.com/protocolbuffers/protobuf/commit/8135fca851c76344392c7888e4eb647013b40479)
* Add new including_default_value_without_presence_fields to Python JSON serializer. (https://github.com/protocolbuffers/protobuf/commit/25c6d34d4ef6e19e490790b015764847f172a1a5)
* Adhere to PEP 8 (15127) (https://github.com/protocolbuffers/protobuf/commit/21ab7459ee43c0d5079e9f7708d453f68a5fd0e5)

PHP
* Don't break the trace (11311) (https://github.com/protocolbuffers/protobuf/commit/d67f921f90e3aa03f65c3e1e507ca7017c8327a6)
* Breaking change: Remove deprecated legacy class aliases. (https://github.com/protocolbuffers/protobuf/commit/60b80c697677e3fa59237eb8d72c97399771f050)
* Fix inconsistent timestamp json encode/decode (12396) (https://github.com/protocolbuffers/protobuf/commit/47e92cd689466a01ab128ac0bb02cfbde3a1fb46)
* Feat: more readable phpdoc escaping (11208) (https://github.com/protocolbuffers/protobuf/commit/f929439ccd19872d71f56050e6ba7af3cd7c753c)

Ruby
* Add bigdecimal to dependencies (16379) (https://github.com/protocolbuffers/protobuf/commit/d810ef6be77c079b890e92a20e5b37cfd8768a0b)
* Implement service & method descriptor lookup in Ruby (15817) (https://github.com/protocolbuffers/protobuf/commit/2082ee8bb5a7966d7e921c848778eb0dec431d56)
* Implement edition 2023 support in all Ruby runtimes. (https://github.com/protocolbuffers/protobuf/commit/bca8fb6117cf24785edb238d96bffe2c3a6d7164)
* Ruby implement memsize functions for native types (10291) (https://github.com/protocolbuffers/protobuf/commit/87cbdddbf0055d2dfeb87245984126fba7549d3e)
* Moved ObjectCache into an internal module. (https://github.com/protocolbuffers/protobuf/commit/f824f6d0d7337b193e5a6d277236b79706a6c319)
* [Ruby] Delegate difference, intersection, union from RepeatedField to Array (15652) (https://github.com/protocolbuffers/protobuf/commit/11eab86cc0ba1aecaa0dbb5e4a530cec274aa989)
* Move the RubyMessage.java JSON "include defaults" to use alwaysPrintFieldsWithNoPresence. (https://github.com/protocolbuffers/protobuf/commit/4d23fa068a5eed1284645ef0d5ed32068986068f)
* Increased the size of the error message buffer by 4x, to 511 bytes. (https://github.com/protocolbuffers/protobuf/commit/32a6f7a18c1bbf6c6eab3fa027bd0b33b62654d0)

Ruby C-Extension
* Implement service & method descriptor lookup in Ruby (15817) (https://github.com/protocolbuffers/protobuf/commit/2082ee8bb5a7966d7e921c848778eb0dec431d56)
* Implement edition 2023 support in all Ruby runtimes. (https://github.com/protocolbuffers/protobuf/commit/bca8fb6117cf24785edb238d96bffe2c3a6d7164)
* Ruby implement memsize functions for native types (10291) (https://github.com/protocolbuffers/protobuf/commit/87cbdddbf0055d2dfeb87245984126fba7549d3e)
* Moved ObjectCache into an internal module. (https://github.com/protocolbuffers/protobuf/commit/f824f6d0d7337b193e5a6d277236b79706a6c319)
* *See also UPB changes below, which may affect Ruby C-Extension.*

UPB (Python/PHP/Ruby C-Extension)
* Setup upb installation with cmake. (https://github.com/protocolbuffers/protobuf/commit/6898451f5e4c84e79a6f48ea6c46959960743970)
* Fix text-format delimited field handling (https://github.com/protocolbuffers/protobuf/commit/29c69ff00b58b60e67fcf40fd810009bd39b86c6)
* Print non-extension fields by field number order instead of .proto file order. (https://github.com/protocolbuffers/protobuf/commit/8612d5e771877123e7fb74d91aaef3912a870a9a)
* Implement service & method descriptor lookup in Ruby (15817) (https://github.com/protocolbuffers/protobuf/commit/2082ee8bb5a7966d7e921c848778eb0dec431d56)
* Implement edition 2023 support in all Ruby runtimes. (https://github.com/protocolbuffers/protobuf/commit/bca8fb6117cf24785edb238d96bffe2c3a6d7164)
* Adds mutable extension accessors to the codegen for upb C for getting mutable extension messages. (https://github.com/protocolbuffers/protobuf/commit/e8244da7c65cac3a410711fd324de73b78a645e7)
* Ruby implement memsize functions for native types (10291) (https://github.com/protocolbuffers/protobuf/commit/87cbdddbf0055d2dfeb87245984126fba7549d3e)
* Increased the size of the error message buffer by 4x, to 511 bytes. (https://github.com/protocolbuffers/protobuf/commit/32a6f7a18c1bbf6c6eab3fa027bd0b33b62654d0)

Conformance
* Added conformance test for unknown field ordering. (https://github.com/protocolbuffers/protobuf/commit/1f6580dd0ccc9adab41a033ada1d2c9e7fce82ff)
* Add editions-specific conformance tests (https://github.com/protocolbuffers/protobuf/commit/8ab39ed6f824d8915eefde0a74a7715213d9cbbf)

Other
* Add redirects for C++ and Java proto rules (https://github.com/protocolbuffers/protobuf/commit/9da1b86c30a12286f63501fe7eace2153ed2bc34)
* Add redirects for proto rules (https://github.com/protocolbuffers/protobuf/commit/d4d34abd7d66dc93c8f7f52f28411cd9c2867c29)
* Feat: automate publishing releases to Bazel Central Registry (16014) (https://github.com/protocolbuffers/protobuf/commit/d2b71b347df6c8af5c3ee1c833f41b7772e3f250)
* Add PrivacyInfo.xcprivacy (15557) (https://github.com/protocolbuffers/protobuf/commit/684660f025703afbc4775dedf9a0bf732b696cf1)

26.1

Announcements
* [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes.

C++
* Expand cpp_features_proto_srcs visibility (https://github.com/protocolbuffers/protobuf/commit/2d3d8ba410550082ee20777653a2a1d515ff8036)
* Move java_features.proto to java/core/srce/main/resources (https://github.com/protocolbuffers/protobuf/commit/22f11700bc7b352308a3f49ba99639f9de8aaffa)

Java
* Fix validateFeatures to be called after resolved features are actually set to this.features (https://github.com/protocolbuffers/protobuf/commit/9bf69ecc833757839421b89e92ddb4dc09b2af0d)
* Move java_features.proto to java/core/srce/main/resources (https://github.com/protocolbuffers/protobuf/commit/22f11700bc7b352308a3f49ba99639f9de8aaffa)
* Set label to REQUIRED for descriptors with LEGACY_REQUIRED feature. (https://github.com/protocolbuffers/protobuf/commit/4886a9cd8ffe81caf4c4b5b9ef7ce0de426a7b08)
* Add java_features.proto to kotlin_mvn release (https://github.com/protocolbuffers/protobuf/commit/0e4abf965ca48568457824ddb7944a4e70674411)

Kotlin
* Add java_features.proto to kotlin_mvn release (https://github.com/protocolbuffers/protobuf/commit/0e4abf965ca48568457824ddb7944a4e70674411)

Ruby
* Cherry-pick required label handling in JRuby field descriptor from https://github.com/protocolbuffers/protobuf/commit/bca8fb6117cf24785edb238d96bffe2c3a6d7164 (https://github.com/protocolbuffers/protobuf/commit/2e51ff6de3e8c594d965b2ad8952b911383cf0bf)

Other
* Update protoc release to include editions language features protos for Java and C++ (https://github.com/protocolbuffers/protobuf/commit/7f457737f37373c181b649d4eb01e23bd198bcb4)
* Fix Android platforms constraint (16246) (16271) (https://github.com/protocolbuffers/protobuf/commit/b4e18708070a75d80965fb16ced60661e531bd9a)
* Add back android config_setting that looks for //external:android/crosstool (16127) (16264) (https://github.com/protocolbuffers/protobuf/commit/a97c927b51a140bb4b47726a0f61afaef44f0f6e)

26.0

Announcements
* **This version includes breaking changes to: Java, PHP, C++, Ruby, Python.**
* [Java] Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
* [Java] Remove unused helper methods for creating new mutable arraylists. (https://github.com/protocolbuffers/protobuf/commit/787447430fc9a69c071393e85a380b664d261ab4)
* [Java] Use Editions features in Java full runtimes. (https://github.com/protocolbuffers/protobuf/commit/65c65c2d04b293225db150029d005056a9f078b8)
* [Java] Stop generating the "newInstance" method. This is not used anymore. (https://github.com/protocolbuffers/protobuf/commit/c0d08bdcade9d44698015b85c9c23343ca1319b7)
* [Java] Remove unused overload of AbstractMessageLite.addAll that worked on a Collection instead of a List. (https://github.com/protocolbuffers/protobuf/commit/3b9bd6db71d20832980e579e0b9b03eb39e96a1f)
* [Java] Remove obsolete runtime internalBuildGeneratedFileFrom which was for backwards compatibility with old gencode. (https://github.com/protocolbuffers/protobuf/commit/9310d2e817a987878b03f8b5215fdbfea766ad23)
* [Java] Remove unnecessary overloads of methods: (https://github.com/protocolbuffers/protobuf/commit/94a2a448518403341b8aa71335ab1123fbdcccd8)
* [Java] Remove unnecessary generated overrides for GeneratedMessage.Builder methods: (https://github.com/protocolbuffers/protobuf/commit/7bff169d32710b143951ec6ce2c4ea9a56e2ad24)
* [Java] The base class for generated messages will be GeneratedMessage, not GeneratedMessageV3.
* [Java] Remove deprecated runtime methods for compatibility with old v2.x.x gencode. (https://github.com/protocolbuffers/protobuf/commit/e555bd23d077216ea40006c45eeaaa5aa385d921)
* [Java] Remove deprecated TextFormat print methods. These should be replaced by corresponding TextFormat.printer() methods. (https://github.com/protocolbuffers/protobuf/commit/dfb8a4c3f75910d37095a990706c0ae2c2e26b0f)
* [Java] Lock down visibility for descriptor syntax APIs. (https://github.com/protocolbuffers/protobuf/commit/1aeacd4f4eb4e0aa05d6336e2988a565e475e9a0)
* [Java] Make deprecated Java gencode PARSER variable private. (https://github.com/protocolbuffers/protobuf/commit/b4858b255bcf24d05789ce23c297e33524dd37fe)
* [Java] Use Editions features in Java full runtimes. (https://github.com/protocolbuffers/protobuf/commit/65c65c2d04b293225db150029d005056a9f078b8)
* [Java] The base class for generated messages will be GeneratedMessage, not GeneratedMessageV3.
* [PHP] Validate UTF-8 in string setters, [as previously announced](https://protobuf.dev/news/2023-12-27/#php-breaking-changes). (https://github.com/protocolbuffers/protobuf/commit/d14dbbc838ad0439c6968f46ac92204557aa31a1)
* [PHP] Remove deprecated legacy class aliases. (15709) (https://github.com/protocolbuffers/protobuf/commit/096e127d02ca4f49220f46a42feacf0b1e1bb18f)
* [PHP] Validate UTF-8 in string setters, [as previously announced](https://protobuf.dev/news/2023-12-27/#php-breaking-changes). (https://github.com/protocolbuffers/protobuf/commit/d14dbbc838ad0439c6968f46ac92204557aa31a1)
* [PHP] Remove support for PHP generic services (https://github.com/protocolbuffers/protobuf/commit/40ad3fac603ba3c96e52a1266cd785a7adb8e3e4)
* [C++] Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
* [C++] Remove const GetArena method on RepeatedPtrField (https://github.com/protocolbuffers/protobuf/commit/748ab1608a33dd3d28070d6df54c8956aa893985)
* [C++] Disallow incorrect ctype usage (https://github.com/protocolbuffers/protobuf/commit/755b690a7c31d92103343f20ba32d752495e60a3)
* [C++] Remove deprecated std::string error collector overrides (https://github.com/protocolbuffers/protobuf/commit/543fbcdbd9496de9d93a6eb4645640cb47a5514b)
* [C++] Promote ExtensionRange to a proper class (https://github.com/protocolbuffers/protobuf/commit/5b12bc858f1f0e02477ac3e3e3fea5bc88f1bdc3)
* [C++] Remove deprecated clear APIs on repeated fields (https://github.com/protocolbuffers/protobuf/commit/229906f3091742e05e51445a66164025b0244409)
* [C++] Remove C++ legacy syntax descriptor APIs (https://github.com/protocolbuffers/protobuf/commit/cf2d6965dcb6e15490232041da8b7b6c8ec669eb)
* [C++] Remove deprecated syntax APIs (https://github.com/protocolbuffers/protobuf/commit/715b543e0416006ae17dfd409fe41a070e3cc49c)
* [C++] Remove deprecated SupportsUnknownEnumValues method (https://github.com/protocolbuffers/protobuf/commit/0a6a51655f3f6af554766d88b6d717e31af34b01)
* [Ruby] Removed `syntax` and added `has_presence?`/`is_packed?`. (https://github.com/protocolbuffers/protobuf/commit/dbd4dcede084f7c301bfdf229e1e51dfd3e1179f)
* [Ruby] Fixed json_encode/json_decode to use the message's pool. (https://github.com/protocolbuffers/protobuf/commit/a8b8ea02b74095042a6c4a6acb50498a1a2c4570)
* [Ruby] Freeze is now recursive, affecting all sub-messages, maps, and repeated fields. (https://github.com/protocolbuffers/protobuf/commit/31313b16522b36394d460055f6a49000ae939153)
* [Ruby] Fixed inconsistencies in `Messageto_h`, [as previously announced](https://protobuf.dev/news/2023-12-27/). (https://github.com/protocolbuffers/protobuf/commit/fd699383f44d6847fa6ddc3e0c9c94e77e3cf8dc)
* [Ruby] Dropped support for Ruby DSL, [as previously announced](https://engdoc.corp.google.com/eng/doc/devguide/proto/news/2023-12-27.md#ruby-breaking-changes). (https://github.com/protocolbuffers/protobuf/commit/5cfc9e775d76acb37e5b554e53dff336a89d000f)
* [Ruby] Lock down visibility for descriptor syntax APIs. (https://github.com/protocolbuffers/protobuf/commit/1aeacd4f4eb4e0aa05d6336e2988a565e475e9a0)
* [Ruby] Removed `syntax` and added `has_presence?`/`is_packed?`. (https://github.com/protocolbuffers/protobuf/commit/dbd4dcede084f7c301bfdf229e1e51dfd3e1179f)
* [Ruby] Fixed json_encode/json_decode to use the message's pool. (https://github.com/protocolbuffers/protobuf/commit/a8b8ea02b74095042a6c4a6acb50498a1a2c4570)
* [Ruby] Freeze is now recursive, affecting all sub-messages, maps, and repeated fields. (https://github.com/protocolbuffers/protobuf/commit/31313b16522b36394d460055f6a49000ae939153)
* [Ruby] Fixed inconsistencies in `Messageto_h`, [as previously announced](https://protobuf.dev/news/2023-12-27/). (https://github.com/protocolbuffers/protobuf/commit/fd699383f44d6847fa6ddc3e0c9c94e77e3cf8dc)
* [Python] Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
* [Python] Removed obsolete/duplicate `setup.py` from Python. (15708) (https://github.com/protocolbuffers/protobuf/commit/5722aeffcad72e9a335a3ec7985858dfa31477be)
* [Python] Made text_format output default to UTF-8. (https://github.com/protocolbuffers/protobuf/commit/bf00034493381f6ae2b49f04e101b3251bb099c9)
* [Python] Remove RegisterExtension in message class (https://github.com/protocolbuffers/protobuf/commit/4ebba684c791416a9131dd01d4c5175a2beb3566)
* [Python] Reject extend repeated field with none iterable (Raise TypeError) (https://github.com/protocolbuffers/protobuf/commit/1658213ba84a641531948aa9cdc3b53bebf20190)
* [Python] Remove Deprecated APIs that add non top descriptor. (https://github.com/protocolbuffers/protobuf/commit/c51f1110224910015ed90d7d6fb27ff24243baa8)
* [Python] Check if Timestamp is valid. (https://github.com/protocolbuffers/protobuf/commit/4f77929203cbf33ae3a710f7370794e36912acbc)
* [Python] Remove msg.UnknownFields() support in pure python and cpp extension. (https://github.com/protocolbuffers/protobuf/commit/0eac77c2c6389bd7f3fb21fa43ed13108ab0600f)
* [Python] Remove deprecated syntax accessor. (https://github.com/protocolbuffers/protobuf/commit/fd40c87befa92c1b944ae5fbd42bafe41003ad4e)
* [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes.

Compiler
* Add <shellapi.h> include for CommandLineToArgvW (https://github.com/protocolbuffers/protobuf/commit/2299e1db6fdd0e76b7a757241a6a443200477b8e)
* Fix getting env variables on windows (15518) (https://github.com/protocolbuffers/protobuf/commit/71b0b4e0a9f2d9080f167c03dcafbd8b1823fb76)
* Proper fix utf8 command line arguments (14253) (https://github.com/protocolbuffers/protobuf/commit/1eff9d74519c7d21592dddc3c3665993bb0f117f)
* Allocate an editions FeatureSet extension for https://github.com/bufbuild/protobuf-es (https://github.com/protocolbuffers/protobuf/commit/fedd34df47ad442e1cc41b1a828955f384a0c9e2)
* Make rules_ruby a dev-only dependency. (https://github.com/protocolbuffers/protobuf/commit/571b727cb66ad51f89fbef565d3a6c123366a1f5)

C++
* Remove rust proto libraries from the editions/BUILD file. (https://github.com/protocolbuffers/protobuf/commit/1f9d9fbe14b78857adab835e8d0dc9c703088078)
* Fix CMake regex escaping. (https://github.com/protocolbuffers/protobuf/commit/3ad69cf8b07ebcd54e76ee5360586a41b4f9d627)
* Escape _from_dir in install.cmake for regex special characters (e.g. c++) before REGEX REPLACE. (https://github.com/protocolbuffers/protobuf/commit/f740f528fa08f9d126650d92472a921e53a95a73)
* Tweak BUILD setup to make the layering check change less disruptive (15838) (https://github.com/protocolbuffers/protobuf/commit/52aa1506e9b0183bf1dbb1506967a152ffba8721)
* Add missing alias targets for C++ util libraries (15783) (https://github.com/protocolbuffers/protobuf/commit/62e7a56f50d88fdd0ebcb0430103120d60bd9863)
* Breaking change: Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
* Rename the 'includingDefaultValueWithoutPresenceFields' and 'always_print_without_presence_fields' to 'alwaysPrintFieldsWithNoPresence' in the Cpp, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/fc41e78d7a5ead031f23ba2e1dcf35fdf941751a)
* Add new 'always_print_without_presence_fields' option to the C++ JSON serializer. (https://github.com/protocolbuffers/protobuf/commit/1f3bf1d31ed4b45ff1ac463941784b9dcba15bc8)
* Remove use of mach_absolute_time (15554) (15662) (https://github.com/protocolbuffers/protobuf/commit/8b0f6fdcca7c0344358d415d12548196032e5279)
* Check ctype() in DescriptorBuilder for edition 2023 and beyond. (https://github.com/protocolbuffers/protobuf/commit/0090f195f007cd48f7040746983a7a0905d914d1)
* Fail building descriptors if `ctype` is used for fields other than string or bytes. (https://github.com/protocolbuffers/protobuf/commit/624d65da6aa8bb28421310ba1ae53183fd7066bb)
* [CPP] Add the privacy manifest to the C++ CocoaPod. (15664) (https://github.com/protocolbuffers/protobuf/commit/e7888a1068ddcfd0c91fef4dec76c8cea2befe9a)
* Correct type_resolver_util to set syntax=proto3 instead of syntax=proto2 on proto3 files. (https://github.com/protocolbuffers/protobuf/commit/040dde7e37ccb36cd4243292f12116ef242eb3f1)
* Remove edition getter from C++ descriptor APIs (https://github.com/protocolbuffers/protobuf/commit/93b219f4e84d83415ad7b77f5bc0ae2df5490fea)
* Breaking change: Remove const GetArena method on RepeatedPtrField (https://github.com/protocolbuffers/protobuf/commit/748ab1608a33dd3d28070d6df54c8956aa893985)
* Breaking change: Disallow incorrect ctype usage (https://github.com/protocolbuffers/protobuf/commit/755b690a7c31d92103343f20ba32d752495e60a3)
* Breaking change: Remove deprecated std::string error collector overrides (https://github.com/protocolbuffers/protobuf/commit/543fbcdbd9496de9d93a6eb4645640cb47a5514b)
* Breaking change: Promote ExtensionRange to a proper class (https://github.com/protocolbuffers/protobuf/commit/5b12bc858f1f0e02477ac3e3e3fea5bc88f1bdc3)
* Breaking change: Remove deprecated clear APIs on repeated fields (https://github.com/protocolbuffers/protobuf/commit/229906f3091742e05e51445a66164025b0244409)
* Breaking change: Remove C++ legacy syntax descriptor APIs (https://github.com/protocolbuffers/protobuf/commit/cf2d6965dcb6e15490232041da8b7b6c8ec669eb)
* Fixed UTF-8 TextFormat output to protect against invalid UTF-8 in string fields. (https://github.com/protocolbuffers/protobuf/commit/1ac8c04604fe8ba119cdcdaeb1e22ae962de40e3)
* Breaking change: Remove deprecated syntax APIs (https://github.com/protocolbuffers/protobuf/commit/715b543e0416006ae17dfd409fe41a070e3cc49c)
* Fix DurationToMilliseconds mult overflow (https://github.com/protocolbuffers/protobuf/commit/17b8dd6476cf663517393fd866e888af2494bdb2)
* Breaking change: Remove deprecated SupportsUnknownEnumValues method (https://github.com/protocolbuffers/protobuf/commit/0a6a51655f3f6af554766d88b6d717e31af34b01)
* Have Arena::Create support arena constructible types (https://github.com/protocolbuffers/protobuf/commit/578e07e9bd19b4ae959c57bbe4c1524d5642b58e)
* Enforce stricter version checks for Protobuf C++ by removing the notion of "minimal version of protoc/headers"; exact version match is required. (https://github.com/protocolbuffers/protobuf/commit/6eed7a2f53bf29e615e6c34ecb7c98ea8eab4d1c)
* Compare explicit zeroes from prototext in partially. (https://github.com/protocolbuffers/protobuf/commit/8c2416311f7b2c5410e620197baacf9d82b86ebd)
* Move the declarations in SerialArena to more closely match the style guide. (https://github.com/protocolbuffers/protobuf/commit/349122f777a3d6029e9a189729720b0842072a71)

Java
* Resolve features directly in setProto instead of temporarily setting to null. (https://github.com/protocolbuffers/protobuf/commit/aea0e52ec2b5ecab632299eedde77894b75d5495)
* Breaking change: Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
* Rename the 'includingDefaultValueWithoutPresenceFields' and 'always_print_without_presence_fields' to 'alwaysPrintFieldsWithNoPresence' in the Cpp, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/fc41e78d7a5ead031f23ba2e1dcf35fdf941751a)
* Add a new 'includingDefaultValueWithoutPresenceFields' option to the Java parser which is intended to replace the current 'includingDefaultValueFields'. (https://github.com/protocolbuffers/protobuf/commit/043191b84d6061ed923d1c227ef38030f18fe619)
* Force descriptor initialization of dependencies *before* internalUpdateFileDescriptor(). (15718) (https://github.com/protocolbuffers/protobuf/commit/4dec1a7d410c9380fb0bbb177666764af4bddda2)
* Correctly set maven-compiler-plugin to >= Java 1.8 per our minimum Java version (15707) (https://github.com/protocolbuffers/protobuf/commit/6028cdba533994ee23cc7cf0247e46d561ad379d)
* Update internalUpdateFileDescriptor() to synchronize setProto() and resolveAllFeatures() to avoid data races. (15659) (https://github.com/protocolbuffers/protobuf/commit/225b08088c54f8c89df284ac538b266109cec4c4)
* Drop Protobuf support for Android KitKat per EOL and add existing minimum Java 1.8 in Maven pom.xmls (https://github.com/protocolbuffers/protobuf/commit/303239d74d07daf49ecdba6e23e41c8fe5a9b41e)
* Breaking change: Remove unused helper methods for creating new mutable arraylists. (https://github.com/protocolbuffers/protobuf/commit/787447430fc9a69c071393e85a380b664d261ab4)
* Breaking change: Use Editions features in Java full runtimes. (https://github.com/protocolbuffers/protobuf/commit/65c65c2d04b293225db150029d005056a9f078b8)
* Breaking change: Stop generating the "newInstance" method. This is not used anymore. (https://github.com/protocolbuffers/protobuf/commit/c0d08bdcade9d44698015b85c9c23343ca1319b7)
* Breaking change: Remove unused overload of AbstractMessageLite.addAll that worked on a Collection instead of a List. (https://github.com/protocolbuffers/protobuf/commit/3b9bd6db71d20832980e579e0b9b03eb39e96a1f)
* Breaking change: Remove obsolete runtime internalBuildGeneratedFileFrom which was for backwards compatibility with old gencode. (https://github.com/protocolbuffers/protobuf/commit/9310d2e817a987878b03f8b5215fdbfea766ad23)
* Breaking change: Remove unnecessary overloads of methods: (https://github.com/protocolbuffers/protobuf/commit/94a2a448518403341b8aa71335ab1123fbdcccd8)
* Breaking change: Remove unnecessary generated overrides for GeneratedMessage.Builder methods: (https://github.com/protocolbuffers/protobuf/commit/7bff169d32710b143951ec6ce2c4ea9a56e2ad24)
* Breaking change: The base class for generated messages will be GeneratedMessage, not GeneratedMessageV3.
* Breaking change: Remove deprecated runtime methods for compatibility with old v2.x.x gencode. (https://github.com/protocolbuffers/protobuf/commit/e555bd23d077216ea40006c45eeaaa5aa385d921)
* Breaking change: Remove deprecated TextFormat print methods. These should be replaced by corresponding TextFormat.printer() methods. (https://github.com/protocolbuffers/protobuf/commit/dfb8a4c3f75910d37095a990706c0ae2c2e26b0f)
* Support pretty printing proto2 Extensions inside of proto3 Anys in TextFormat.Printer. (https://github.com/protocolbuffers/protobuf/commit/c8e01607aec4c09f510aa7e0d5df6a204e74189e)
* Breaking change: Lock down visibility for descriptor syntax APIs. (https://github.com/protocolbuffers/protobuf/commit/1aeacd4f4eb4e0aa05d6336e2988a565e475e9a0)
* Enable Protobuf version validations in Protobuf Java Full. (https://github.com/protocolbuffers/protobuf/commit/a2f92689dac8a7dbea584919c7de52d6a28d66d1)
* Breaking change: Make deprecated Java gencode PARSER variable private. (https://github.com/protocolbuffers/protobuf/commit/b4858b255bcf24d05789ce23c297e33524dd37fe)
* Add Automatic-Module-Name (14562) (https://github.com/protocolbuffers/protobuf/commit/d580fde63aa8ea5c6f4619396e68aaf017fc9d61)
* Use Editions features in Java, Kotlin, and Java Lite code generators. (https://github.com/protocolbuffers/protobuf/commit/90e1b49f0f838a3bedb0d485a7f323e468730eb7)

Kotlin
* Breaking change: Use Editions features in Java full runtimes. (https://github.com/protocolbuffers/protobuf/commit/65c65c2d04b293225db150029d005056a9f078b8)
* Breaking change: The base class for generated messages will be GeneratedMessage, not GeneratedMessageV3.
* Use Editions features in Java, Kotlin, and Java Lite code generators. (https://github.com/protocolbuffers/protobuf/commit/90e1b49f0f838a3bedb0d485a7f323e468730eb7)

Objective-C
* [ObjC] Use a local to avoid warnings in 32bit builds. (15665) (https://github.com/protocolbuffers/protobuf/commit/394aec87f47f449673c7b32246338b68ac2215fa)
* [ObjC] Add the privacy manifest to the ObjC CocoaPod. (15663) (https://github.com/protocolbuffers/protobuf/commit/935fcb7c6d8c9932081f358c2c2561e9f71e312a)
* Improve handing of the WKT ObjC Category additions. (https://github.com/protocolbuffers/protobuf/commit/b146d14e31e5488978517396406f9afe2664f0b0)
* Add a `unpack` helper for GPBAny with extension support. (https://github.com/protocolbuffers/protobuf/commit/29fca8a64b62491fb0a2ce61878e70eda88dde98)

Rust
* Tweak BUILD setup to make the layering check change less disruptive (15838) (https://github.com/protocolbuffers/protobuf/commit/52aa1506e9b0183bf1dbb1506967a152ffba8721)

Python
* Adhere to PEP 8 (15127) (15729) (https://github.com/protocolbuffers/protobuf/commit/3b92f4fe38ec98f081a45dc4a6e7583ecbfa4aaf)
* Breaking change: Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
* Rename the 'includingDefaultValueWithoutPresenceFields' and 'always_print_without_presence_fields' to 'alwaysPrintFieldsWithNoPresence' in the Cpp, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/fc41e78d7a5ead031f23ba2e1dcf35fdf941751a)
* Add new including_default_value_without_presence_fields to Python JSON serializer. (https://github.com/protocolbuffers/protobuf/commit/c530216544611bad1d5a4be48412c81a5a41d9a7)
* Breaking change: Removed obsolete/duplicate `setup.py` from Python. (15708) (https://github.com/protocolbuffers/protobuf/commit/5722aeffcad72e9a335a3ec7985858dfa31477be)
* Fixed a bug when deep copying a map field with a closed enum value. (https://github.com/protocolbuffers/protobuf/commit/ca5ca62fa60a52bae31f3828e5135cbf034237ae)
* Breaking change: Made text_format output default to UTF-8. (https://github.com/protocolbuffers/protobuf/commit/bf00034493381f6ae2b49f04e101b3251bb099c9)
* Fixed a SEGV when deep copying a non-reified sub-message. (https://github.com/protocolbuffers/protobuf/commit/b9e4894462fab2e35da987a44fbe464b4c1d0140)
* Make `str(msg)` in Python print raw UTF-8 strings. Only invalid UTF-8 is escaped. (https://github.com/protocolbuffers/protobuf/commit/f2a91b33e1d7ccae295a966c932551096881c16a)
* Breaking change: Remove RegisterExtension in message class (https://github.com/protocolbuffers/protobuf/commit/4ebba684c791416a9131dd01d4c5175a2beb3566)
* Breaking change: Reject extend repeated field with none iterable (Raise TypeError) (https://github.com/protocolbuffers/protobuf/commit/1658213ba84a641531948aa9cdc3b53bebf20190)
* Breaking change: Remove Deprecated APIs that add non top descriptor. (https://github.com/protocolbuffers/protobuf/commit/c51f1110224910015ed90d7d6fb27ff24243baa8)
* Breaking change: Check if Timestamp is valid. (https://github.com/protocolbuffers/protobuf/commit/4f77929203cbf33ae3a710f7370794e36912acbc)
* [Python/upb] Fixed SEGV when attempting to delete a message attribute (https://github.com/protocolbuffers/protobuf/commit/de52944f389c85943f35049cc9cdf9ea0a3ca380)
* Breaking change: Remove msg.UnknownFields() support in pure python and cpp extension. (https://github.com/protocolbuffers/protobuf/commit/0eac77c2c6389bd7f3fb21fa43ed13108ab0600f)
* Breaking change: Remove deprecated syntax accessor. (https://github.com/protocolbuffers/protobuf/commit/fd40c87befa92c1b944ae5fbd42bafe41003ad4e)
* Fixed a bug where FileDescriptor maps like `message_types_by_name` could return descriptors from other files. (https://github.com/protocolbuffers/protobuf/commit/c05b320d9c18173bfce36c4bef22f9953d340ff9)
* Mark the python generator for editions support. (https://github.com/protocolbuffers/protobuf/commit/b01bd1ba17e85a3922e475f89ccc2fb89ba153a3)
* Add support and partial CI coverage for Python 3.12 (https://github.com/protocolbuffers/protobuf/commit/24fef03259d65987e5df14b06952b6e6bdac88d0)
* Implement Editions in Pure Python. (https://github.com/protocolbuffers/protobuf/commit/15eccf3ec4636cab20a16b7570d3967d79ecfa95)
* Properly untrack Python GC objects during deallocation. (https://github.com/protocolbuffers/protobuf/commit/e32d0948e7b2799037be0e4364816249119acc3f)
* Raise warnings for python syntax usages (https://github.com/protocolbuffers/protobuf/commit/c508a40f40c0b4f1e562ef917cd5606d66d9601c)
* Fixed Python memory leak in map lookup. (https://github.com/protocolbuffers/protobuf/commit/b0eeb356b84fb7e8773c9a0dd76b354ae2e3f218)
* Fix handling of Unicode escapes in string data in textproto files. (https://github.com/protocolbuffers/protobuf/commit/62a435c1ab81ea65850f1b1fb58f7b3c6f498cef)

PHP
* Don't break the trace (11311) (15727) (https://github.com/protocolbuffers/protobuf/commit/3e9902408fecc9a05028d864ee62439360736e94)
* Fix inconsistent timestamp json encode/decode (12396) (15726) (https://github.com/protocolbuffers/protobuf/commit/e99f27ec0691aa3a277cb34125600498617216c7)
* Breaking change: Remove deprecated legacy class aliases. (15709) (https://github.com/protocolbuffers/protobuf/commit/096e127d02ca4f49220f46a42feacf0b1e1bb18f)
* Raise minimum PHP version to 8.1, due to PHP 8.0 EOL per https://cloud.google.com/php/getting-started/supported-php-versions (https://github.com/protocolbuffers/protobuf/commit/3c8a3d27f7c035e977e2eb5226e4154f129a573b)
* Breaking change: Validate UTF-8 in string setters, [as previously announced](https://protobuf.dev/news/2023-12-27/#php-breaking-changes). (https://github.com/protocolbuffers/protobuf/commit/d14dbbc838ad0439c6968f46ac92204557aa31a1)
* Breaking change: Remove support for PHP generic services (https://github.com/protocolbuffers/protobuf/commit/40ad3fac603ba3c96e52a1266cd785a7adb8e3e4)
* Expand PHP generator to support overlapping subset of proto2. (https://github.com/protocolbuffers/protobuf/commit/b603fb69bf0c1aef24dfe5470c9d4ae99b9031b1)
* Feat: better debug info for PHP messages and repeated fields (12718) (https://github.com/protocolbuffers/protobuf/commit/59d5006d6073602675c9d9f418353a566a085658)

PHP C-Extension
* Updated amalgamations for PHP and Ruby. (https://github.com/protocolbuffers/protobuf/commit/c773dc9f640b12ade7de2ce89dc6bc712071ecf9)
* Breaking change: Validate UTF-8 in string setters, [as previously announced](https://protobuf.dev/news/2023-12-27/#php-breaking-changes). (https://github.com/protocolbuffers/protobuf/commit/d14dbbc838ad0439c6968f46ac92204557aa31a1)
* Optimized binary/JSON parsing to no longer copy input data into a temp buffer. (https://github.com/protocolbuffers/protobuf/commit/588d5aa0dbee01c6caf51add7c7ed74edbe0c794)
* *See also UPB changes below, which may affect PHP C-Extension.*

Ruby
* Ruby implement memsize functions for native types (10291) (https://github.com/protocolbuffers/protobuf/commit/4902fc08c82d79fe55f9e8626697780b1f6e6c1a)
* Moved ObjectCache into an internal module. (https://github.com/protocolbuffers/protobuf/commit/9087337e5103d058887c691913b08182ea8da899)
* Increased the size of the error message buffer by 4x, to 511 bytes. (15728) (https://github.com/protocolbuffers/protobuf/commit/ab6bcba754c7c5d57d7b627a83614b77b64a7cf9)
* Move the RubyMessage.java JSON "include defaults" to use alwaysPrintFieldsWithNoPresence. (https://github.com/protocolbuffers/protobuf/commit/b5beba3aa15f76967c00c3b2c90b58abd51123bb)
* Breaking change: Removed `syntax` and added `has_presence?`/`is_packed?`. (https://github.com/protocolbuffers/protobuf/commit/dbd4dcede084f7c301bfdf229e1e51dfd3e1179f)
* Breaking change: Fixed json_encode/json_decode to use the message's pool. (https://github.com/protocolbuffers/protobuf/commit/a8b8ea02b74095042a6c4a6acb50498a1a2c4570)
* Breaking change: Freeze is now recursive, affecting all sub-messages, maps, and repeated fields. (https://github.com/protocolbuffers/protobuf/commit/31313b16522b36394d460055f6a49000ae939153)
* Breaking change: Fixed inconsistencies in `Messageto_h`, [as previously announced](https://protobuf.dev/news/2023-12-27/). (https://github.com/protocolbuffers/protobuf/commit/fd699383f44d6847fa6ddc3e0c9c94e77e3cf8dc)
* Breaking change: Dropped support for Ruby DSL, [as previously announced](https://engdoc.corp.google.com/eng/doc/devguide/proto/news/2023-12-27.md#ruby-breaking-changes). (https://github.com/protocolbuffers/protobuf/commit/5cfc9e775d76acb37e5b554e53dff336a89d000f)
* In Ruby repeated fields, each_index actually iterates over the index (11767) (https://github.com/protocolbuffers/protobuf/commit/f869cfa479c293ecd55c2f8ccbf981cd3bb41ecf)
* Breaking change: Lock down visibility for descriptor syntax APIs. (https://github.com/protocolbuffers/protobuf/commit/1aeacd4f4eb4e0aa05d6336e2988a565e475e9a0)
* Make rules_ruby a dev-only dependency. (https://github.com/protocolbuffers/protobuf/commit/571b727cb66ad51f89fbef565d3a6c123366a1f5)
* Add support for extensions in CRuby, JRuby, and FFI Ruby (14703) (https://github.com/protocolbuffers/protobuf/commit/42f8b7782ed539d56d0f0e13da4e85603553e828)
* Add support for options in CRuby, JRuby and FFI (14594) (https://github.com/protocolbuffers/protobuf/commit/ae1f2b7e1b329aba1d204e6d3ddc61a88bc35dd9)

Ruby C-Extension
* Updated amalgamations for PHP and Ruby. (https://github.com/protocolbuffers/protobuf/commit/c773dc9f640b12ade7de2ce89dc6bc712071ecf9)
* Ruby implement memsize functions for native types (10291) (https://github.com/protocolbuffers/protobuf/commit/4902fc08c82d79fe55f9e8626697780b1f6e6c1a)
* Moved ObjectCache into an internal module. (https://github.com/protocolbuffers/protobuf/commit/9087337e5103d058887c691913b08182ea8da899)
* Breaking change: Removed `syntax` and added `has_presence?`/`is_packed?`. (https://github.com/protocolbuffers/protobuf/commit/dbd4dcede084f7c301bfdf229e1e51dfd3e1179f)
* Breaking change: Fixed json_encode/json_decode to use the message's pool. (https://github.com/protocolbuffers/protobuf/commit/a8b8ea02b74095042a6c4a6acb50498a1a2c4570)
* Breaking change: Freeze is now recursive, affecting all sub-messages, maps, and repeated fields. (https://github.com/protocolbuffers/protobuf/commit/31313b16522b36394d460055f6a49000ae939153)
* Breaking change: Fixed inconsistencies in `Messageto_h`, [as previously announced](https://protobuf.dev/news/2023-12-27/). (https://github.com/protocolbuffers/protobuf/commit/fd699383f44d6847fa6ddc3e0c9c94e77e3cf8dc)
* Upb: fix Ruby bug which allowed map.delete(key) on a frozen map (https://github.com/protocolbuffers/protobuf/commit/df57e5474bf3ce211329e55993cb991a7ce1c5e0)
* Add support for extensions in CRuby, JRuby, and FFI Ruby (14703) (https://github.com/protocolbuffers/protobuf/commit/42f8b7782ed539d56d0f0e13da4e85603553e828)
* Add support for options in CRuby, JRuby and FFI (14594) (https://github.com/protocolbuffers/protobuf/commit/ae1f2b7e1b329aba1d204e6d3ddc61a88bc35dd9)
* *See also UPB changes below, which may affect Ruby C-Extension.*

UPB (Python/PHP/Ruby C-Extension)
* Ruby implement memsize functions for native types (10291) (https://github.com/protocolbuffers/protobuf/commit/4902fc08c82d79fe55f9e8626697780b1f6e6c1a)
* Increased the size of the error message buffer by 4x, to 511 bytes. (15728) (https://github.com/protocolbuffers/protobuf/commit/ab6bcba754c7c5d57d7b627a83614b77b64a7cf9)
* Wrap C++ headers in `ifdef __cplusplus`. (https://github.com/protocolbuffers/protobuf/commit/fc2d9da9c06d7469aabba5e49037950e1d9323c9)
* Add kUpb_DecodeOption_AlwaysValidateUtf8 decode option, to force UTF-8 validation of proto2 strings. (https://github.com/protocolbuffers/protobuf/commit/d4dfb9c4a67e24afa0465735a84a381d0833211d)
* Fixed non-conformance in upb JSON enum decoding when ignoring unknown enum values. (https://github.com/protocolbuffers/protobuf/commit/c16ac66e8581b55471eff9860b02e3d32cae7a79)
* Fix upb's json decoder ignoring trailing characters after a successfully parsed object. (https://github.com/protocolbuffers/protobuf/commit/fa15c2160eaeb8d11ed71ba956da0c27d268ec6d)
* Fix upb_MiniTable_GetOneof(miniTable, field) to work correctly if `field` is the very first field in the proto. (https://github.com/protocolbuffers/protobuf/commit/e6ea44c9119b0f5976ea7b335395753833fc382d)
* Enabled editions support for upb generated code. (https://github.com/protocolbuffers/protobuf/commit/cf3a6f5868222d31021e3835e5e7890a847f3d01)
* Upb: stop generating hazzers for repeated fields (https://github.com/protocolbuffers/protobuf/commit/fa62c920716804a576ce388e6894fa15209df41a)

Other
* Add back error message unconditionally (https://github.com/protocolbuffers/protobuf/commit/64ad139c83aa54028d46f815850b58c542c5e26d)
* Actually fail if staleness fail (https://github.com/protocolbuffers/protobuf/commit/108bec33cda5b8ce080ff88854bf15866f2fca68)
* Disabled macOS 8.2, to match main. (https://github.com/protocolbuffers/protobuf/commit/9dfa2b6d0a452abb85abaaf949400c965f8f3b0c)
* Add PrivacyInfo.xcprivacy (15557) (15661) (https://github.com/protocolbuffers/protobuf/commit/5a5ec6ced8de00306e5ab9773874b5192166811f)
* Extend Proto2 JSON test cases to cover more of the preexisting Proto3 JSON cases. (https://github.com/protocolbuffers/protobuf/commit/42ecd61b3e15430bb393b467bb39520025efdc63)
* Include JSON output tests with Proto2 messages in the conformance test suite. (https://github.com/protocolbuffers/protobuf/commit/255f95e5b19c142ece319cc35c1b3808ec0e259f)
* Make the utf8_range implementation just in C (https://github.com/protocolbuffers/protobuf/commit/9c7d2b9d83e0ad4e8ffeb8535d8c0a31a0a6a0b8)
* Open-source editions Bazel rules for embedding defaults. (https://github.com/protocolbuffers/protobuf/commit/898d8fa1fd6ff07149b283b3bbff00a6a3d8c52b)
* Enable conformance tests over editions protos (https://github.com/protocolbuffers/protobuf/commit/a2ba8bc78e49b8b9053654030f5254fc38a7da93)
* Move utf8_range into the protobuf repo (https://github.com/protocolbuffers/protobuf/commit/5ca84008fcc400276124b14a08a8c32e9b37b2bd)

26.0rc3

Announcements
* **This version includes breaking changes to Ruby.**
* Moved ObjectCache into an internal module. (https://github.com/protocolbuffers/protobuf/commit/9087337e5103d058887c691913b08182ea8da899)
* [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes.

C++
* Remove rust proto libraries from the editions/BUILD file. (https://github.com/protocolbuffers/protobuf/commit/1f9d9fbe14b78857adab835e8d0dc9c703088078)
* Fix CMake regex escaping. (https://github.com/protocolbuffers/protobuf/commit/3ad69cf8b07ebcd54e76ee5360586a41b4f9d627)
* Escape _from_dir in install.cmake for regex special characters (e.g. c++) before REGEX REPLACE. (https://github.com/protocolbuffers/protobuf/commit/f740f528fa08f9d126650d92472a921e53a95a73)
* Tweak BUILD setup to make the layering check change less disruptive (15838) (https://github.com/protocolbuffers/protobuf/commit/52aa1506e9b0183bf1dbb1506967a152ffba8721)
* Add missing alias targets for C++ util libraries (15783) (https://github.com/protocolbuffers/protobuf/commit/62e7a56f50d88fdd0ebcb0430103120d60bd9863)

Rust
* Tweak BUILD setup to make the layering check change less disruptive (15838) (https://github.com/protocolbuffers/protobuf/commit/52aa1506e9b0183bf1dbb1506967a152ffba8721)

PHP

PHP C-Extension
* Updated amalgamations for PHP and Ruby. (https://github.com/protocolbuffers/protobuf/commit/c773dc9f640b12ade7de2ce89dc6bc712071ecf9)
* *See also UPB changes below, which may affect PHP C-Extension.*

Ruby
* Ruby implement memsize functions for native types (10291) (https://github.com/protocolbuffers/protobuf/commit/4902fc08c82d79fe55f9e8626697780b1f6e6c1a)
* Moved ObjectCache into an internal module. (https://github.com/protocolbuffers/protobuf/commit/9087337e5103d058887c691913b08182ea8da899)

Ruby C-Extension
* Updated amalgamations for PHP and Ruby. (https://github.com/protocolbuffers/protobuf/commit/c773dc9f640b12ade7de2ce89dc6bc712071ecf9)
* Ruby implement memsize functions for native types (10291) (https://github.com/protocolbuffers/protobuf/commit/4902fc08c82d79fe55f9e8626697780b1f6e6c1a)
* Moved ObjectCache into an internal module. (https://github.com/protocolbuffers/protobuf/commit/9087337e5103d058887c691913b08182ea8da899)
* *See also UPB changes below, which may affect Ruby C-Extension.*

UPB (Python/PHP/Ruby C-Extension)
* Ruby implement memsize functions for native types (10291) (https://github.com/protocolbuffers/protobuf/commit/4902fc08c82d79fe55f9e8626697780b1f6e6c1a)

Other
* Disabled macOS 8.2, to match main. (https://github.com/protocolbuffers/protobuf/commit/9dfa2b6d0a452abb85abaaf949400c965f8f3b0c)

26.0rc2

Announcements
* **This version includes breaking changes to: C++, Java, PHP, Python.**
* [PHP] Remove deprecated legacy class aliases. (15709) (https://github.com/protocolbuffers/protobuf/commit/096e127d02ca4f49220f46a42feacf0b1e1bb18f)
* [Java] Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
* [Python] Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
* [Python] Removed obsolete/duplicate `setup.py` from Python. (15708) (https://github.com/protocolbuffers/protobuf/commit/5722aeffcad72e9a335a3ec7985858dfa31477be)
* [C++] Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
* [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes.

C++
* Breaking change: Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
* Rename the 'includingDefaultValueWithoutPresenceFields' and 'always_print_without_presence_fields' to 'alwaysPrintFieldsWithNoPresence' in the Cpp, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/fc41e78d7a5ead031f23ba2e1dcf35fdf941751a)
* Add new 'always_print_without_presence_fields' option to the C++ JSON serializer. (https://github.com/protocolbuffers/protobuf/commit/1f3bf1d31ed4b45ff1ac463941784b9dcba15bc8)
* Remove use of mach_absolute_time (15554) (15662) (https://github.com/protocolbuffers/protobuf/commit/8b0f6fdcca7c0344358d415d12548196032e5279)
* Check ctype() in DescriptorBuilder for edition 2023 and beyond. (https://github.com/protocolbuffers/protobuf/commit/0090f195f007cd48f7040746983a7a0905d914d1)
* Fail building descriptors if `ctype` is used for fields other than string or bytes. (https://github.com/protocolbuffers/protobuf/commit/624d65da6aa8bb28421310ba1ae53183fd7066bb)
* [CPP] Add the privacy manifest to the C++ CocoaPod. (15664) (https://github.com/protocolbuffers/protobuf/commit/e7888a1068ddcfd0c91fef4dec76c8cea2befe9a)

Java
* Breaking change: Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
* Rename the 'includingDefaultValueWithoutPresenceFields' and 'always_print_without_presence_fields' to 'alwaysPrintFieldsWithNoPresence' in the Cpp, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/fc41e78d7a5ead031f23ba2e1dcf35fdf941751a)
* Add a new 'includingDefaultValueWithoutPresenceFields' option to the Java parser which is intended to replace the current 'includingDefaultValueFields'. (https://github.com/protocolbuffers/protobuf/commit/043191b84d6061ed923d1c227ef38030f18fe619)
* Force descriptor initialization of dependencies *before* internalUpdateFileDescriptor(). (15718) (https://github.com/protocolbuffers/protobuf/commit/4dec1a7d410c9380fb0bbb177666764af4bddda2)
* Correctly set maven-compiler-plugin to >= Java 1.8 per our minimum Java version (15707) (https://github.com/protocolbuffers/protobuf/commit/6028cdba533994ee23cc7cf0247e46d561ad379d)
* Update internalUpdateFileDescriptor() to synchronize setProto() and resolveAllFeatures() to avoid data races. (15659) (https://github.com/protocolbuffers/protobuf/commit/225b08088c54f8c89df284ac538b266109cec4c4)

Objective-C
* [ObjC] Use a local to avoid warnings in 32bit builds. (15665) (https://github.com/protocolbuffers/protobuf/commit/394aec87f47f449673c7b32246338b68ac2215fa)
* [ObjC] Add the privacy manifest to the ObjC CocoaPod. (15663) (https://github.com/protocolbuffers/protobuf/commit/935fcb7c6d8c9932081f358c2c2561e9f71e312a)

Python
* Adhere to PEP 8 (15127) (15729) (https://github.com/protocolbuffers/protobuf/commit/3b92f4fe38ec98f081a45dc4a6e7583ecbfa4aaf)
* Breaking change: Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
* Rename the 'includingDefaultValueWithoutPresenceFields' and 'always_print_without_presence_fields' to 'alwaysPrintFieldsWithNoPresence' in the Cpp, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/fc41e78d7a5ead031f23ba2e1dcf35fdf941751a)
* Add new including_default_value_without_presence_fields to Python JSON serializer. (https://github.com/protocolbuffers/protobuf/commit/c530216544611bad1d5a4be48412c81a5a41d9a7)
* Breaking change: Removed obsolete/duplicate `setup.py` from Python. (15708) (https://github.com/protocolbuffers/protobuf/commit/5722aeffcad72e9a335a3ec7985858dfa31477be)

PHP
* Don't break the trace (11311) (15727) (https://github.com/protocolbuffers/protobuf/commit/3e9902408fecc9a05028d864ee62439360736e94)
* Fix inconsistent timestamp json encode/decode (12396) (15726) (https://github.com/protocolbuffers/protobuf/commit/e99f27ec0691aa3a277cb34125600498617216c7)
* Breaking change: Remove deprecated legacy class aliases. (15709) (https://github.com/protocolbuffers/protobuf/commit/096e127d02ca4f49220f46a42feacf0b1e1bb18f)

Ruby
* Increased the size of the error message buffer by 4x, to 511 bytes. (15728) (https://github.com/protocolbuffers/protobuf/commit/ab6bcba754c7c5d57d7b627a83614b77b64a7cf9)
* Move the RubyMessage.java JSON "include defaults" to use alwaysPrintFieldsWithNoPresence. (https://github.com/protocolbuffers/protobuf/commit/b5beba3aa15f76967c00c3b2c90b58abd51123bb)

UPB (Python/PHP/Ruby C-Extension)
* Increased the size of the error message buffer by 4x, to 511 bytes. (15728) (https://github.com/protocolbuffers/protobuf/commit/ab6bcba754c7c5d57d7b627a83614b77b64a7cf9)

Other
* Add PrivacyInfo.xcprivacy (15557) (15661) (https://github.com/protocolbuffers/protobuf/commit/5a5ec6ced8de00306e5ab9773874b5192166811f)

26.0rc1

Announcements
* **This version includes breaking changes to: C++, Java, PHP, Python, Ruby.**
* [C++] Make protobuf comply with the C++ layering check (https://github.com/protocolbuffers/protobuf/commit/a7b0421c78412baa48704d727601a17ac0f451d1)
* [C++] Remove const GetArena method on RepeatedPtrField (https://github.com/protocolbuffers/protobuf/commit/748ab1608a33dd3d28070d6df54c8956aa893985)
* [C++] Disallow incorrect ctype usage (https://github.com/protocolbuffers/protobuf/commit/755b690a7c31d92103343f20ba32d752495e60a3)
* [C++] Remove deprecated std::string error collector overrides (https://github.com/protocolbuffers/protobuf/commit/543fbcdbd9496de9d93a6eb4645640cb47a5514b)
* [C++] Promote ExtensionRange to a proper class (https://github.com/protocolbuffers/protobuf/commit/5b12bc858f1f0e02477ac3e3e3fea5bc88f1bdc3)
* [C++] Remove deprecated clear APIs on repeated fields (https://github.com/protocolbuffers/protobuf/commit/229906f3091742e05e51445a66164025b0244409)
* [C++] Remove C++ legacy syntax descriptor APIs (https://github.com/protocolbuffers/protobuf/commit/cf2d6965dcb6e15490232041da8b7b6c8ec669eb)
* [C++] Remove deprecated syntax APIs (https://github.com/protocolbuffers/protobuf/commit/715b543e0416006ae17dfd409fe41a070e3cc49c)
* [C++] Remove deprecated SupportsUnknownEnumValues method (https://github.com/protocolbuffers/protobuf/commit/0a6a51655f3f6af554766d88b6d717e31af34b01)
* [Java] Remove unused helper methods for creating new mutable arraylists. (https://github.com/protocolbuffers/protobuf/commit/787447430fc9a69c071393e85a380b664d261ab4)
* [Java] Use Editions features in Java full runtimes. (https://github.com/protocolbuffers/protobuf/commit/65c65c2d04b293225db150029d005056a9f078b8)
* [Java] Stop generating the "newInstance" method. This is not used anymore. (https://github.com/protocolbuffers/protobuf/commit/c0d08bdcade9d44698015b85c9c23343ca1319b7)
* [Java] Remove unused overload of AbstractMessageLite.addAll that worked on a Collection instead of a List. (https://github.com/protocolbuffers/protobuf/commit/3b9bd6db71d20832980e579e0b9b03eb39e96a1f)
* [Java] Remove obsolete runtime internalBuildGeneratedFileFrom which was for backwards compatibility with old gencode. (https://github.com/protocolbuffers/protobuf/commit/9310d2e817a987878b03f8b5215fdbfea766ad23)
* [Java] Remove unnecessary overloads of methods: (https://github.com/protocolbuffers/protobuf/commit/94a2a448518403341b8aa71335ab1123fbdcccd8)
* [Java] Remove unnecessary generated overrides for GeneratedMessage.Builder methods: (https://github.com/protocolbuffers/protobuf/commit/7bff169d32710b143951ec6ce2c4ea9a56e2ad24)
* [Java] The base class for generated messages will be GeneratedMessage, not GeneratedMessageV3.
(https://github.com/protocolbuffers/protobuf/commit/5df0387224e8e3b7c04f48c6f25a8ec1fc957a10)
* [Java] Remove deprecated runtime methods for compatibility with old v2.x.x gencode. (https://github.com/protocolbuffers/protobuf/commit/e555bd23d077216ea40006c45eeaaa5aa385d921)
* [Java] Remove deprecated TextFormat print methods. These should be replaced by corresponding TextFormat.printer() methods. (https://github.com/protocolbuffers/protobuf/commit/dfb8a4c3f75910d37095a990706c0ae2c2e26b0f)
* [Java] Lock down visibility for descriptor syntax APIs. (https://github.com/protocolbuffers/protobuf/commit/1aeacd4f4eb4e0aa05d6336e2988a565e475e9a0)
* [Java] Make deprecated Java gencode PARSER variable private. (https://github.com/protocolbuffers/protobuf/commit/b4858b255bcf24d05789ce23c297e33524dd37fe)
* [PHP] Validate UTF-8 in string setters, [as previously announced](https://protobuf.dev/news/2023-12-27/#php-breaking-changes). (https://github.com/protocolbuffers/protobuf/commit/d14dbbc838ad0439c6968f46ac92204557aa31a1)
* [PHP] Remove support for PHP generic services (https://github.com/protocolbuffers/protobuf/commit/40ad3fac603ba3c96e52a1266cd785a7adb8e3e4)
* [Python] Made text_format output default to UTF-8. (https://github.com/protocolbuffers/protobuf/commit/bf00034493381f6ae2b49f04e101b3251bb099c9)
* [Python] Remove deprecated syntax accessor. (https://github.com/protocolbuffers/protobuf/commit/fd40c87befa92c1b944ae5fbd42bafe41003ad4e)
* [Python] Remove RegisterExtension in message class (https://github.com/protocolbuffers/protobuf/commit/4ebba684c791416a9131dd01d4c5175a2beb3566)
* [Python] Reject extend repeated field with none iterable (Raise TypeError) (https://github.com/protocolbuffers/protobuf/commit/1658213ba84a641531948aa9cdc3b53bebf20190)
* [Python] Remove Deprecated APIs that add non top descriptor. (https://github.com/protocolbuffers/protobuf/commit/c51f1110224910015ed90d7d6fb27ff24243baa8)
* [Python] check if Timestamp is valid. (https://github.com/protocolbuffers/protobuf/commit/4f77929203cbf33ae3a710f7370794e36912acbc)
* [Python] Remove msg.UnknownFields() support in pure python and cpp extension. (https://github.com/protocolbuffers/protobuf/commit/0eac77c2c6389bd7f3fb21fa43ed13108ab0600f)
* [Ruby] Removed `syntax` and added `has_presence?`/`is_packed?`. (https://github.com/protocolbuffers/protobuf/commit/dbd4dcede084f7c301bfdf229e1e51dfd3e1179f)
* [Ruby] Fixed json_encode/json_decode to use the message's pool. (https://github.com/protocolbuffers/protobuf/commit/a8b8ea02b74095042a6c4a6acb50498a1a2c4570)
* [Ruby] Freeze is now recursive, affecting all sub-messages, maps, and repeated fields. (https://github.com/protocolbuffers/protobuf/commit/31313b16522b36394d460055f6a49000ae939153)
* [Ruby] Fixed inconsistencies in `Messageto_h`, [as previously announced](https://protobuf.dev/news/2023-12-27/). (https://github.com/protocolbuffers/protobuf/commit/fd699383f44d6847fa6ddc3e0c9c94e77e3cf8dc)
* [Ruby] Dropped support for Ruby DSL, [as previously announced](https://engdoc.corp.google.com/eng/doc/devguide/proto/news/2023-12-27.md#ruby-breaking-changes). (https://github.com/protocolbuffers/protobuf/commit/5cfc9e775d76acb37e5b554e53dff336a89d000f)
* [Ruby] Lock down visibility for descriptor syntax APIs. (https://github.com/protocolbuffers/protobuf/commit/1aeacd4f4eb4e0aa05d6336e2988a565e475e9a0)
* [Ruby] Fixed json_encode/json_decode to use the message's pool. (https://github.com/protocolbuffers/protobuf/commit/a8b8ea02b74095042a6c4a6acb50498a1a2c4570)
* [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes.

Compiler
* Fix getting env variables on windows (15518) (https://github.com/protocolbuffers/protobuf/commit/71b0b4e0a9f2d9080f167c03dcafbd8b1823fb76)
* Proper fix utf8 command line arguments (14253) (https://github.com/protocolbuffers/protobuf/commit/1eff9d74519c7d21592dddc3c3665993bb0f117f)
* Allocate an editions FeatureSet extension for https://github.com/bufbuild/protobuf-es (https://github.com/protocolbuffers/protobuf/commit/fedd34df47ad442e1cc41b1a828955f384a0c9e2)
* Make rules_ruby a dev-only dependency. (https://github.com/protocolbuffers/protobuf/commit/571b727cb66ad51f89fbef565d3a6c123366a1f5)

C++
* Correct type_resolver_util to set syntax=proto3 instead of syntax=proto2 on proto3 files. (https://github.com/protocolbuffers/protobuf/commit/040dde7e37ccb36cd4243292f12116ef242eb3f1)
* Remove edition getter from C++ descriptor APIs (https://github.com/protocolbuffers/protobuf/commit/93b219f4e84d83415ad7b77f5bc0ae2df5490fea)
* Breaking change: Remove const GetArena method on RepeatedPtrField (https://github.com/protocolbuffers/protobuf/commit/748ab1608a33dd3d28070d6df54c8956aa893985)
* Breaking change: Disallow incorrect ctype usage (https://github.com/protocolbuffers/protobuf/commit/755b690a7c31d92103343f20ba32d752495e60a3)
* Breaking change: Remove deprecated std::string error collector overrides (https://github.com/protocolbuffers/protobuf/commit/543fbcdbd9496de9d93a6eb4645640cb47a5514b)
* Breaking change: Promote ExtensionRange to a proper class (https://github.com/protocolbuffers/protobuf/commit/5b12bc858f1f0e02477ac3e3e3fea5bc88f1bdc3)
* Breaking change: Remove deprecated clear APIs on repeated fields (https://github.com/protocolbuffers/protobuf/commit/229906f3091742e05e51445a66164025b0244409)
* Breaking change: Remove C++ legacy syntax descriptor APIs (https://github.com/protocolbuffers/protobuf/commit/cf2d6965dcb6e15490232041da8b7b6c8ec669eb)
* Fixed UTF-8 TextFormat output to protect against invalid UTF-8 in string fields. (https://github.com/protocolbuffers/protobuf/commit/1ac8c04604fe8ba119cdcdaeb1e22ae962de40e3)
* Breaking change: Remove deprecated syntax APIs (https://github.com/protocolbuffers/protobuf/commit/715b543e0416006ae17dfd409fe41a070e3cc49c)
* Fix DurationToMilliseconds mult overflow (https://github.com/protocolbuffers/protobuf/commit/17b8dd6476cf663517393fd866e888af2494bdb2)
* Breaking change: Remove deprecated SupportsUnknownEnumValues method (https://github.com/protocolbuffers/protobuf/commit/0a6a51655f3f6af554766d88b6d717e31af34b01)
* Have Arena::Create support arena constructible types (https://github.com/protocolbuffers/protobuf/commit/578e07e9bd19b4ae959c57bbe4c1524d5642b58e)
* Enforce stricter version checks for Protobuf C++ by removing the notion of "minimal version of protoc/headers"; exact version match is required. (https://github.com/protocolbuffers/protobuf/commit/6eed7a2f53bf29e615e6c34ecb7c98ea8eab4d1c)
* Compare explicit zeroes from prototext in partially. (https://github.com/protocolbuffers/protobuf/commit/8c2416311f7b2c5410e620197baacf9d82b86ebd)
* Move the declarations in SerialArena to more closely match the style guide. (https://github.com/protocolbuffers/protobuf/commit/349122f777a3d6029e9a189729720b0842072a71)

Java
* Drop Protobuf support for Android KitKat per EOL and add existing minimum Java 1.8 in Maven pom.xmls (https://github.com/protocolbuffers/protobuf/commit/303239d74d07daf49ecdba6e23e41c8fe5a9b41e)
* Breaking change: Remove unused helper methods for creating new mutable arraylists. (https://github.com/protocolbuffers/protobuf/commit/787447430fc9a69c071393e85a380b664d261ab4)
* Breaking change: Use Editions features in Java full runtimes. (https://github.com/protocolbuffers/protobuf/commit/65c65c2d04b293225db150029d005056a9f078b8)
* Breaking change: Stop generating the "newInstance" method. This is not used anymore. (https://github.com/protocolbuffers/protobuf/commit/c0d08bdcade9d44698015b85c9c23343ca1319b7)
* Breaking change: Remove unused overload of AbstractMessageLite.addAll that worked on a Collection instead of a List. (https://github.com/protocolbuffers/protobuf/commit/3b9bd6db71d20832980e579e0b9b03eb39e96a1f)
* Breaking change: Remove obsolete runtime internalBuildGeneratedFileFrom which was for backwards compatibility with old gencode. (https://github.com/protocolbuffers/protobuf/commit/9310d2e817a987878b03f8b5215fdbfea766ad23)
* Breaking change: Remove unnecessary overloads of methods: (https://github.com/protocolbuffers/protobuf/commit/94a2a448518403341b8aa71335ab1123fbdcccd8)
* Breaking change: Remove unnecessary generated overrides for GeneratedMessage.Builder methods: (https://github.com/protocolbuffers/protobuf/commit/7bff169d32710b143951ec6ce2c4ea9a56e2ad24)
* Breaking change: The base class for generated messages will be GeneratedMessage, not GeneratedMessageV3.
(https://github.com/protocolbuffers/protobuf/commit/5df0387224e8e3b7c04f48c6f25a8ec1fc957a10)
* Breaking change: Remove deprecated runtime methods for compatibility with old v2.x.x gencode. (https://github.com/protocolbuffers/protobuf/commit/e555bd23d077216ea40006c45eeaaa5aa385d921)
* Breaking change: Remove deprecated TextFormat print methods. These should be replaced by corresponding TextFormat.printer() methods. (https://github.com/protocolbuffers/protobuf/commit/dfb8a4c3f75910d37095a990706c0ae2c2e26b0f)
* Support pretty printing proto2 Extensions inside of proto3 Anys in TextFormat.Printer. (https://github.com/protocolbuffers/protobuf/commit/c8e01607aec4c09f510aa7e0d5df6a204e74189e)
* Breaking change: Lock down visibility for descriptor syntax APIs. (https://github.com/protocolbuffers/protobuf/commit/1aeacd4f4eb4e0aa05d6336e2988a565e475e9a0)
* Enable Protobuf version validations in Protobuf Java Full. (https://github.com/protocolbuffers/protobuf/commit/a2f92689dac8a7dbea584919c7de52d6a28d66d1)
* Breaking change: Make deprecated Java gencode PARSER variable private. (https://github.com/protocolbuffers/protobuf/commit/b4858b255bcf24d05789ce23c297e33524dd37fe)
* Add Automatic-Module-Name (14562) (https://github.com/protocolbuffers/protobuf/commit/d580fde63aa8ea5c6f4619396e68aaf017fc9d61)
* Use Editions features in Java, Kotlin, and Java Lite code generators. (https://github.com/protocolbuffers/protobuf/commit/90e1b49f0f838a3bedb0d485a7f323e468730eb7)

Kotlin
* Breaking change: Use Editions features in Java full runtimes. (https://github.com/protocolbuffers/protobuf/commit/65c65c2d04b293225db150029d005056a9f078b8)
* Breaking change: The base class for generated messages will be GeneratedMessage, not GeneratedMessageV3.
(https://github.com/protocolbuffers/protobuf/commit/5df0387224e8e3b7c04f48c6f25a8ec1fc957a10)
* Use Editions features in Java, Kotlin, and Java Lite code generators. (https://github.com/protocolbuffers/protobuf/commit/90e1b49f0f838a3bedb0d485a7f323e468730eb7)

Objective-C
* Improve handing of the WKT ObjC Category additions. (https://github.com/protocolbuffers/protobuf/commit/b146d14e31e5488978517396406f9afe2664f0b0)
* Add a `unpack` helper for GPBAny with extension support. (https://github.com/protocolbuffers/protobuf/commit/29fca8a64b62491fb0a2ce61878e70eda88dde98)

Python
* Fixed a bug when deep copying a map field with a closed enum value. (https://github.com/protocolbuffers/protobuf/commit/ca5ca62fa60a52bae31f3828e5135cbf034237ae)
* Breaking change: Made text_format output default to UTF-8. (https://github.com/protocolbuffers/protobuf/commit/bf00034493381f6ae2b49f04e101b3251bb099c9)
* Fixed a SEGV when deep copying a non-reified sub-message. (https://github.com/protocolbuffers/protobuf/commit/b9e4894462fab2e35da987a44fbe464b4c1d0140)
* Make `str(msg)` in Python print raw UTF-8 strings. Only invalid UTF-8 is escaped. (https://github.com/protocolbuffers/protobuf/commit/f2a91b33e1d7ccae295a966c932551096881c16a)
* Breaking Change: Remove RegisterExtension in message class (https://github.com/protocolbuffers/protobuf/commit/4ebba684c791416a9131dd01d4c5175a2beb3566)
* Breaking Change: Reject extend repeated field with none iterable (Raise TypeError) (https://github.com/protocolbuffers/protobuf/commit/1658213ba84a641531948aa9cdc3b53bebf20190)
* Breaking Change: Remove Deprecated APIs that add non top descriptor. (https://github.com/protocolbuffers/protobuf/commit/c51f1110224910015ed90d7d6fb27ff24243baa8)
* Breaking Change: Check if Timestamp is valid. (https://github.com/protocolbuffers/protobuf/commit/4f77929203cbf33ae3a710f7370794e36912acbc)
* [Python/upb] Fixed SEGV when attempting to delete a message attribute (https://github.com/protocolbuffers/protobuf/commit/de52944f389c85943f35049cc9cdf9ea0a3ca380)
* Breaking Change: Remove msg.UnknownFields() support in pure python and cpp extension. (https://github.com/protocolbuffers/protobuf/commit/0eac77c2c6389bd7f3fb21fa43ed13108ab0600f)
* Breaking change: Remove deprecated syntax accessor. (https://github.com/protocolbuffers/protobuf/commit/fd40c87befa92c1b944ae5fbd42bafe41003ad4e)
* Fixed a bug where FileDescriptor maps like `message_types_by_name` could return descriptors from other files. (https://github.com/protocolbuffers/protobuf/commit/c05b320d9c18173bfce36c4bef22f9953d340ff9)
* Mark the python generator for editions support. (https://github.com/protocolbuffers/protobuf/commit/b01bd1ba17e85a3922e475f89ccc2fb89ba153a3)
* Add support and partial CI coverage for Python 3.12 (https://github.com/protocolbuffers/protobuf/commit/24fef03259d65987e5df14b06952b6e6bdac88d0)
* Implement Editions in Pure Python. (https://github.com/protocolbuffers/protobuf/commit/15eccf3ec4636cab20a16b7570d3967d79ecfa95)
* Properly untrack Python GC objects during deallocation. (https://github.com/protocolbuffers/protobuf/commit/e32d0948e7b2799037be0e4364816249119acc3f)
* Raise warnings for python syntax usages (https://github.com/protocolbuffers/protobuf/commit/c508a40f40c0b4f1e562ef917cd5606d66d9601c)
* Fixed Python memory leak in map lookup. (https://github.com/protocolbuffers/protobuf/commit/b0eeb356b84fb7e8773c9a0dd76b354ae2e3f218)
* Fix handling of Unicode escapes in string data in textproto files. (https://github.com/protocolbuffers/protobuf/commit/62a435c1ab81ea65850f1b1fb58f7b3c6f498cef)

PHP
* Raise minimum PHP version to 8.1, due to PHP 8.0 EOL per https://cloud.google.com/php/getting-started/supported-php-versions (https://github.com/protocolbuffers/protobuf/commit/3c8a3d27f7c035e977e2eb5226e4154f129a573b)
* Breaking change: Validate UTF-8 in string setters, [as previously announced](https://protobuf.dev/news/2023-12-27/#php-breaking-changes). (https://github.com/protocolbuffers/protobuf/commit/d14dbbc838ad0439c6968f46ac92204557aa31a1)
* Breaking change: Remove support for PHP generic services (https://github.com/protocolbuffers/protobuf/commit/40ad3fac603ba3c96e52a1266cd785a7adb8e3e4)
* Expand PHP generator to support overlapping subset of proto2. (https://github.com/protocolbuffers/protobuf/commit/b603fb69bf0c1aef24dfe5470c9d4ae99b9031b1)
* Feat: better debug info for PHP messages and repeated fields (12718) (https://github.com/protocolbuffers/protobuf/commit/59d5006d6073602675c9d9f418353a566a085658)

PHP C-Extension
* Breaking change: Validate UTF-8 in string setters, [as previously announced](https://protobuf.dev/news/2023-12-27/#php-breaking-changes). (https://github.com/protocolbuffers/protobuf/commit/d14dbbc838ad0439c6968f46ac92204557aa31a1)
* Optimized binary/JSON parsing to no longer copy input data into a temp buffer. (https://github.com/protocolbuffers/protobuf/commit/588d5aa0dbee01c6caf51add7c7ed74edbe0c794)
* *See also UPB changes below, which may affect PHP C-Extension.*

Ruby
* Breaking change: Removed `syntax` and added `has_presence?`/`is_packed?`. (https://github.com/protocolbuffers/protobuf/commit/dbd4dcede084f7c301bfdf229e1e51dfd3e1179f)
* Breaking change: Fixed json_encode/json_decode to use the message's pool. (https://github.com/protocolbuffers/protobuf/commit/a8b8ea02b74095042a6c4a6acb50498a1a2c4570)
* Breaking change: Freeze is now recursive, affecting all sub-messages, maps, and repeated fields. (https://github.com/protocolbuffers/protobuf/commit/31313b16522b36394d460055f6a49000ae939153)
* Breaking change: Fixed inconsistencies in `Messageto_h`, [as previously announced](https://protobuf.dev/news/2023-12-27/). (https://github.com/protocolbuffers/protobuf/commit/fd699383f44d6847fa6ddc3e0c9c94e77e3cf8dc)
* Breaking change: Dropped support for Ruby DSL, [as previously announced](https://engdoc.corp.google.com/eng/doc/devguide/proto/news/2023-12-27.md#ruby-breaking-changes). (https://github.com/protocolbuffers/protobuf/commit/5cfc9e775d76acb37e5b554e53dff336a89d000f)
* In Ruby repeated fields, each_index actually iterates over the index (11767) (https://github.com/protocolbuffers/protobuf/commit/f869cfa479c293ecd55c2f8ccbf981cd3bb41ecf)
* Breaking change: Lock down visibility for descriptor syntax APIs. (https://github.com/protocolbuffers/protobuf/commit/1aeacd4f4eb4e0aa05d6336e2988a565e475e9a0)
* Make rules_ruby a dev-only dependency. (https://github.com/protocolbuffers/protobuf/commit/571b727cb66ad51f89fbef565d3a6c123366a1f5)
* Add support for extensions in CRuby, JRuby, and FFI Ruby (14703) (https://github.com/protocolbuffers/protobuf/commit/42f8b7782ed539d56d0f0e13da4e85603553e828)
* Add support for options in CRuby, JRuby and FFI (14594) (https://github.com/protocolbuffers/protobuf/commit/ae1f2b7e1b329aba1d204e6d3ddc61a88bc35dd9)

Ruby C-Extension
* Breaking change: Removed `syntax` and added `has_presence?`/`is_packed?`. (https://github.com/protocolbuffers/protobuf/commit/dbd4dcede084f7c301bfdf229e1e51dfd3e1179f)
* Breaking change: Fixed json_encode/json_decode to use the message's pool. (https://github.com/protocolbuffers/protobuf/commit/a8b8ea02b74095042a6c4a6acb50498a1a2c4570)
* Breaking change: Freeze is now recursive, affecting all sub-messages, maps, and repeated fields. (https://github.com/protocolbuffers/protobuf/commit/31313b16522b36394d460055f6a49000ae939153)
* Breaking change: Fixed inconsistencies in `Messageto_h`, [as previously announced](https://protobuf.dev/news/2023-12-27/). (https://github.com/protocolbuffers/protobuf/commit/fd699383f44d6847fa6ddc3e0c9c94e77e3cf8dc)
* Upb: fix Ruby bug which allowed map.delete(key) on a frozen map (https://github.com/protocolbuffers/protobuf/commit/df57e5474bf3ce211329e55993cb991a7ce1c5e0)
* Add support for extensions in CRuby, JRuby, and FFI Ruby (14703) (https://github.com/protocolbuffers/protobuf/commit/42f8b7782ed539d56d0f0e13da4e85603553e828)
* Add support for options in CRuby, JRuby and FFI (14594) (https://github.com/protocolbuffers/protobuf/commit/ae1f2b7e1b329aba1d204e6d3ddc61a88bc35dd9)
* *See also UPB changes below, which may affect Ruby C-Extension.*

UPB (Python/PHP/Ruby C-Extension)
* Wrap C++ headers in `ifdef __cplusplus`. (https://github.com/protocolbuffers/protobuf/commit/fc2d9da9c06d7469aabba5e49037950e1d9323c9)
* Add kUpb_DecodeOption_AlwaysValidateUtf8 decode option, to force UTF-8 validation of proto2 strings. (https://github.com/protocolbuffers/protobuf/commit/d4dfb9c4a67e24afa0465735a84a381d0833211d)
* Fixed non-conformance in upb JSON enum decoding when ignoring unknown enum values. (https://github.com/protocolbuffers/protobuf/commit/c16ac66e8581b55471eff9860b02e3d32cae7a79)
* Fix upb's json decoder ignoring trailing characters after a successfully parsed object. (https://github.com/protocolbuffers/protobuf/commit/fa15c2160eaeb8d11ed71ba956da0c27d268ec6d)
* Fix upb_MiniTable_GetOneof(miniTable, field) to work correctly if `field` is the very first field in the proto. (https://github.com/protocolbuffers/protobuf/commit/e6ea44c9119b0f5976ea7b335395753833fc382d)
* Enabled editions support for upb generated code. (https://github.com/protocolbuffers/protobuf/commit/cf3a6f5868222d31021e3835e5e7890a847f3d01)
* Upb: stop generating hazzers for repeated fields (https://github.com/protocolbuffers/protobuf/commit/fa62c920716804a576ce388e6894fa15209df41a)

Other
* Extend Proto2 JSON test cases to cover more of the preexisting Proto3 JSON cases. (https://github.com/protocolbuffers/protobuf/commit/42ecd61b3e15430bb393b467bb39520025efdc63)
* Include JSON output tests with Proto2 messages in the conformance test suite. (https://github.com/protocolbuffers/protobuf/commit/255f95e5b19c142ece319cc35c1b3808ec0e259f)
* Make the utf8_range implementation just in C (https://github.com/protocolbuffers/protobuf/commit/9c7d2b9d83e0ad4e8ffeb8535d8c0a31a0a6a0b8)
* Open-source editions Bazel rules for embedding defaults. (https://github.com/protocolbuffers/protobuf/commit/898d8fa1fd6ff07149b283b3bbff00a6a3d8c52b)
* Enable conformance tests over editions protos (https://github.com/protocolbuffers/protobuf/commit/a2ba8bc78e49b8b9053654030f5254fc38a7da93)
* Move utf8_range into the protobuf repo (https://github.com/protocolbuffers/protobuf/commit/5ca84008fcc400276124b14a08a8c32e9b37b2bd)

Page 1 of 26

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.