Protobuf

Latest version: v6.30.2

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

Scan your dependencies

Page 1 of 31

30.2

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

Compiler
* Restore generator headers in cmake install until the next breaking C++ release (20749) (https://github.com/protocolbuffers/protobuf/commit/b69f653d6ebc90d88032b8cc82d626758a74ef77)

C++
* Remove dllexport attribute on variable definition. (20833) (https://github.com/protocolbuffers/protobuf/commit/783166965aa8808ec1b74d4890088e3b0799ac08)
* Restore generator headers in cmake install until the next breaking C++ release (20749) (https://github.com/protocolbuffers/protobuf/commit/b69f653d6ebc90d88032b8cc82d626758a74ef77)
* Change how we decide which empty string implementation to use. (20708) (https://github.com/protocolbuffers/protobuf/commit/221b2a0081ebdba6cf3b7278bf65528316ba4480)

Java
* Remove dllexport attribute on variable definition. (20833) (https://github.com/protocolbuffers/protobuf/commit/783166965aa8808ec1b74d4890088e3b0799ac08)
* Add protobuf_maven artifacts to protobuf_maven_dev as well so they can still be referenced correctly using the dev namespace for dev-only targets. (20771) (https://github.com/protocolbuffers/protobuf/commit/09b5078524d60917d1fa8c635bcee52e608f2f04)
* Add volatile to featuresResolved (20766) (https://github.com/protocolbuffers/protobuf/commit/b7f06f1ed07a463a9279f7019653fe6c3e90282d)
* Restore generator headers in cmake install until the next breaking C++ release (20749) (https://github.com/protocolbuffers/protobuf/commit/b69f653d6ebc90d88032b8cc82d626758a74ef77)
* Restore custom protobuf maven namespaces to avoid polluting main maven namespace for non-dev dependencies as well. (20739) (https://github.com/protocolbuffers/protobuf/commit/f4b0a79783aa1c579bfe005908f723fdc6d68169)
* Fix Java concurrency issue in feature resolution for old <=3.25.x gencode using lazy feature resolution. (20751) (https://github.com/protocolbuffers/protobuf/commit/2dc9f35e83f4b55e58443421266b0f9a158d91dd)
* Fix lite classes in the protobuf-java Maven release to be JDK8 compatible. (20843) (https://github.com/protocolbuffers/protobuf/commit/7a4c63bac3451b8adf8dd51e9c16ed74d4cbc662)


Kotlin
* Restore custom protobuf maven namespaces to avoid polluting main maven namespace for non-dev dependencies as well. (20739) (https://github.com/protocolbuffers/protobuf/commit/f4b0a79783aa1c579bfe005908f723fdc6d68169)

Csharp
* Restore generator headers in cmake install until the next breaking C++ release (20749) (https://github.com/protocolbuffers/protobuf/commit/b69f653d6ebc90d88032b8cc82d626758a74ef77)

Objective-C
* Restore generator headers in cmake install until the next breaking C++ release (20749) (https://github.com/protocolbuffers/protobuf/commit/b69f653d6ebc90d88032b8cc82d626758a74ef77)

Python
* Restore generator headers in cmake install until the next breaking C++ release (20749) (https://github.com/protocolbuffers/protobuf/commit/b69f653d6ebc90d88032b8cc82d626758a74ef77)

Ruby
* Restore generator headers in cmake install until the next breaking C++ release (20749) (https://github.com/protocolbuffers/protobuf/commit/b69f653d6ebc90d88032b8cc82d626758a74ef77)

Other
* Restore JDK8 compatibility in Bazel for libraries with dependencies from Maven (e.g. //java/util) (20832) (https://github.com/protocolbuffers/protobuf/commit/da9cadcb975654e3d158796b642ec27ba5f4509d)

30.1

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

Bazel
* Loosen py_proto_library check to be on the import path instead of full directory (i.e. excluding external/module-name prefix). (20569) (https://github.com/protocolbuffers/protobuf/commit/3576a1f8732c4a42df90e406e07326198182b6fb)

Compiler
* Fix python codegen crash when C++ features are used. (20577) (https://github.com/protocolbuffers/protobuf/commit/250c5502fa436e82fca50937db7d28f43855b09e)

C++
* Fix python codegen crash when C++ features are used. (20577) (https://github.com/protocolbuffers/protobuf/commit/250c5502fa436e82fca50937db7d28f43855b09e)

Java
* Remove Java runtime classes from kotlin release. (20607) (https://github.com/protocolbuffers/protobuf/commit/4747628cce300d58e3bb0da4f3ee7cbfa1ac853b)

Kotlin
* Remove Java runtime classes from kotlin release. (20607) (https://github.com/protocolbuffers/protobuf/commit/4747628cce300d58e3bb0da4f3ee7cbfa1ac853b)

Python
* Fix python codegen crash when C++ features are used. (20577) (https://github.com/protocolbuffers/protobuf/commit/250c5502fa436e82fca50937db7d28f43855b09e)

Other
* Re-add `system_python` repo alias to MODULE.bazel (20662) (https://github.com/protocolbuffers/protobuf/commit/ebb5224493150126861ce2e192d7ae244bfea1df)

30.0

Announcements
* **This version includes breaking changes to: Objective-C, Python, C++.**
* [Objective-C] Remove legacy WKT headers. (https://github.com/protocolbuffers/protobuf/commit/d9caebc313256ea2f5c6922113c1f3edf14b24ad)
* [Objective-C] Remove deprecated apis. (https://github.com/protocolbuffers/protobuf/commit/2a52b900a1b71d57fc68624a989145f57abefdf1)
* [Objective-C] Remove support for older generated code. (https://github.com/protocolbuffers/protobuf/commit/cffa5902606ee3ebf23214b80251722b3654d5be)
* [Objective-C] Remove GPBUnknownFieldSet. (https://github.com/protocolbuffers/protobuf/commit/2b93422f7eea500b26d1a9aaf7d07b3120f83d39)
* [Python] Fix closed enum validation under editions (https://github.com/protocolbuffers/protobuf/commit/72b3eda2ec385863d7416f067f6cd0cefeed72bb)
* [Python] Remove deprecated GetDebugString() from protobuf python cpp extension. (https://github.com/protocolbuffers/protobuf/commit/721a45265b4e1d0f18d6775a0f1bafffdfc3088e)
* [Python] Remove deprecated reflection methods (https://github.com/protocolbuffers/protobuf/commit/292f9646797d9e23fc66ba70fbda5903f2301ff0)
* [Python] Remove deprecated GetPrototype MessageFactory.GetPrototype(), (https://github.com/protocolbuffers/protobuf/commit/c261b49a9575226efc9e5d269f6e5319a05d526e)
* [Python] Python nested message class __qualname__ now contains the outer message name. (Previous __qualname__ has the same result with __name__ for nested message that outer message name was not included) (https://github.com/protocolbuffers/protobuf/commit/0720536eca20ca2f801127869d7f1211bceb3865)
* [Python] Remove deprecated Python RPC Service Interfaces (https://github.com/protocolbuffers/protobuf/commit/5ba74b11e8d2bd5e9b22e972beb572668bf6191c)
* [Python] Python setdefault behavior change for map field. (https://github.com/protocolbuffers/protobuf/commit/81da6b999a8229942436f6c203a20633c65ebd26)
* [Python] Remove deprecated py_proto_library macro.
* [C++] Prohibit using Bazel+MSVC to build protobuf (https://github.com/protocolbuffers/protobuf/commit/117e7bbe74ac7c7faa9b6f44c1b22de366302854)
* [C++] Remove deprecated Arena::CreateMessage. (https://github.com/protocolbuffers/protobuf/commit/d83a5365d16cff4be7da7d9a34eef14b24cc8733)
* [C++] Remove CMake submodule support in favor of fetched or installed dependencies. (https://github.com/protocolbuffers/protobuf/commit/3f06ca4306a682e6ee631d8ea94b82baaafb14f0)
* [C++] Flip default behavior for handling cmake dependencies. (https://github.com/protocolbuffers/protobuf/commit/9cc685edf867acf5024a94502a3cbd7afa7a3daa)
* [C++] Add ASAN poisoning after clearing oneof messages on arena. (https://github.com/protocolbuffers/protobuf/commit/54d068e11c77ed387b97a60f435998b384e36e34)
* [C++] Upgrade return type of `type_name()` and `cpp_type_name()` from `const char*` to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/a9ad51f5b6a19eacc934bcb51db6282ec1fabb8c)
* [C++] Remove deprecated RepeatedPtrField::ClearedCount(). (https://github.com/protocolbuffers/protobuf/commit/e8e3253f63f52d314af0e317d09642b9ceb1b40e)
* [C++] Upgrade return type of several string returning functions to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/d1990d968a54176eb9f4229abe7f7c97ece50cec)
* [C++] Strip ctype from options in C++ (https://github.com/protocolbuffers/protobuf/commit/aebf8b9459f1da347a353c2fbbfe76230a457209)
* [C++] Remove `MutableRepeatedFieldRef::Reserve()` in reflection (https://github.com/protocolbuffers/protobuf/commit/913f7b0c6d3c3e9876aea913b0d83bbd7fffe22c)
* [C++] Remove deprecated JsonOptions alias. (https://github.com/protocolbuffers/protobuf/commit/e2eb0a19aa95497c8979d71031edbbab721f5f0a)
* [C++] Remove deprecated Arena::GetArena. (https://github.com/protocolbuffers/protobuf/commit/30ed452eddacace2c3270dce9645b8f1f453ae4b)
* [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes.
* [Migration Guide](https://protobuf.dev/support/migration/) includes migration instructions for breaking changes for this release.

Bazel
* Remove reference to cc_proto_aspect (https://github.com/protocolbuffers/protobuf/commit/fa02f768e3a793195e62ad70f9694106b893b0f3)
* Remove deprecated bazel/system_python.bzl alias. (https://github.com/protocolbuffers/protobuf/commit/00f108c07807e73188f0baf51ba90ad527463f84)

Compiler
* Add notices.h with information about our dependencies' licenses and add --notices flag to protoc to print the contents of that file. (https://github.com/protocolbuffers/protobuf/commit/a7df327bcdcecd09fcf7c987daa75714221c396e)
* Have the protoc CLI properly report any parser warnings. (https://github.com/protocolbuffers/protobuf/commit/cafeaa41fb3c8d67eef0de11ed60ff539fd3318f)
* Split protoc apart from libprotoc in our cmake configs. (https://github.com/protocolbuffers/protobuf/commit/b4b93b36245a88a3efa19261638f5da61a9be44f)
* Begin adding extension numbers to SourceCodeInfo and FileDescriptorSet for tooling purposes. (https://github.com/protocolbuffers/protobuf/commit/9d7236b421634afcecc24b6fd63da0ff5b506394)
* Fix various unsigned to signed comparison warnings. (17212) (https://github.com/protocolbuffers/protobuf/commit/67de0878d6dc3b411b13fec0bff9200c71a3ca07)

C++
* Fixing staleness tests (https://github.com/protocolbuffers/protobuf/commit/6abaf774bfe84cf3d359c22385354de566602458)
* Add notices.h with information about our dependencies' licenses and add --notices flag to protoc to print the contents of that file. (https://github.com/protocolbuffers/protobuf/commit/a7df327bcdcecd09fcf7c987daa75714221c396e)
* Backport: Remove if_constexpr usage for future Abseil compatibility (20488) (https://github.com/protocolbuffers/protobuf/commit/450ee76a1e06cd469e0f9bd9f8d6aa0241edcb39)
* Add tests for older gcc versions we still support (20463) (https://github.com/protocolbuffers/protobuf/commit/0778473da9f5fdec8346853b6a5c84cc21ba8e7e)
* Fix a bug in handling of implicit-presence string_view fields. (20403) (https://github.com/protocolbuffers/protobuf/commit/81196acc7e3e859a0dbb26223516462c3f6e4e40)
* Remove rules_rust dependency from MODULE.bazel for 30.x (20310) (https://github.com/protocolbuffers/protobuf/commit/b8248f687f07d78a4baedd1581843883544ae239)
* Upgrade abseil-cpp to 20250127 and use com_google_absl -> abseil-cpp and com_google_googletest -> googletest canonical BCR names. (20295) (https://github.com/protocolbuffers/protobuf/commit/df849cc9c54d43de4d9986287ef3fafb487f45e3)
* Replace `std::any` with a custom solution. (20251) (https://github.com/protocolbuffers/protobuf/commit/6250d09c426f5b42b7d9f954fc73d24c644a221e)
* Make DebugString print debug output, enable debug markers for debug output (https://github.com/protocolbuffers/protobuf/commit/9a033327c6382bdd78412ff9f60e512a19a4129a)
* Fix missing port_undef (20052) (https://github.com/protocolbuffers/protobuf/commit/064438830bff4d87bb7fcfdaa53aa2598168e524)
* Use __builtin_expect_with_probability for proto field presence checks. (https://github.com/protocolbuffers/protobuf/commit/e9584192996ba6ae9a071973c3c903b693359217)
* Enable meta-tagging for redaction purposes (https://github.com/protocolbuffers/protobuf/commit/1f487953bfafc717fecf7f7e01ca141f09b861c3)
* Breaking change: Prohibit using Bazel+MSVC to build protobuf (https://github.com/protocolbuffers/protobuf/commit/117e7bbe74ac7c7faa9b6f44c1b22de366302854)
* Breaking change: Upgrade return type of several string returning functions to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/d1990d968a54176eb9f4229abe7f7c97ece50cec)
* Print the presence probability when analysis is enabled. (https://github.com/protocolbuffers/protobuf/commit/d4ba7ff998ea865121d864bd627cb0b98948c8ea)
* Split protoc apart from libprotoc in our cmake configs. (https://github.com/protocolbuffers/protobuf/commit/b4b93b36245a88a3efa19261638f5da61a9be44f)
* Breaking change: Strip ctype from options in C++ (https://github.com/protocolbuffers/protobuf/commit/aebf8b9459f1da347a353c2fbbfe76230a457209)
* Breaking change: Remove `MutableRepeatedFieldRef::Reserve()` in reflection (https://github.com/protocolbuffers/protobuf/commit/913f7b0c6d3c3e9876aea913b0d83bbd7fffe22c)
* Remove stale references to C++14. (https://github.com/protocolbuffers/protobuf/commit/f4cc92c73de43a1455f63cb734ad161d9c03a4a8)
* Breaking change: Upgrade return type of `type_name()` and `cpp_type_name()` from `const char*` to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/a9ad51f5b6a19eacc934bcb51db6282ec1fabb8c)
* Update cmake minimum version to >=3.16. (https://github.com/protocolbuffers/protobuf/commit/21f535c978812ab2d9afcbe887fc2ad228c0d92e)
* Migrate coded output stream arguments from `const std::string&` to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/0361a59322277a50f36b913f306884f5dda7c4c9)
* Breaking change: Remove deprecated Arena::GetArena. (https://github.com/protocolbuffers/protobuf/commit/30ed452eddacace2c3270dce9645b8f1f453ae4b)
* Remove the time (or time-based) entropy being added to Map's seed. (https://github.com/protocolbuffers/protobuf/commit/a7875bb3432678f1e54e5c08c58e35d678cadbe1)
* Don't use CLOCK_UPTIME_RAW if it won't be defined (16951) (https://github.com/protocolbuffers/protobuf/commit/097dcda8f2029f3a08ef487893e79410257cf7cf)
* Fix DEPENDENCIES in protobuf_generate() to accept multiple values instead of silently dropping (https://github.com/protocolbuffers/protobuf/commit/52887e1cc726bff24b8b0dd6f2b1babf7632db8a)
* Use ABSL_PREDICT_TRUE|FALSE instead of PROTOBUF_PREDICT_TRUE|FALSE. (https://github.com/protocolbuffers/protobuf/commit/fd477301f8c4c76f61c2b9e323f77a824d733174)
* Breaking change: Flip default behavior for handling cmake dependencies. (https://github.com/protocolbuffers/protobuf/commit/9cc685edf867acf5024a94502a3cbd7afa7a3daa)
* Use [[maybe_unused]] instead of PROTOBUF_UNUSED. (https://github.com/protocolbuffers/protobuf/commit/a7dd1559ee05d2e7997d5e55bbbbf2d3d461715f)
* Use [[nodiscard]] instead of PROTOBUF_NODISCARD (https://github.com/protocolbuffers/protobuf/commit/1ceedf88ca4c6f151f08a10244005cee6c814f40)
* Breaking change: Remove deprecated JsonOptions alias. (https://github.com/protocolbuffers/protobuf/commit/e2eb0a19aa95497c8979d71031edbbab721f5f0a)
* Generate internal hasbits for singular proto3 implicit presence fields. (https://github.com/protocolbuffers/protobuf/commit/3e82ed436b498a8ea953c89f99fc66eba0bdc6a0)
* Add name mangling to nested names that collide with known generated names, like (https://github.com/protocolbuffers/protobuf/commit/f2cf85c9418173c7f294a5999a0023db1272f84c)
* Breaking change: Remove deprecated RepeatedPtrField::ClearedCount(). (https://github.com/protocolbuffers/protobuf/commit/e8e3253f63f52d314af0e317d09642b9ceb1b40e)
* Breaking change: Add ASAN poisoning after clearing oneof messages on arena. (https://github.com/protocolbuffers/protobuf/commit/54d068e11c77ed387b97a60f435998b384e36e34)
* Breaking change: Remove deprecated Arena::CreateMessage. (https://github.com/protocolbuffers/protobuf/commit/d83a5365d16cff4be7da7d9a34eef14b24cc8733)
* Change DynamicCastMessage to throw a `std::bad_cast` exception when exceptions (https://github.com/protocolbuffers/protobuf/commit/33bbbebf2006b4b3d3037b80dae4f80ef4486c5c)
* Fixed a missing check in wire format verification. (https://github.com/protocolbuffers/protobuf/commit/2ac862f36c0e159986ecb1ca67d71bf5f047f8e9)
* Comment change: clarifies that the field/value order is based on textual order in the file, not the order of the enums. (https://github.com/protocolbuffers/protobuf/commit/f92335b36db1bad089c3bccddc90bded98cb6a16)
* Bump minimum C++ version to C++17 after branch cut for v29. (https://github.com/protocolbuffers/protobuf/commit/fe535930d3183b46d7e088683cbe8c49285715f8)
* Bump abseil dependency version from 20230802.1 to 20240722.0. (https://github.com/protocolbuffers/protobuf/commit/c75095b6c6fd115c7446ed0f18e3f2cba3c54fef)
* Breaking change: Remove CMake submodule support in favor of fetched or installed dependencies. (https://github.com/protocolbuffers/protobuf/commit/3f06ca4306a682e6ee631d8ea94b82baaafb14f0)
* Support fetching CMake dependencies via `-Dprotobuf_FETCH_DEPENDENCIES=ON` (https://github.com/protocolbuffers/protobuf/commit/d3735bc2a0ae3f0b69f668e6a0c9108d0e92fdfa)
* Avoid field id comparisons in ExtensionSet serialization in case of single range. (https://github.com/protocolbuffers/protobuf/commit/8f6a7a2ceba6792b2b5d6fb01888f177a09afe35)
* Let ArenaStringPtr debug-fail if it ever attempts to clear a default string. (https://github.com/protocolbuffers/protobuf/commit/6c9c12c8a18a7d3a5807a181ca9bc8a1c1b02854)
* Fix various unsigned to signed comparison warnings. (17212) (https://github.com/protocolbuffers/protobuf/commit/67de0878d6dc3b411b13fec0bff9200c71a3ca07)
* Remove Protobuf-C++.podspec release. (https://github.com/protocolbuffers/protobuf/commit/b204518c5f851f0422ac6ebef7c2dfc8ece88696)

Java
* Split maven dependencies into dev vs local (20549) (20558) (https://github.com/protocolbuffers/protobuf/commit/a5c906a6e70d9efbc82651e0ea88480545fb0105)
* Refactor TextFormat.Printer.MapEntryAdapter to handle more entry types. This will properly sort map keys for DynamicMessage maps. (https://github.com/protocolbuffers/protobuf/commit/84769d3de7602e7e7fddb03cadacda7357998c43)
* Re-Expose UnderscoresToCapitalizedCamelCase for plugins in OSS. (https://github.com/protocolbuffers/protobuf/commit/94ae26d5c567e44f5a5ef32ef8cd18fb0929f30a)
* Upgrade return type of several string returning functions to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/d1990d968a54176eb9f4229abe7f7c97ece50cec)
* Fix mishandling of open enum + explicit presence fields. (https://github.com/protocolbuffers/protobuf/commit/0ccd8459ce0ee2af2693681bca75aa9f781bdb73)
* Disable useShortRepeatedPrimitives for Printer.DEFAULT_DEBUG_FORMAT (https://github.com/protocolbuffers/protobuf/commit/1900cbe0dab45af2dfa6cf223f1628fe03634392)
* Optimize Java gencode version validation (https://github.com/protocolbuffers/protobuf/commit/59a8de6610b6adbd49211a7805c505877f3ace0c)
* Make Java consistently reject unmatched end-group tag. (https://github.com/protocolbuffers/protobuf/commit/a4d4bfeae97dae0eb1212e0d3ee9d3c34718916f)
* Make Java-lite reject unmatched end-group tag. (https://github.com/protocolbuffers/protobuf/commit/84e81cfa6c540b885bdb2412c94029c952bcf63c)
* Fix handling of implicit field presence in mergeFrom to match the behavior in other places. (https://github.com/protocolbuffers/protobuf/commit/3e0f82e57f815a2b3d169d380dd30c40667984fd)
* Use ABSL_PREDICT_TRUE|FALSE instead of PROTOBUF_PREDICT_TRUE|FALSE. (https://github.com/protocolbuffers/protobuf/commit/fd477301f8c4c76f61c2b9e323f77a824d733174)
* Use [[maybe_unused]] instead of PROTOBUF_UNUSED. (https://github.com/protocolbuffers/protobuf/commit/a7dd1559ee05d2e7997d5e55bbbbf2d3d461715f)
* Remove deprecation warnings for Timestamp and Duration add/subtract/between that we do not yet have alternatives to. (https://github.com/protocolbuffers/protobuf/commit/f6cddd2cd766bd2d78ba7314928e2a12e63bf2ba)
* Add support to print repeated fields with primitive values using short notation (https://github.com/protocolbuffers/protobuf/commit/b8d356701a788951d92a1b4f04881fb539ca62d7)
* Fix unexpected NumberFormatException in Durations.parse() by replacing with documented thrown ParseException. (https://github.com/protocolbuffers/protobuf/commit/ee5aa499afe9fce27ff0cab69d184b541ee56f29)
* Give Kotlin jars an OSGi Manifest (18812) (https://github.com/protocolbuffers/protobuf/commit/27ddb9ce34f010a3ec551caa7ec77454ea1f86c4)
* Lite: Remove intermediary dynamicMethod function trampolines (https://github.com/protocolbuffers/protobuf/commit/25724ab53e919a5ef68782745d306c24e2fad58c)
* Speed up SingleFieldBuilder.getBuilder() by avoiding reloading this.builder at return. (https://github.com/protocolbuffers/protobuf/commit/f7b0faf55837c1106c6dc16985058b2c0747ae92)
* Restore runtime compatibility with 3.22.x gencode by re-adding the mutableCopy(list) methods. (https://github.com/protocolbuffers/protobuf/commit/6628b8a3dc6ba6d3d0bc0523204f12a7c39f18e4)
* CodedOutputStream: Avoid updating position to go beyond end of array. (https://github.com/protocolbuffers/protobuf/commit/24160d5bf88db52607a3037a50ad44aa32d9ed61)
* Fix various unsigned to signed comparison warnings. (17212) (https://github.com/protocolbuffers/protobuf/commit/67de0878d6dc3b411b13fec0bff9200c71a3ca07)
* Throw more informative OutOfSpaceExceptions when we run out of space serializing a proto. (https://github.com/protocolbuffers/protobuf/commit/bc24489f93de0dc10a6aa5ed22d119bc3deac514)

Kotlin
* Give Kotlin jars an OSGi Manifest (18812) (https://github.com/protocolbuffers/protobuf/commit/27ddb9ce34f010a3ec551caa7ec77454ea1f86c4)

Csharp
* Throw InvalidProtocolBufferException when parsing invalid UTF-8 in C. (https://github.com/protocolbuffers/protobuf/commit/db9b2c8e9f70dc8c53a31b52a740dfc3fad718d7)

Objective-C
* Generate Kythe annotations for objc messages. (https://github.com/protocolbuffers/protobuf/commit/88681710b5df5e4af9d3e06a505f501813c36207)
* Update minimum supported macOS 11 (https://github.com/protocolbuffers/protobuf/commit/9f1b38e8a1fea7d0f95c053cf72c1051bc3daf89)
* Breaking change: [ObjC] Remove legacy WKT headers. (https://github.com/protocolbuffers/protobuf/commit/d9caebc313256ea2f5c6922113c1f3edf14b24ad)
* [ObjC] Breaking Change: Remove deprecated apis. (https://github.com/protocolbuffers/protobuf/commit/2a52b900a1b71d57fc68624a989145f57abefdf1)
* [ObjC] Breaking Change: Remove support for older generated code. (https://github.com/protocolbuffers/protobuf/commit/cffa5902606ee3ebf23214b80251722b3654d5be)
* [ObjC] Breaking Change: Remove GPBUnknownFieldSet. (https://github.com/protocolbuffers/protobuf/commit/2b93422f7eea500b26d1a9aaf7d07b3120f83d39)

Python
* Fix missing port_undef (20052) (https://github.com/protocolbuffers/protobuf/commit/064438830bff4d87bb7fcfdaa53aa2598168e524)
* Python protobuf: kwargs initialization now allows dict() for proto map values. (https://github.com/protocolbuffers/protobuf/commit/623568724601c20f04386977976544c5d85e0378)
* Python: Improve refleak checker for Python 3.12. (https://github.com/protocolbuffers/protobuf/commit/336d6f04e94efebcefb5574d0c8d487bcb0d187e)
* Rename bazel "pip_deps" hub_name. (https://github.com/protocolbuffers/protobuf/commit/32838e8c2ce88f1c040f5b68c9ac4941fa97fa09)
* Add has_options to ServiceDescriptor and MethodDescriptor in UPB python and cpp python to match with other descriptors and pure python (https://github.com/protocolbuffers/protobuf/commit/4214ee72ef72bca42048f0289a755711d0d2d8d4)
* Nextgen Proto Pythonic API: Add byte_size(), clear_message() and clear_field() APIs in proto module (https://github.com/protocolbuffers/protobuf/commit/975bb07baa9bf65d81a82a75240f55899195335d)
* Nextgen Proto Pythonic API: “Add-on” proto for Text Format serialize/parse (https://github.com/protocolbuffers/protobuf/commit/e9fa879813e6ba2bc88f209028f790a455089577)
* Fix bug that DiscardUnknownFields did not discard unknown fields of extensions in Py-upb and Php-upb and ruby-upb. (https://github.com/protocolbuffers/protobuf/commit/98aab04c0bf846ad6b4af339d9dbc5cf77d6c03c)
* Remove the entire pb_unit_tests/ directory with reflection_test_wrapper. (https://github.com/protocolbuffers/protobuf/commit/39808bc55d577d48238bc1b0ed8d76df7d724385)
* Performance optimization for upb python extend repeated scalars. (https://github.com/protocolbuffers/protobuf/commit/6c3ff5aa9eba8fd78f8b52afe98df11c1fb85ad2)
* Ensure protobuf Message.__dir__ returns proto fields (https://github.com/protocolbuffers/protobuf/commit/1803f8bf28a0b61be8869d333bfd70171861e673)
* Breaking change: Fix closed enum validation under editions (https://github.com/protocolbuffers/protobuf/commit/72b3eda2ec385863d7416f067f6cd0cefeed72bb)
* Make python text-format reject octal floats (https://github.com/protocolbuffers/protobuf/commit/8f2ad123b8b0e5c40148b44d48a834032fae64d5)
* Treat -0.0 as consistently distinct from 0.0 in pure python (https://github.com/protocolbuffers/protobuf/commit/bc16fe8921889319f9d617167ab470043125be4a)
* Remove decoder.SkipField. (https://github.com/protocolbuffers/protobuf/commit/1b0b1c9ba005e85292cf597de6bcb64c69eeb23a)
* Make Pure Python reject unmatched end-group tag in unknown fields (https://github.com/protocolbuffers/protobuf/commit/f69ea1cc48191534c3450a1053f3741250274eca)
* Make Python/C++ reject unmatched end-group tag. (https://github.com/protocolbuffers/protobuf/commit/482752a78aa9545693a82de49be2311a7a263a3a)
* Override protobuf Message.__dir__ method (https://github.com/protocolbuffers/protobuf/commit/9668016fc2304c541c06c4e76d9d643200a9cba0)
* Add "absl::StatusOr<PythonConstMessagePointer> GetConstMessagePointer(PyObject* msg)" in proto_api which works with cpp extension, upb and pure python. (https://github.com/protocolbuffers/protobuf/commit/b9e69e8c11ecb87249b0cbf772911e2c3a80971b)
* Fix a python bug that UPB and Python C++ extension assume MessageSet extensions are ordered first (https://github.com/protocolbuffers/protobuf/commit/3781f45f390935001a7f1be6c20171f6fba0f56c)
* Drop Python 3.8 support (https://github.com/protocolbuffers/protobuf/commit/f5a293768fcb480ac577e703d576f333f66ab80c)
* Fix a python bug for text_format pretty print when Struct in Any (https://github.com/protocolbuffers/protobuf/commit/d3e9897b037a81d3a024d0af0c3626724286534d)
* Support tuples when parsing JSON dicts (https://github.com/protocolbuffers/protobuf/commit/75bb72e0d5f78b7e55d9be255a5f0a2b897ac311)
* Breaking change: Python nested message class __qualname__ now contains the outer message name. (Previous __qualname__ has the same result with __name__ for nested message that outer message name was not included) (https://github.com/protocolbuffers/protobuf/commit/0720536eca20ca2f801127869d7f1211bceb3865)
* Breaking change: Python setdefault behavior change for map field. (https://github.com/protocolbuffers/protobuf/commit/81da6b999a8229942436f6c203a20633c65ebd26)
* Fix a Python bug: when package is empty, DescriptorDatabase FindFileContainingSymbol method will able to find symbol names not start with '.' (https://github.com/protocolbuffers/protobuf/commit/610702ed18d4323e44b9741102ed90377243470e)
* Use ABSL_PREDICT_TRUE|FALSE instead of PROTOBUF_PREDICT_TRUE|FALSE. (https://github.com/protocolbuffers/protobuf/commit/fd477301f8c4c76f61c2b9e323f77a824d733174)
* Breaking change: Remove deprecated GetPrototype MessageFactory.GetPrototype(), (https://github.com/protocolbuffers/protobuf/commit/c261b49a9575226efc9e5d269f6e5319a05d526e)
* Breaking change: Remove deprecated GetDebugString() from protobuf python cpp extension. (https://github.com/protocolbuffers/protobuf/commit/721a45265b4e1d0f18d6775a0f1bafffdfc3088e)
* Add Python 3.13 test coverage (https://github.com/protocolbuffers/protobuf/commit/7060d3d7232096eae2188c61ad6ddfdf87a06f31)
* Fix a python bug when assign an empty Struct at creation. (https://github.com/protocolbuffers/protobuf/commit/47613cf7ad4180f5e7b4ba6324a95288e8383840)
* Add "PythonMessageMutator GetClearedMutableMessage(PyObject *);" in proto_api which works with cpp extension, upb and pure python. (https://github.com/protocolbuffers/protobuf/commit/5706140e09856a80cb02dc3947981c595f74dbf2)
* Breaking change: Remove deprecated reflection methods (https://github.com/protocolbuffers/protobuf/commit/292f9646797d9e23fc66ba70fbda5903f2301ff0)
* Breaking change: Remove deprecated Python RPC Service Interfaces (https://github.com/protocolbuffers/protobuf/commit/5ba74b11e8d2bd5e9b22e972beb572668bf6191c)
* Fix pyi generation for messages with a field named "self" (https://github.com/protocolbuffers/protobuf/commit/fa858b82d2eea36ce5cb370f1ae30ce2e82c022e)
* Breaking change: Remove deprecated py_proto_library macro. (https://github.com/protocolbuffers/protobuf/commit/1e8e356b888eb5e7125c7fe0743f402447db14bc)

PHP
* Handle optional fields correctly in Message_get method (18982) (https://github.com/protocolbuffers/protobuf/commit/f1aa92a5f5b2c0ebf4711c126877d5339fd55f4b)
* Delete long-deprecated internal descriptor.proto gencode forwards. (https://github.com/protocolbuffers/protobuf/commit/cf9b7747da525bb26ce0250bde09c5db08b247cc)

PHP C-Extension
* Upb: Update _upb_map_next signature to return a boolean and remove the _nextmutable Map iterator API. (20467) (https://github.com/protocolbuffers/protobuf/commit/0913d392e738e77737db76f4116fcb3e3719155a)
* Add `to_proto` to descriptor classes (19971) (https://github.com/protocolbuffers/protobuf/commit/74122ebb378cc638350060b99eaf47d5d8e7eec1)
* Fix bug that DiscardUnknownFields did not discard unknown fields of extensions in Py-upb and Php-upb and ruby-upb. (https://github.com/protocolbuffers/protobuf/commit/98aab04c0bf846ad6b4af339d9dbc5cf77d6c03c)
* Raise ParseError for non-numeric strings in numeric fields in Ruby and PHP JSON parsing. (https://github.com/protocolbuffers/protobuf/commit/abb197cb6124f3fa3c235be906e7bf7f04769b11)
* Handle optional fields correctly in Message_get method (18982) (https://github.com/protocolbuffers/protobuf/commit/f1aa92a5f5b2c0ebf4711c126877d5339fd55f4b)
* *See also UPB changes below, which may affect PHP C-Extension.*

Ruby
* Add `to_proto` to descriptor classes (19971) (https://github.com/protocolbuffers/protobuf/commit/74122ebb378cc638350060b99eaf47d5d8e7eec1)
* Support ruby 3.4 (19752) (https://github.com/protocolbuffers/protobuf/commit/4a92a1c9bffa4ee8d77ec25364d914c47662565c)
* Add a multi-platform Gemfile.lock (19804) (https://github.com/protocolbuffers/protobuf/commit/56f318dc8269cf15e26807f19349be569942e3d0)
* Fix ruby `has_...?` method (19731) (https://github.com/protocolbuffers/protobuf/commit/4031c195f1254f06280c7f4e694368d83dc3de4b)
* Raise ParseError for non-numeric strings in numeric fields in Ruby and PHP JSON parsing. (https://github.com/protocolbuffers/protobuf/commit/abb197cb6124f3fa3c235be906e7bf7f04769b11)
* Error if assigning a "UTF-8" string with invalid UTF-8. (https://github.com/protocolbuffers/protobuf/commit/2f505a7aa1c7012d3867caa012c310b5da4c33d2)
* Third_party/utf8_range: support arm neon (18126) (https://github.com/protocolbuffers/protobuf/commit/d83ad15cd15f71f18f67ca3b2d774ede280c5117)

Ruby C-Extension
* Upb: Update _upb_map_next signature to return a boolean and remove the _nextmutable Map iterator API. (20467) (https://github.com/protocolbuffers/protobuf/commit/0913d392e738e77737db76f4116fcb3e3719155a)
* Add `to_proto` to descriptor classes (19971) (https://github.com/protocolbuffers/protobuf/commit/74122ebb378cc638350060b99eaf47d5d8e7eec1)
* Ruby: make it possible to specify compiler for C extension (19863) (https://github.com/protocolbuffers/protobuf/commit/b46f315c8dab71dfb1d805a3e94f1feccda1f1f4)
* Fix bug that DiscardUnknownFields did not discard unknown fields of extensions in Py-upb and Php-upb and ruby-upb. (https://github.com/protocolbuffers/protobuf/commit/98aab04c0bf846ad6b4af339d9dbc5cf77d6c03c)
* Fix ruby `has_...?` method (19731) (https://github.com/protocolbuffers/protobuf/commit/4031c195f1254f06280c7f4e694368d83dc3de4b)
* Raise ParseError for non-numeric strings in numeric fields in Ruby and PHP JSON parsing. (https://github.com/protocolbuffers/protobuf/commit/abb197cb6124f3fa3c235be906e7bf7f04769b11)
* Error if assigning a "UTF-8" string with invalid UTF-8. (https://github.com/protocolbuffers/protobuf/commit/2f505a7aa1c7012d3867caa012c310b5da4c33d2)
* Update minimum supported macOS 11 (https://github.com/protocolbuffers/protobuf/commit/9f1b38e8a1fea7d0f95c053cf72c1051bc3daf89)
* *See also UPB changes below, which may affect Ruby C-Extension.*

UPB (Python/PHP/Ruby C-Extension)
* Upb: Update _upb_map_next signature to return a boolean and remove the _nextmutable Map iterator API. (20467) (https://github.com/protocolbuffers/protobuf/commit/0913d392e738e77737db76f4116fcb3e3719155a)
* Change upb C generated map iteration function to not hand out MapEntry pointers. (20462) (https://github.com/protocolbuffers/protobuf/commit/503abccabda3a950c7583eb1ad5666950f01cfec)
* Add `to_proto` to descriptor classes (19971) (https://github.com/protocolbuffers/protobuf/commit/74122ebb378cc638350060b99eaf47d5d8e7eec1)
* Randomize upb's map ordering (https://github.com/protocolbuffers/protobuf/commit/066531df73264fa1436a3f2ad6dff1746baffc26)
* Fix bug that DiscardUnknownFields did not discard unknown fields of extensions in Py-upb and Php-upb and ruby-upb. (https://github.com/protocolbuffers/protobuf/commit/98aab04c0bf846ad6b4af339d9dbc5cf77d6c03c)
* Add three conformance test edge cases for ProtoJSON repr of Any (https://github.com/protocolbuffers/protobuf/commit/b985164e7cd075711817a02392c61fd85c74d992)
* Fix issue where a tmp buffer could have been too small when handling a serialized FeatureSet. (https://github.com/protocolbuffers/protobuf/commit/eb8a34d22dc10847ea1ef4ae1da88b480fa7f3c3)
* Fixed comparison of empty repeated/map extensions. (https://github.com/protocolbuffers/protobuf/commit/a79fbc9d32723a383813f6be4791ddaed09a8d6c)
* Fix a python bug that UPB and Python C++ extension assume MessageSet extensions are ordered first (https://github.com/protocolbuffers/protobuf/commit/3781f45f390935001a7f1be6c20171f6fba0f56c)

Other
* Remove test platform specification from release config (20475) (https://github.com/protocolbuffers/protobuf/commit/2b9b1018b962fc215b0d8d6760ddbfd33e9a4481)
* Remove reference to rules_rust from .bazelrc (20470) (https://github.com/protocolbuffers/protobuf/commit/90e893c0c6544a512f5fda34233cdd125d5953fd)
* Protobuf: add //:go_features_proto Bazel alias (20419) (https://github.com/protocolbuffers/protobuf/commit/8892adc24a58521322d8371d0e6b99fcc3ba402d)
* Move to bazel 7 and turn down support for bazel 6. (https://github.com/protocolbuffers/protobuf/commit/afe2de261861717026c3b57ec83678590d5de838)
* Upgrade minimum version of macOS support to macOS 10.15 (Catalina). (https://github.com/protocolbuffers/protobuf/commit/67fca5cb705c6a5f066be594e14f5c57e9dbbe55)
* Update protoc release to include editions language features proto for Go (https://github.com/protocolbuffers/protobuf/commit/353d726bbc28c0972b150c92067818bd626281f4)
* Bazel 8 compatibility for Bazel users, however building test and release targets from source is *not compatible* with Bazel 8 yet.

30.0rc2

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

Bazel
* Run buildifier (https://github.com/protocolbuffers/protobuf/commit/bf712ccc5d5615ca902f4b1262bbc0a247aa129d)

Compiler
* Upgrade abseil-cpp to 20250127 and use com_google_absl -> abseil-cpp and com_google_googletest -> googletest canonical BCR names. (20295) (https://github.com/protocolbuffers/protobuf/commit/df849cc9c54d43de4d9986287ef3fafb487f45e3)

C++
* Add tests for older gcc versions we still support (20463) (https://github.com/protocolbuffers/protobuf/commit/0778473da9f5fdec8346853b6a5c84cc21ba8e7e)
* Fix a bug in handling of implicit-presence string_view fields. (20403) (https://github.com/protocolbuffers/protobuf/commit/81196acc7e3e859a0dbb26223516462c3f6e4e40)
* Make php generator's header public for gRPC (20320) (https://github.com/protocolbuffers/protobuf/commit/c07e8542381e451c9a9545859ecc0ede493c0905)
* Remove rules_rust dependency from MODULE.bazel for 30.x (20310) (https://github.com/protocolbuffers/protobuf/commit/b8248f687f07d78a4baedd1581843883544ae239)
* Upgrade abseil-cpp to 20250127 and use com_google_absl -> abseil-cpp and com_google_googletest -> googletest canonical BCR names. (20295) (https://github.com/protocolbuffers/protobuf/commit/df849cc9c54d43de4d9986287ef3fafb487f45e3)
* Replace `std::any` with a custom solution. (20251) (https://github.com/protocolbuffers/protobuf/commit/6250d09c426f5b42b7d9f954fc73d24c644a221e)

Java
* Run buildifier (https://github.com/protocolbuffers/protobuf/commit/bf712ccc5d5615ca902f4b1262bbc0a247aa129d)
* Upgrade abseil-cpp to 20250127 and use com_google_absl -> abseil-cpp and com_google_googletest -> googletest canonical BCR names. (20295) (https://github.com/protocolbuffers/protobuf/commit/df849cc9c54d43de4d9986287ef3fafb487f45e3)

Kotlin
* Run buildifier (https://github.com/protocolbuffers/protobuf/commit/bf712ccc5d5615ca902f4b1262bbc0a247aa129d)

Csharp
* Upgrade abseil-cpp to 20250127 and use com_google_absl -> abseil-cpp and com_google_googletest -> googletest canonical BCR names. (20295) (https://github.com/protocolbuffers/protobuf/commit/df849cc9c54d43de4d9986287ef3fafb487f45e3)

Objective-C
* Upgrade abseil-cpp to 20250127 and use com_google_absl -> abseil-cpp and com_google_googletest -> googletest canonical BCR names. (20295) (https://github.com/protocolbuffers/protobuf/commit/df849cc9c54d43de4d9986287ef3fafb487f45e3)

Rust
* Run buildifier (https://github.com/protocolbuffers/protobuf/commit/bf712ccc5d5615ca902f4b1262bbc0a247aa129d)
* Upgrade abseil-cpp to 20250127 and use com_google_absl -> abseil-cpp and com_google_googletest -> googletest canonical BCR names. (20295) (https://github.com/protocolbuffers/protobuf/commit/df849cc9c54d43de4d9986287ef3fafb487f45e3)
* *See also UPB changes below, which may affect Rust.*

Python
* Run buildifier (https://github.com/protocolbuffers/protobuf/commit/bf712ccc5d5615ca902f4b1262bbc0a247aa129d)
* Upgrade abseil-cpp to 20250127 and use com_google_absl -> abseil-cpp and com_google_googletest -> googletest canonical BCR names. (20295) (https://github.com/protocolbuffers/protobuf/commit/df849cc9c54d43de4d9986287ef3fafb487f45e3)

PHP
* Upgrade abseil-cpp to 20250127 and use com_google_absl -> abseil-cpp and com_google_googletest -> googletest canonical BCR names. (20295) (https://github.com/protocolbuffers/protobuf/commit/df849cc9c54d43de4d9986287ef3fafb487f45e3)

PHP C-Extension
* Upb: Update _upb_map_next signature to return a boolean and remove the _nextmutable Map iterator API. (20467) (https://github.com/protocolbuffers/protobuf/commit/0913d392e738e77737db76f4116fcb3e3719155a)
* *See also UPB changes below, which may affect PHP C-Extension.*

Ruby
* Run buildifier (https://github.com/protocolbuffers/protobuf/commit/bf712ccc5d5615ca902f4b1262bbc0a247aa129d)
* Upgrade abseil-cpp to 20250127 and use com_google_absl -> abseil-cpp and com_google_googletest -> googletest canonical BCR names. (20295) (https://github.com/protocolbuffers/protobuf/commit/df849cc9c54d43de4d9986287ef3fafb487f45e3)

Ruby C-Extension
* Upb: Update _upb_map_next signature to return a boolean and remove the _nextmutable Map iterator API. (20467) (https://github.com/protocolbuffers/protobuf/commit/0913d392e738e77737db76f4116fcb3e3719155a)
* *See also UPB changes below, which may affect Ruby C-Extension.*

UPB (Python/PHP/Ruby C-Extension)
* Upb: Update _upb_map_next signature to return a boolean and remove the _nextmutable Map iterator API. (20467) (https://github.com/protocolbuffers/protobuf/commit/0913d392e738e77737db76f4116fcb3e3719155a)
* Change upb C generated map iteration function to not hand out MapEntry pointers. (20462) (https://github.com/protocolbuffers/protobuf/commit/503abccabda3a950c7583eb1ad5666950f01cfec)
* Run buildifier (https://github.com/protocolbuffers/protobuf/commit/bf712ccc5d5615ca902f4b1262bbc0a247aa129d)
* Upgrade abseil-cpp to 20250127 and use com_google_absl -> abseil-cpp and com_google_googletest -> googletest canonical BCR names. (20295) (https://github.com/protocolbuffers/protobuf/commit/df849cc9c54d43de4d9986287ef3fafb487f45e3)

Other
* Remove test platform specification from release config (20475) (https://github.com/protocolbuffers/protobuf/commit/2b9b1018b962fc215b0d8d6760ddbfd33e9a4481)
* Remove reference to rules_rust from .bazelrc (20470) (https://github.com/protocolbuffers/protobuf/commit/90e893c0c6544a512f5fda34233cdd125d5953fd)
* Protobuf: add //:go_features_proto Bazel alias (20419) (https://github.com/protocolbuffers/protobuf/commit/8892adc24a58521322d8371d0e6b99fcc3ba402d)
* Fix redundant clang-cl and msvc platform constraint for Bazel 8 compatibility and enable Bazel 8 presubmits in BCR. (https://github.com/protocolbuffers/protobuf/commit/b025ac0050268562407ba9f9aa90ca165f15bd64)
* Switch BCR presubmit to testing from example module (instead of default dummy module) so we can use .bazelrc and reference local_config_cc. (https://github.com/protocolbuffers/protobuf/commit/817174429bf5abc0615f6dc37ba95865acb8f1e7)

30.0rc1

Announcements
* **This version includes breaking changes to: C++, Objective-C, Python, Rust.**
* [C++] Remove deprecated JsonOptions alias. (https://github.com/protocolbuffers/protobuf/commit/e2eb0a19aa95497c8979d71031edbbab721f5f0a)
* [C++] Remove CMake submodule support in favor of fetched or installed dependencies. (https://github.com/protocolbuffers/protobuf/commit/3f06ca4306a682e6ee631d8ea94b82baaafb14f0)
* [C++] Prohibit using Bazel+MSVC to build protobuf (https://github.com/protocolbuffers/protobuf/commit/117e7bbe74ac7c7faa9b6f44c1b22de366302854)
* [C++] Remove deprecated Arena::CreateMessage. (https://github.com/protocolbuffers/protobuf/commit/d83a5365d16cff4be7da7d9a34eef14b24cc8733)
* [C++] Upgrade return type of `type_name()` and `cpp_type_name()` from `const char*` to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/a9ad51f5b6a19eacc934bcb51db6282ec1fabb8c)
* [C++] Strip ctype from options in C++ (https://github.com/protocolbuffers/protobuf/commit/aebf8b9459f1da347a353c2fbbfe76230a457209)
* [C++] Remove `MutableRepeatedFieldRef::Reserve()` in reflection (https://github.com/protocolbuffers/protobuf/commit/913f7b0c6d3c3e9876aea913b0d83bbd7fffe22c)
* [C++] Upgrade return type of several string returning functions to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/d1990d968a54176eb9f4229abe7f7c97ece50cec)
* [C++] Flip default behavior for handling cmake dependencies. (https://github.com/protocolbuffers/protobuf/commit/9cc685edf867acf5024a94502a3cbd7afa7a3daa)
* [C++] Add ASAN poisoning after clearing oneof messages on arena. (https://github.com/protocolbuffers/protobuf/commit/54d068e11c77ed387b97a60f435998b384e36e34)
* [C++] Remove deprecated RepeatedPtrField::ClearedCount(). (https://github.com/protocolbuffers/protobuf/commit/e8e3253f63f52d314af0e317d09642b9ceb1b40e)
* [C++] Remove deprecated Arena::GetArena. (https://github.com/protocolbuffers/protobuf/commit/30ed452eddacace2c3270dce9645b8f1f453ae4b)
* [Objective-C] [ObjC] Remove legacy WKT headers. (https://github.com/protocolbuffers/protobuf/commit/d9caebc313256ea2f5c6922113c1f3edf14b24ad)
* [Objective-C] Upgrade return type of several string returning functions to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/d1990d968a54176eb9f4229abe7f7c97ece50cec)
* [Python] Remove deprecated reflection methods (https://github.com/protocolbuffers/protobuf/commit/292f9646797d9e23fc66ba70fbda5903f2301ff0)
* [Python] Remove deprecated GetPrototype MessageFactory.GetPrototype(), (https://github.com/protocolbuffers/protobuf/commit/c261b49a9575226efc9e5d269f6e5319a05d526e)
* [Python] Remove deprecated Python RPC Service Interfaces (https://github.com/protocolbuffers/protobuf/commit/5ba74b11e8d2bd5e9b22e972beb572668bf6191c)
* [Python] Remove deprecated GetDebugString() from protobuf python cpp extension. (https://github.com/protocolbuffers/protobuf/commit/721a45265b4e1d0f18d6775a0f1bafffdfc3088e)
* [Python] Upgrade return type of several string returning functions to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/d1990d968a54176eb9f4229abe7f7c97ece50cec)
* [Python] Fix closed enum validation under editions (https://github.com/protocolbuffers/protobuf/commit/72b3eda2ec385863d7416f067f6cd0cefeed72bb)
* [Python] Python setdefault behavior change for map field. (https://github.com/protocolbuffers/protobuf/commit/81da6b999a8229942436f6c203a20633c65ebd26)
* [Python] Python nested message class __qualname__ now contains the outer message name. (Previous __qualname__ has the same result with __name__ for nested message that outer message name was not included) (https://github.com/protocolbuffers/protobuf/commit/0720536eca20ca2f801127869d7f1211bceb3865)
* [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes.

Bazel
* Remove reference to cc_proto_aspect (https://github.com/protocolbuffers/protobuf/commit/fa02f768e3a793195e62ad70f9694106b893b0f3)
* Remove deprecated bazel/system_python.bzl alias. (https://github.com/protocolbuffers/protobuf/commit/00f108c07807e73188f0baf51ba90ad527463f84)

Compiler
* Have the protoc CLI properly report any parser warnings. (https://github.com/protocolbuffers/protobuf/commit/cafeaa41fb3c8d67eef0de11ed60ff539fd3318f)
* Split protoc apart from libprotoc in our cmake configs. (https://github.com/protocolbuffers/protobuf/commit/b4b93b36245a88a3efa19261638f5da61a9be44f)
* Begin adding extension numbers to SourceCodeInfo and FileDescriptorSet for tooling purposes. (https://github.com/protocolbuffers/protobuf/commit/9d7236b421634afcecc24b6fd63da0ff5b506394)
* Fix various unsigned to signed comparison warnings. (17212) (https://github.com/protocolbuffers/protobuf/commit/67de0878d6dc3b411b13fec0bff9200c71a3ca07)

C++
* Make DebugString print debug output, enable debug markers for debug output (https://github.com/protocolbuffers/protobuf/commit/9a033327c6382bdd78412ff9f60e512a19a4129a)
* Fix missing port_undef (20052) (https://github.com/protocolbuffers/protobuf/commit/064438830bff4d87bb7fcfdaa53aa2598168e524)
* Use __builtin_expect_with_probability for proto field presence checks. (https://github.com/protocolbuffers/protobuf/commit/e9584192996ba6ae9a071973c3c903b693359217)
* Enable meta-tagging for redaction purposes (https://github.com/protocolbuffers/protobuf/commit/1f487953bfafc717fecf7f7e01ca141f09b861c3)
* Breaking change: Prohibit using Bazel+MSVC to build protobuf (https://github.com/protocolbuffers/protobuf/commit/117e7bbe74ac7c7faa9b6f44c1b22de366302854)
* Breaking change: Upgrade return type of several string returning functions to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/d1990d968a54176eb9f4229abe7f7c97ece50cec)
* Print the presence probability when analysis is enabled. (https://github.com/protocolbuffers/protobuf/commit/d4ba7ff998ea865121d864bd627cb0b98948c8ea)
* Split protoc apart from libprotoc in our cmake configs. (https://github.com/protocolbuffers/protobuf/commit/b4b93b36245a88a3efa19261638f5da61a9be44f)
* Breaking change: Strip ctype from options in C++ (https://github.com/protocolbuffers/protobuf/commit/aebf8b9459f1da347a353c2fbbfe76230a457209)
* Breaking change: Remove `MutableRepeatedFieldRef::Reserve()` in reflection (https://github.com/protocolbuffers/protobuf/commit/913f7b0c6d3c3e9876aea913b0d83bbd7fffe22c)
* Remove stale references to C++14. (https://github.com/protocolbuffers/protobuf/commit/f4cc92c73de43a1455f63cb734ad161d9c03a4a8)
* Breaking change: Upgrade return type of `type_name()` and `cpp_type_name()` from `const char*` to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/a9ad51f5b6a19eacc934bcb51db6282ec1fabb8c)
* Update cmake minimum version to >=3.16. (https://github.com/protocolbuffers/protobuf/commit/21f535c978812ab2d9afcbe887fc2ad228c0d92e)
* Migrate coded output stream arguments from `const std::string&` to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/0361a59322277a50f36b913f306884f5dda7c4c9)
* Breaking change: Remove deprecated Arena::GetArena. (https://github.com/protocolbuffers/protobuf/commit/30ed452eddacace2c3270dce9645b8f1f453ae4b)
* Remove the time (or time-based) entropy being added to Map's seed. (https://github.com/protocolbuffers/protobuf/commit/a7875bb3432678f1e54e5c08c58e35d678cadbe1)
* Don't use CLOCK_UPTIME_RAW if it won't be defined (16951) (https://github.com/protocolbuffers/protobuf/commit/097dcda8f2029f3a08ef487893e79410257cf7cf)
* Fix DEPENDENCIES in protobuf_generate() to accept multiple values instead of silently dropping (https://github.com/protocolbuffers/protobuf/commit/52887e1cc726bff24b8b0dd6f2b1babf7632db8a)
* Use ABSL_PREDICT_TRUE|FALSE instead of PROTOBUF_PREDICT_TRUE|FALSE. (https://github.com/protocolbuffers/protobuf/commit/fd477301f8c4c76f61c2b9e323f77a824d733174)
* Breaking change: Flip default behavior for handling cmake dependencies. (https://github.com/protocolbuffers/protobuf/commit/9cc685edf867acf5024a94502a3cbd7afa7a3daa)
* Use [[maybe_unused]] instead of PROTOBUF_UNUSED. (https://github.com/protocolbuffers/protobuf/commit/a7dd1559ee05d2e7997d5e55bbbbf2d3d461715f)
* Use [[nodiscard]] instead of PROTOBUF_NODISCARD (https://github.com/protocolbuffers/protobuf/commit/1ceedf88ca4c6f151f08a10244005cee6c814f40)
* Breaking change: Remove deprecated JsonOptions alias. (https://github.com/protocolbuffers/protobuf/commit/e2eb0a19aa95497c8979d71031edbbab721f5f0a)
* Generate internal hasbits for singular proto3 implicit presence fields. (https://github.com/protocolbuffers/protobuf/commit/3e82ed436b498a8ea953c89f99fc66eba0bdc6a0)
* Add name mangling to nested names that collide with known generated names, like (https://github.com/protocolbuffers/protobuf/commit/f2cf85c9418173c7f294a5999a0023db1272f84c)
* Breaking change: Remove deprecated RepeatedPtrField::ClearedCount(). (https://github.com/protocolbuffers/protobuf/commit/e8e3253f63f52d314af0e317d09642b9ceb1b40e)
* Breaking change: Add ASAN poisoning after clearing oneof messages on arena. (https://github.com/protocolbuffers/protobuf/commit/54d068e11c77ed387b97a60f435998b384e36e34)
* Breaking change: Remove deprecated Arena::CreateMessage. (https://github.com/protocolbuffers/protobuf/commit/d83a5365d16cff4be7da7d9a34eef14b24cc8733)
* Change DynamicCastMessage to throw a `std::bad_cast` exception when exceptions (https://github.com/protocolbuffers/protobuf/commit/33bbbebf2006b4b3d3037b80dae4f80ef4486c5c)
* Fixed a missing check in wire format verification. (https://github.com/protocolbuffers/protobuf/commit/2ac862f36c0e159986ecb1ca67d71bf5f047f8e9)
* Comment change: clarifies that the field/value order is based on textual order in the file, not the order of the enums. (https://github.com/protocolbuffers/protobuf/commit/f92335b36db1bad089c3bccddc90bded98cb6a16)
* Bump minimum C++ version to C++17 after branch cut for v29. (https://github.com/protocolbuffers/protobuf/commit/fe535930d3183b46d7e088683cbe8c49285715f8)
* Bump abseil dependency version from 20230802.1 to 20240722.0. (https://github.com/protocolbuffers/protobuf/commit/c75095b6c6fd115c7446ed0f18e3f2cba3c54fef)
* Breaking change: Remove CMake submodule support in favor of fetched or installed dependencies. (https://github.com/protocolbuffers/protobuf/commit/3f06ca4306a682e6ee631d8ea94b82baaafb14f0)
* Support fetching CMake dependencies via `-Dprotobuf_FETCH_DEPENDENCIES=ON` (https://github.com/protocolbuffers/protobuf/commit/d3735bc2a0ae3f0b69f668e6a0c9108d0e92fdfa)
* Avoid field id comparisons in ExtensionSet serialization in case of single range. (https://github.com/protocolbuffers/protobuf/commit/8f6a7a2ceba6792b2b5d6fb01888f177a09afe35)
* Let ArenaStringPtr debug-fail if it ever attempts to clear a default string. (https://github.com/protocolbuffers/protobuf/commit/6c9c12c8a18a7d3a5807a181ca9bc8a1c1b02854)
* Fix various unsigned to signed comparison warnings. (17212) (https://github.com/protocolbuffers/protobuf/commit/67de0878d6dc3b411b13fec0bff9200c71a3ca07)

Java
* Refactor TextFormat.Printer.MapEntryAdapter to handle more entry types. This will properly sort map keys for DynamicMessage maps. (https://github.com/protocolbuffers/protobuf/commit/84769d3de7602e7e7fddb03cadacda7357998c43)
* Re-Expose UnderscoresToCapitalizedCamelCase for plugins in OSS. (https://github.com/protocolbuffers/protobuf/commit/94ae26d5c567e44f5a5ef32ef8cd18fb0929f30a)
* Upgrade return type of several string returning functions to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/d1990d968a54176eb9f4229abe7f7c97ece50cec)
* Fix mishandling of open enum + explicit presence fields. (https://github.com/protocolbuffers/protobuf/commit/0ccd8459ce0ee2af2693681bca75aa9f781bdb73)
* Disable useShortRepeatedPrimitives for Printer.DEFAULT_DEBUG_FORMAT (https://github.com/protocolbuffers/protobuf/commit/1900cbe0dab45af2dfa6cf223f1628fe03634392)
* Optimize Java gencode version validation (https://github.com/protocolbuffers/protobuf/commit/59a8de6610b6adbd49211a7805c505877f3ace0c)
* Make Java consistently reject unmatched end-group tag. (https://github.com/protocolbuffers/protobuf/commit/a4d4bfeae97dae0eb1212e0d3ee9d3c34718916f)
* Make Java-lite reject unmatched end-group tag. (https://github.com/protocolbuffers/protobuf/commit/84e81cfa6c540b885bdb2412c94029c952bcf63c)
* Fix handling of implicit field presence in mergeFrom to match the behavior in other places. (https://github.com/protocolbuffers/protobuf/commit/3e0f82e57f815a2b3d169d380dd30c40667984fd)
* Use ABSL_PREDICT_TRUE|FALSE instead of PROTOBUF_PREDICT_TRUE|FALSE. (https://github.com/protocolbuffers/protobuf/commit/fd477301f8c4c76f61c2b9e323f77a824d733174)
* Use [[maybe_unused]] instead of PROTOBUF_UNUSED. (https://github.com/protocolbuffers/protobuf/commit/a7dd1559ee05d2e7997d5e55bbbbf2d3d461715f)
* Remove deprecation warnings for Timestamp and Duration add/subtract/between that we do not yet have alternatives to. (https://github.com/protocolbuffers/protobuf/commit/f6cddd2cd766bd2d78ba7314928e2a12e63bf2ba)
* Add support to print repeated fields with primitive values using short notation (https://github.com/protocolbuffers/protobuf/commit/b8d356701a788951d92a1b4f04881fb539ca62d7)
* Fix unexpected NumberFormatException in Durations.parse() by replacing with documented thrown ParseException. (https://github.com/protocolbuffers/protobuf/commit/ee5aa499afe9fce27ff0cab69d184b541ee56f29)
* Give Kotlin jars an OSGi Manifest (18812) (https://github.com/protocolbuffers/protobuf/commit/27ddb9ce34f010a3ec551caa7ec77454ea1f86c4)
* Lite: Remove intermediary dynamicMethod function trampolines (https://github.com/protocolbuffers/protobuf/commit/25724ab53e919a5ef68782745d306c24e2fad58c)
* Speed up SingleFieldBuilder.getBuilder() by avoiding reloading this.builder at return. (https://github.com/protocolbuffers/protobuf/commit/f7b0faf55837c1106c6dc16985058b2c0747ae92)
* Restore runtime compatibility with 3.22.x gencode by re-adding the mutableCopy(list) methods. (https://github.com/protocolbuffers/protobuf/commit/6628b8a3dc6ba6d3d0bc0523204f12a7c39f18e4)
* CodedOutputStream: Avoid updating position to go beyond end of array. (https://github.com/protocolbuffers/protobuf/commit/24160d5bf88db52607a3037a50ad44aa32d9ed61)
* Fix various unsigned to signed comparison warnings. (17212) (https://github.com/protocolbuffers/protobuf/commit/67de0878d6dc3b411b13fec0bff9200c71a3ca07)
* Throw more informative OutOfSpaceExceptions when we run out of space serializing a proto. (https://github.com/protocolbuffers/protobuf/commit/bc24489f93de0dc10a6aa5ed22d119bc3deac514)

Kotlin
* Give Kotlin jars an OSGi Manifest (18812) (https://github.com/protocolbuffers/protobuf/commit/27ddb9ce34f010a3ec551caa7ec77454ea1f86c4)

Csharp
* Breaking change: Upgrade return type of several string returning functions to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/d1990d968a54176eb9f4229abe7f7c97ece50cec)
* Support tuples when parsing JSON dicts (https://github.com/protocolbuffers/protobuf/commit/75bb72e0d5f78b7e55d9be255a5f0a2b897ac311)
* Don't use CLOCK_UPTIME_RAW if it won't be defined (16951) (https://github.com/protocolbuffers/protobuf/commit/097dcda8f2029f3a08ef487893e79410257cf7cf)
* Breaking change: Python nested message class __qualname__ now contains the outer message name. (Previous __qualname__ has the same result with __name__ for nested message that outer message name was not included) (https://github.com/protocolbuffers/protobuf/commit/0720536eca20ca2f801127869d7f1211bceb3865)
* Fix a Python bug: when package is empty, DescriptorDatabase FindFileContainingSymbol method will able to find symbol names not start with '.' (https://github.com/protocolbuffers/protobuf/commit/610702ed18d4323e44b9741102ed90377243470e)
* Throw InvalidProtocolBufferException when parsing invalid UTF-8 in C. (https://github.com/protocolbuffers/protobuf/commit/db9b2c8e9f70dc8c53a31b52a740dfc3fad718d7)
* Use ABSL_PREDICT_TRUE|FALSE instead of PROTOBUF_PREDICT_TRUE|FALSE. (https://github.com/protocolbuffers/protobuf/commit/fd477301f8c4c76f61c2b9e323f77a824d733174)
* Breaking change: Flip default behavior for handling cmake dependencies. (https://github.com/protocolbuffers/protobuf/commit/9cc685edf867acf5024a94502a3cbd7afa7a3daa)
* Use [[maybe_unused]] instead of PROTOBUF_UNUSED. (https://github.com/protocolbuffers/protobuf/commit/a7dd1559ee05d2e7997d5e55bbbbf2d3d461715f)
* Breaking change: Remove deprecated GetPrototype MessageFactory.GetPrototype(), (https://github.com/protocolbuffers/protobuf/commit/c261b49a9575226efc9e5d269f6e5319a05d526e)

Objective-C
* Generate Kythe annotations for objc messages. (https://github.com/protocolbuffers/protobuf/commit/88681710b5df5e4af9d3e06a505f501813c36207)
* Breaking change: Upgrade return type of several string returning functions to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/d1990d968a54176eb9f4229abe7f7c97ece50cec)
* Update minimum supported macOS 11 (https://github.com/protocolbuffers/protobuf/commit/9f1b38e8a1fea7d0f95c053cf72c1051bc3daf89)
* Breaking change: [ObjC] Remove legacy WKT headers. (https://github.com/protocolbuffers/protobuf/commit/d9caebc313256ea2f5c6922113c1f3edf14b24ad)
* [ObjC] Breaking Change: Remove deprecated apis. (https://github.com/protocolbuffers/protobuf/commit/2a52b900a1b71d57fc68624a989145f57abefdf1)
* [ObjC] Breaking Change: Remove support for older generated code. (https://github.com/protocolbuffers/protobuf/commit/cffa5902606ee3ebf23214b80251722b3654d5be)
* [ObjC] Breaking Change: Remove GPBUnknownFieldSet. (https://github.com/protocolbuffers/protobuf/commit/2b93422f7eea500b26d1a9aaf7d07b3120f83d39)

Python
* Fix missing port_undef (20052) (https://github.com/protocolbuffers/protobuf/commit/064438830bff4d87bb7fcfdaa53aa2598168e524)
* Python protobuf: kwargs initialization now allows dict() for proto map values. (https://github.com/protocolbuffers/protobuf/commit/623568724601c20f04386977976544c5d85e0378)
* Python: Improve refleak checker for Python 3.12. (https://github.com/protocolbuffers/protobuf/commit/336d6f04e94efebcefb5574d0c8d487bcb0d187e)
* Rename bazel "pip_deps" hub_name. (https://github.com/protocolbuffers/protobuf/commit/32838e8c2ce88f1c040f5b68c9ac4941fa97fa09)
* Breaking change: Upgrade return type of several string returning functions to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/d1990d968a54176eb9f4229abe7f7c97ece50cec)
* Add has_options to ServiceDescriptor and MethodDescriptor in UPB python and cpp python to match with other descriptors and pure python (https://github.com/protocolbuffers/protobuf/commit/4214ee72ef72bca42048f0289a755711d0d2d8d4)
* Nextgen Proto Pythonic API: Add byte_size(), clear_message() and clear_field() APIs in proto module (https://github.com/protocolbuffers/protobuf/commit/975bb07baa9bf65d81a82a75240f55899195335d)
* Nextgen Proto Pythonic API: “Add-on” proto for Text Format serialize/parse (https://github.com/protocolbuffers/protobuf/commit/e9fa879813e6ba2bc88f209028f790a455089577)
* Fix bug that DiscardUnknownFields did not discard unknown fields of extensions in Py-upb and Php-upb and ruby-upb. (https://github.com/protocolbuffers/protobuf/commit/98aab04c0bf846ad6b4af339d9dbc5cf77d6c03c)
* Remove the entire pb_unit_tests/ directory with reflection_test_wrapper. (https://github.com/protocolbuffers/protobuf/commit/39808bc55d577d48238bc1b0ed8d76df7d724385)
* Performance optimization for upb python extend repeated scalars. (https://github.com/protocolbuffers/protobuf/commit/6c3ff5aa9eba8fd78f8b52afe98df11c1fb85ad2)
* Ensure protobuf Message.__dir__ returns proto fields (https://github.com/protocolbuffers/protobuf/commit/1803f8bf28a0b61be8869d333bfd70171861e673)
* Breaking change: Fix closed enum validation under editions (https://github.com/protocolbuffers/protobuf/commit/72b3eda2ec385863d7416f067f6cd0cefeed72bb)
* Make python text-format reject octal floats (https://github.com/protocolbuffers/protobuf/commit/8f2ad123b8b0e5c40148b44d48a834032fae64d5)
* Treat -0.0 as consistently distinct from 0.0 in pure python (https://github.com/protocolbuffers/protobuf/commit/bc16fe8921889319f9d617167ab470043125be4a)
* Remove decoder.SkipField. (https://github.com/protocolbuffers/protobuf/commit/1b0b1c9ba005e85292cf597de6bcb64c69eeb23a)
* Make Pure Python reject unmatched end-group tag in unknown fields (https://github.com/protocolbuffers/protobuf/commit/f69ea1cc48191534c3450a1053f3741250274eca)
* Make Python/C++ reject unmatched end-group tag. (https://github.com/protocolbuffers/protobuf/commit/482752a78aa9545693a82de49be2311a7a263a3a)
* Override protobuf Message.__dir__ method (https://github.com/protocolbuffers/protobuf/commit/9668016fc2304c541c06c4e76d9d643200a9cba0)
* Add "absl::StatusOr<PythonConstMessagePointer> GetConstMessagePointer(PyObject* msg)" in proto_api which works with cpp extension, upb and pure python. (https://github.com/protocolbuffers/protobuf/commit/b9e69e8c11ecb87249b0cbf772911e2c3a80971b)
* Fix a python bug that UPB and Python C++ extension assume MessageSet extensions are ordered first (https://github.com/protocolbuffers/protobuf/commit/3781f45f390935001a7f1be6c20171f6fba0f56c)
* Drop Python 3.8 support (https://github.com/protocolbuffers/protobuf/commit/f5a293768fcb480ac577e703d576f333f66ab80c)
* Fix a python bug for text_format pretty print when Struct in Any (https://github.com/protocolbuffers/protobuf/commit/d3e9897b037a81d3a024d0af0c3626724286534d)
* Support tuples when parsing JSON dicts (https://github.com/protocolbuffers/protobuf/commit/75bb72e0d5f78b7e55d9be255a5f0a2b897ac311)
* Breaking change: Python nested message class __qualname__ now contains the outer message name. (Previous __qualname__ has the same result with __name__ for nested message that outer message name was not included) (https://github.com/protocolbuffers/protobuf/commit/0720536eca20ca2f801127869d7f1211bceb3865)
* Breaking change: Python setdefault behavior change for map field. (https://github.com/protocolbuffers/protobuf/commit/81da6b999a8229942436f6c203a20633c65ebd26)
* Fix a Python bug: when package is empty, DescriptorDatabase FindFileContainingSymbol method will able to find symbol names not start with '.' (https://github.com/protocolbuffers/protobuf/commit/610702ed18d4323e44b9741102ed90377243470e)
* Use ABSL_PREDICT_TRUE|FALSE instead of PROTOBUF_PREDICT_TRUE|FALSE. (https://github.com/protocolbuffers/protobuf/commit/fd477301f8c4c76f61c2b9e323f77a824d733174)
* Breaking change: Remove deprecated GetPrototype MessageFactory.GetPrototype(), (https://github.com/protocolbuffers/protobuf/commit/c261b49a9575226efc9e5d269f6e5319a05d526e)
* Breaking change: Remove deprecated GetDebugString() from protobuf python cpp extension. (https://github.com/protocolbuffers/protobuf/commit/721a45265b4e1d0f18d6775a0f1bafffdfc3088e)
* Add Python 3.13 test coverage (https://github.com/protocolbuffers/protobuf/commit/7060d3d7232096eae2188c61ad6ddfdf87a06f31)
* Fix a python bug when assign an empty Struct at creation. (https://github.com/protocolbuffers/protobuf/commit/47613cf7ad4180f5e7b4ba6324a95288e8383840)
* Add "PythonMessageMutator GetClearedMutableMessage(PyObject *);" in proto_api which works with cpp extension, upb and pure python. (https://github.com/protocolbuffers/protobuf/commit/5706140e09856a80cb02dc3947981c595f74dbf2)
* Breaking change: Remove deprecated reflection methods (https://github.com/protocolbuffers/protobuf/commit/292f9646797d9e23fc66ba70fbda5903f2301ff0)
* Breaking change: Remove deprecated Python RPC Service Interfaces (https://github.com/protocolbuffers/protobuf/commit/5ba74b11e8d2bd5e9b22e972beb572668bf6191c)
* Fix pyi generation for messages with a field named "self" (https://github.com/protocolbuffers/protobuf/commit/fa858b82d2eea36ce5cb370f1ae30ce2e82c022e)

PHP
* Handle optional fields correctly in Message_get method (18982) (https://github.com/protocolbuffers/protobuf/commit/f1aa92a5f5b2c0ebf4711c126877d5339fd55f4b)
* Delete long-deprecated internal descriptor.proto gencode forwards. (https://github.com/protocolbuffers/protobuf/commit/cf9b7747da525bb26ce0250bde09c5db08b247cc)
* Restore runtime compatibility with 3.22.x gencode by re-adding the mutableCopy(list) methods. (https://github.com/protocolbuffers/protobuf/commit/6628b8a3dc6ba6d3d0bc0523204f12a7c39f18e4)

PHP C-Extension
* Add `to_proto` to descriptor classes (19971) (https://github.com/protocolbuffers/protobuf/commit/74122ebb378cc638350060b99eaf47d5d8e7eec1)
* Fix bug that DiscardUnknownFields did not discard unknown fields of extensions in Py-upb and Php-upb and ruby-upb. (https://github.com/protocolbuffers/protobuf/commit/98aab04c0bf846ad6b4af339d9dbc5cf77d6c03c)
* Raise ParseError for non-numeric strings in numeric fields in Ruby and PHP JSON parsing. (https://github.com/protocolbuffers/protobuf/commit/abb197cb6124f3fa3c235be906e7bf7f04769b11)
* Handle optional fields correctly in Message_get method (18982) (https://github.com/protocolbuffers/protobuf/commit/f1aa92a5f5b2c0ebf4711c126877d5339fd55f4b)
* Restore runtime compatibility with 3.22.x gencode by re-adding the mutableCopy(list) methods. (https://github.com/protocolbuffers/protobuf/commit/6628b8a3dc6ba6d3d0bc0523204f12a7c39f18e4)
* *See also UPB changes below, which may affect PHP C-Extension.*

Ruby
* Add `to_proto` to descriptor classes (19971) (https://github.com/protocolbuffers/protobuf/commit/74122ebb378cc638350060b99eaf47d5d8e7eec1)
* Support ruby 3.4 (19752) (https://github.com/protocolbuffers/protobuf/commit/4a92a1c9bffa4ee8d77ec25364d914c47662565c)
* Breaking change: Upgrade return type of several string returning functions to `absl::string_view`. (https://github.com/protocolbuffers/protobuf/commit/d1990d968a54176eb9f4229abe7f7c97ece50cec)
* Add a multi-platform Gemfile.lock (19804) (https://github.com/protocolbuffers/protobuf/commit/56f318dc8269cf15e26807f19349be569942e3d0)
* Fix ruby `has_...?` method (19731) (https://github.com/protocolbuffers/protobuf/commit/4031c195f1254f06280c7f4e694368d83dc3de4b)
* Raise ParseError for non-numeric strings in numeric fields in Ruby and PHP JSON parsing. (https://github.com/protocolbuffers/protobuf/commit/abb197cb6124f3fa3c235be906e7bf7f04769b11)
* Error if assigning a "UTF-8" string with invalid UTF-8. (https://github.com/protocolbuffers/protobuf/commit/2f505a7aa1c7012d3867caa012c310b5da4c33d2)
* Third_party/utf8_range: support arm neon (18126) (https://github.com/protocolbuffers/protobuf/commit/d83ad15cd15f71f18f67ca3b2d774ede280c5117)

Ruby C-Extension
* Add `to_proto` to descriptor classes (19971) (https://github.com/protocolbuffers/protobuf/commit/74122ebb378cc638350060b99eaf47d5d8e7eec1)
* Ruby: make it possible to specify compiler for C extension (19863) (https://github.com/protocolbuffers/protobuf/commit/b46f315c8dab71dfb1d805a3e94f1feccda1f1f4)
* Fix bug that DiscardUnknownFields did not discard unknown fields of extensions in Py-upb and Php-upb and ruby-upb. (https://github.com/protocolbuffers/protobuf/commit/98aab04c0bf846ad6b4af339d9dbc5cf77d6c03c)
* Fix ruby `has_...?` method (19731) (https://github.com/protocolbuffers/protobuf/commit/4031c195f1254f06280c7f4e694368d83dc3de4b)
* Raise ParseError for non-numeric strings in numeric fields in Ruby and PHP JSON parsing. (https://github.com/protocolbuffers/protobuf/commit/abb197cb6124f3fa3c235be906e7bf7f04769b11)
* Error if assigning a "UTF-8" string with invalid UTF-8. (https://github.com/protocolbuffers/protobuf/commit/2f505a7aa1c7012d3867caa012c310b5da4c33d2)
* Update minimum supported macOS 11 (https://github.com/protocolbuffers/protobuf/commit/9f1b38e8a1fea7d0f95c053cf72c1051bc3daf89)
* *See also UPB changes below, which may affect Ruby C-Extension.*

UPB (Python/PHP/Ruby C-Extension)
* Add `to_proto` to descriptor classes (19971) (https://github.com/protocolbuffers/protobuf/commit/74122ebb378cc638350060b99eaf47d5d8e7eec1)
* Randomize upb's map ordering (https://github.com/protocolbuffers/protobuf/commit/066531df73264fa1436a3f2ad6dff1746baffc26)
* Fix bug that DiscardUnknownFields did not discard unknown fields of extensions in Py-upb and Php-upb and ruby-upb. (https://github.com/protocolbuffers/protobuf/commit/98aab04c0bf846ad6b4af339d9dbc5cf77d6c03c)
* Add three conformance test edge cases for ProtoJSON repr of Any (https://github.com/protocolbuffers/protobuf/commit/b985164e7cd075711817a02392c61fd85c74d992)
* Breaking change: Fix closed enum validation under editions (https://github.com/protocolbuffers/protobuf/commit/72b3eda2ec385863d7416f067f6cd0cefeed72bb)
* Raise ParseError for non-numeric strings in numeric fields in Ruby and PHP JSON parsing. (https://github.com/protocolbuffers/protobuf/commit/abb197cb6124f3fa3c235be906e7bf7f04769b11)
* Fix issue where a tmp buffer could have been too small when handling a serialized FeatureSet. (https://github.com/protocolbuffers/protobuf/commit/eb8a34d22dc10847ea1ef4ae1da88b480fa7f3c3)
* Fixed comparison of empty repeated/map extensions. (https://github.com/protocolbuffers/protobuf/commit/a79fbc9d32723a383813f6be4791ddaed09a8d6c)
* Fix a python bug that UPB and Python C++ extension assume MessageSet extensions are ordered first (https://github.com/protocolbuffers/protobuf/commit/3781f45f390935001a7f1be6c20171f6fba0f56c)
* Support fetching CMake dependencies via `-Dprotobuf_FETCH_DEPENDENCIES=ON` (https://github.com/protocolbuffers/protobuf/commit/d3735bc2a0ae3f0b69f668e6a0c9108d0e92fdfa)

Other
* Move to bazel 7 and turn down support for bazel 6. (https://github.com/protocolbuffers/protobuf/commit/afe2de261861717026c3b57ec83678590d5de838)
* Remove Protobuf-C++.podspec release. (https://github.com/protocolbuffers/protobuf/commit/b204518c5f851f0422ac6ebef7c2dfc8ece88696)
* Breaking change: Remove deprecated py_proto_library macro. (https://github.com/protocolbuffers/protobuf/commit/1e8e356b888eb5e7125c7fe0743f402447db14bc)
* Upgrade minimum version of macOS support to macOS 10.15 (Catalina). (https://github.com/protocolbuffers/protobuf/commit/67fca5cb705c6a5f066be594e14f5c57e9dbbe55)
* Breaking change: Update major version numbers for C++ and Python. (https://github.com/protocolbuffers/protobuf/commit/4997f3d070e3ce49f1be3e2df2f2aa9f5272ef46)
* Update protoc release to include editions language features proto for Go (https://github.com/protocolbuffers/protobuf/commit/353d726bbc28c0972b150c92067818bd626281f4)
* [ObjC] Breaking Change: Raise the major version for next release. (https://github.com/protocolbuffers/protobuf/commit/213bb61292287ce90400141e90818d42220370e1)
* Bump `rules_rust` to 0.51 to fix 18546 (https://github.com/protocolbuffers/protobuf/commit/9dad0b9cd418975e03b93ab1a73d6f36bacfdec8)

29.4

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

Java
* Fix Java concurrency issue in feature resolution for old <=3.25.x gencode using lazy feature resolution. (20750) (https://github.com/protocolbuffers/protobuf/commit/ce5990778f1196b0eb57088be54957cbd55d0c3e)

Page 1 of 31

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.