This version includes breaking changes to: C++, Objective-C, PHP, Python.
[Bazel] Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb)
[C++] Make generator headers private (https://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e)
[C++] Add a debug check that the target of CopyFrom is not a descendant of the source. (https://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1)
[C++] Add [[nodiscard]] to many APIs. (https://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738)
[C++] Make the arena-enabled constructors of RepeatedField, RepeatedPtrField, and Map private. (https://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336)
[C++] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292)
[C++] Removes proto2::util::MessageDifferencer::AddIgnoreCriteria that takes a raw pointer as an argument in favor of the overload that takes a unique_ptr. Remove macro PROTOBUF_FUTURE_REMOVE_ADD_IGNORE_CRITERIA (https://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae)
[C++] Remove deprecated FieldDescriptor::has_optional_keyword() in OSS. Use is_repeated() or has_presence() instead (https://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8)
[C++] Remove AddUnusedImportTrackFile() and ClearUnusedImportTrackFiles(). Remove PROTOBUF_FUTURE_RENAME_ADD_UNUSED_IMPORT (https://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536)
[C++] Remove deprecated FieldDescriptor::is_optional() in OSS. Use (!is_required() && !is_repeated()) instead (https://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af)
[ObjC] Fix nullability annotations on some GPB*Dictionary types. (https://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50)
[PHP] Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345, https://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6, https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345)
[PHP] Add PHP typehints for setters and remove redundant GPBUtil checks (https://github.com/protocolbuffers/protobuf/pull/25296) (https://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd)
[PHP] support default values for editions/proto2 (https://github.com/protocolbuffers/protobuf/pull/25161) (https://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17)
[Python] Raise errors in OSS when assign bool to int/enum field in Python Proto. (https://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c)
[Python] Remove float_format/double_format from python proto text_format (https://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488)
[Python] Raise TypeError when convert non-timedelta to Duration, or convert non-datetime to Timestamp in python proto. (Original code may raise ArributeError) (https://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c)
[Python] Remove float_precision from python proto json_format (https://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5)
[Python] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292)
Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Migration Guide may include additional guidance for breaking changes.
Bazel
Fix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (#25168) (https://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9)
Breaking change: Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb)
Feat(bazel): wire up prebuilt protoc toolchain (#24115) (https://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6)
Ruby codegen: support generation of rbs files (#15633) (https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d)
Avoid collision name problems between a message named Xyz and a direct sibling enum named XyzView (https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1)
Generalizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0)
Fix a bug with custom features outside of the pb package. (https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8)
Fix import option handling when include_imports isn't set. (https://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e)
Fix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f)
Prevent accidental stripping of debug_redact options via import option. (https://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28)
Add conformance tests for utf8 validation. (https://github.com/protocolbuffers/protobuf/commit/e8923a8ea72d5573f0380030a482ba440b5eb2dc)
Disable constinit on MSVC for static library builds (https://github.com/protocolbuffers/protobuf/commit/783da0a9407f6bf890455e5ba05e861df11f600f)
Breaking change: Make generator headers private (https://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e)
Add bounds checking to ExtractSubrange. (https://github.com/protocolbuffers/protobuf/commit/5687acc54cab007591b60d23e7f055209df03eac)
This CL starts failing on [unverified_lazy = true] on extensions, which have been (https://github.com/protocolbuffers/protobuf/commit/d2a42e74b9ee7d7a11c5bca95ab7b49c0d4fea27)
Refine the conditions for the MSVC constinit workaround (https://github.com/protocolbuffers/protobuf/commit/38927bf2b93a42e2a155b49f9d610c70cc5942ec)
Add conformance test cases about handling of google.protobuf.Empty inside any Any in JSON. (https://github.com/protocolbuffers/protobuf/commit/0f3dd063c6fd301cb73c3148f8ac7b570f773e94)
Remove PROTOBUF_CONSTEXPR to unconditionally use constexpr (https://github.com/protocolbuffers/protobuf/commit/7f431bb54a7659725c1b5668a83c7c400ac90026)
Add bounds checking to DeleteSubrange, create new helper, RuntimeAssertInBoundsGE, and modify LogIndexOutOfBoundsAndAbort to customize the message being logged. (https://github.com/protocolbuffers/protobuf/commit/71cc97ce5a81549312d77f62c85024851702b313)
Fix issue where BinaryToJson a Skip()'s failure on unknown fields was ignored instead of resulting in a parse failure. (https://github.com/protocolbuffers/protobuf/commit/2ec322ed576f0610b94f43cc9a98211058a93770)
Breaking change: Add [[nodiscard]] to many APIs. (https://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738)
Abort on out of bounds accesses. (https://github.com/protocolbuffers/protobuf/commit/3acf23cce5aac088a7c6585484a8b38c48448255)
Fix JSON printing of Any of an empty message in C++Proto. (https://github.com/protocolbuffers/protobuf/commit/014f676e8898e0e47919911cb759094acf607236)
Breaking change: Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292)
Generalizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0)
Breaking change: Remove deprecated FieldDescriptor::has_optional_keyword() in OSS. Use is_repeated() or has_presence() instead (https://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8)
Test that all entity names have some limit, and that passing that limit will (https://github.com/protocolbuffers/protobuf/commit/2afb0dc390eae546056fb5b3c67b6c015b7b2617)
Breaking change: Remove deprecated FieldDescriptor::is_optional() in OSS. Use (!is_required() && !is_repeated()) instead (https://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af)
Breaking change: Remove AddUnusedImportTrackFile() and ClearUnusedImportTrackFiles(). Remove PROTOBUF_FUTURE_RENAME_ADD_UNUSED_IMPORT (https://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536)
Breaking change: Removes proto2::util::MessageDifferencer::AddIgnoreCriteria that takes a raw pointer as an argument in favor of the overload that takes a unique_ptr. Remove macro PROTOBUF_FUTURE_REMOVE_ADD_IGNORE_CRITERIA (https://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae)
Mark mutable repeated fields/maps as [[nodiscard]] (https://github.com/protocolbuffers/protobuf/commit/bc60e2e8077867eaf9bcc65e42d6d36a7a959a5d)
Apply [[nodiscard]] to constant, non-message accessors. (https://github.com/protocolbuffers/protobuf/commit/46575f0e8d1e16aec817e77711561a983aa13355)
Add [[nodiscard]] to many const methods of Message/Reflection. (https://github.com/protocolbuffers/protobuf/commit/8c981b87ac0902c761920e9d3270242afe63ef31)
Fix a bug with custom features outside of the pb package. (https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8)
Delete safe_boundary_check as this now supported via build flag, --//third_party/protobuf:bounds_check_mode. (https://github.com/protocolbuffers/protobuf/commit/3079d15176586dff25a2ea43c60921404b2dda2a)
Add [[nodiscard]] to const message field accessors. (https://github.com/protocolbuffers/protobuf/commit/60f60d0614fca0787f52484159cc7bf8df321e8a)
CMake: Stop building tests by default (related to #20539) (#24373) (https://github.com/protocolbuffers/protobuf/commit/88261aab23498a853d63dfd008545f3ae6cfe86d)
Add nodiscard to has_/_size accessors. (https://github.com/protocolbuffers/protobuf/commit/40fe103a798b52dc0c3072d249e766063db241ac)
Enable removed arena pointers from all fields. (https://github.com/protocolbuffers/protobuf/commit/1f3fe2eeb79f79fe16d6e8f870acddbf19a4d8ee)
Fix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f)
Breaking change: Add a debug check that the target of CopyFrom is not a descendant of the source. (https://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1)
Breaking change: Make the arena-enabled constructors of RepeatedField, RepeatedPtrField, and Map private. (https://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336)
Update AddAlreadyReserved/AddNAlreadyReserved to use the runtime bounds checks. (https://github.com/protocolbuffers/protobuf/commit/b8e690a381da9d2f1c55ddd044f2e50ac6db5921)
Use __builtin_operator_new to faciliate compiler optimizations of these allocs. (https://github.com/protocolbuffers/protobuf/commit/4624d8120afd4a71f8ada0ff66cceb04d45d5409)
Add has_default_instance() to ImplicitWeakTypeHandler (https://github.com/protocolbuffers/protobuf/commit/818b8efbaa200bcdbac329930fef4cc3ec70441a)
Add a macro to make RepeatedField(Arena*) constructor private in a future release. (https://github.com/protocolbuffers/protobuf/commit/b39f10c4a29d1a3d02906750cac889c4b1b5ee7c)
Use __builtin_operator_new to faciliate compiler optimizations of these allocs. (https://github.com/protocolbuffers/protobuf/commit/195da19b9617eb8da9716db7408cb987faec9085)
Optimize TextFormatEscaper to just return the String input if it didn't need any escaping. (https://github.com/protocolbuffers/protobuf/commit/e5362043d3938208e5d469e0d2116746eb0b9e09)
Adding deprecation comment when isInitialized() accessor is deprecated (https://github.com/protocolbuffers/protobuf/commit/2732c601605ef6085ab11e7ca9e5a88531a1f66f)
Deprecating isInitialized() if there aren't required fields (https://github.com/protocolbuffers/protobuf/commit/260759508eced9f0d2a0a6b22734c691c1d834a5)
Avoid skipping descriptors with option dependencies (https://github.com/protocolbuffers/protobuf/commit/1bc2c6352acadf5192c53fce4755553b656360e9)
Remove PROTOBUF_CONSTEXPR to unconditionally use constexpr (https://github.com/protocolbuffers/protobuf/commit/7f431bb54a7659725c1b5668a83c7c400ac90026)
Correctly apply JSON recursion limit when parsing an Any-of-Any. (https://github.com/protocolbuffers/protobuf/commit/33b16e8302d9aae1f4838296443bfebbac5b4978)
Avoid potential exceptions on serialize in the face of malformed lazy extensions. (https://github.com/protocolbuffers/protobuf/commit/531c644c7d2dee3e57e25025fcd6be19191eb5c2)
Remove unused canUseUnsafe() protected method from GeneratedMessage (https://github.com/protocolbuffers/protobuf/commit/1041d6274fa07625f17eb5b574daf624b423c9e9)
Apply [[nodiscard]] to constant, non-message accessors. (https://github.com/protocolbuffers/protobuf/commit/46575f0e8d1e16aec817e77711561a983aa13355)
Add check if sun.misc.Unsafe is present but throws on use, to use the preexisting no-Unsafe paths if it does. (https://github.com/protocolbuffers/protobuf/commit/35149013bfce328da702fee003fff9e69c9e3ba4)
Fix a bug with custom features outside of the pb package. (https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8)
Expose NestedInFileClass naming helpers for Java immutable. (https://github.com/protocolbuffers/protobuf/commit/0c485521586958c5b486954fb4eb1d3028688ea5)
Add nodiscard to has_/_size accessors. (https://github.com/protocolbuffers/protobuf/commit/40fe103a798b52dc0c3072d249e766063db241ac)
Remove defunct protected mergeFromAndMakeImmutableInternal method. This method was planned to be used by gencode but was never used in practice. (https://github.com/protocolbuffers/protobuf/commit/57770eb7b7bc75be576cd980cdd08b8579c75731)
Fix bugs in Java Large Enums that have aliased values, and improve performance of valueOf / forNumber. (https://github.com/protocolbuffers/protobuf/commit/57338e8c6df24817f4d0fbaa30eb51f45751d59b)
Mark com.google.protobuf.Protobuf.registerSchema as private (https://github.com/protocolbuffers/protobuf/commit/db16bca5e83cb81bf75851cdb8e51864c38e2ac7)
Remove "public" from methods in com.google.protobuf.Protobuf (https://github.com/protocolbuffers/protobuf/commit/f50c425568b1586738f5ed55211b09a2c32250c8)
Fix large java enums not being honored on lite runtime. (https://github.com/protocolbuffers/protobuf/commit/ec3c8a7856642c692b4685e2e0965d93141651ff)
Csharp
Fix: apply recursion limits when parsing JSON well-known types with deep arrays (https://github.com/protocolbuffers/protobuf/commit/c3ddacbd2e67af0f7bbd463ebbe3db814bd5291b)
Objective-C
Adds support for 3 modes for proto extension generation: (https://github.com/protocolbuffers/protobuf/commit/0bc41927e92cff886cd306a3545628c713cd27e5)
Emit hassers for oneofs in objectivec. (https://github.com/protocolbuffers/protobuf/commit/2aae07eafa173b4d0177f11a3ede2ae33e777562)
Breaking change: Fix nullability annotations on some GPB*Dictionary types. (https://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50)
Rust protobuf: use crate name aliases to disambiguate generated dependencies (https://github.com/protocolbuffers/protobuf/commit/1f07ec66e374071f0f58a4a25590a51b3a8a719e)
Avoid collision name problems between a message named Xyz and a direct sibling enum named XyzView (https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1)
Mark MessageMut trait as + Send (https://github.com/protocolbuffers/protobuf/commit/bc517b9b92aa47fd2cf476ae0c246fdbca8e312e)
Protobuf-rust: adapt for rules_rust 0.67 (https://github.com/protocolbuffers/protobuf/commit/eb8d34e4d244d7a3ee274874dd55159840281212)
Adapt for rules_rust 0.66.0. (https://github.com/protocolbuffers/protobuf/commit/adb1957e315c3187fe844b7b31189d0dbd035b96)
Expose protobuf::message_eq() free function on the Rust Protobuf runtime api. (https://github.com/protocolbuffers/protobuf/commit/cfa8f677592a11651959105b5286c26b4fa76688)
See also UPB changes below, which may affect Rust.
Python
Prevent crashes when creating objects during interpreter shutdown (https://github.com/protocolbuffers/protobuf/commit/46061cb99d68d8fc0c46833b0ea8cee410bebbb8)
Drop Python 3.9 support (https://github.com/protocolbuffers/protobuf/commit/bbc9dd9e8a1bc669c8ca8cd2bd85a42bc4154255)
Breaking change: Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292)
Support more chars in type URLs in the Python text-format parser. (https://github.com/protocolbuffers/protobuf/commit/4459a202053881e6e7ab0badd515b124be626ba3)
Breaking change: Raise errors in OSS when assign bool to int/enum field in Python Proto. (https://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c)
Breaking change: Remove float_format/double_format from python proto text_format (https://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488)
Two new functions in PyProto_API to manage DescriptorPools (https://github.com/protocolbuffers/protobuf/commit/59f2a6e145065b23ea72039e57a2c7d8a6b04246)
Python Proto scalar repeated numpy binding. (https://github.com/protocolbuffers/protobuf/commit/1eb4e5290a66ff387914f80925936d275453014f)
Python Proto Free Threading tests/experimental (https://github.com/protocolbuffers/protobuf/commit/b8bef14b3c262d48bc9d6458d4de11532dca8247)
Add Python 3.14 test coverage (https://github.com/protocolbuffers/protobuf/commit/8e3543177ef10c5967daeb12456ca9a1b2638942)
Put ABSL annotations back in descriptor (https://github.com/protocolbuffers/protobuf/commit/e2ddebe709ae045df876a93b0268cf459817a067)
Free threading compat - Only access interned_descriptors behind a mutex (https://github.com/protocolbuffers/protobuf/commit/13fe37f25f187b7a2e79faa962df6a69bdb3d5b8)
Breaking change: Remove float_precision from python proto json_format (https://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5)
Breaking change: Raise TypeError when convert non-timedelta to Duration, or convert non-datetime to Timestamp in python proto. (Original code may raise ArributeError) (https://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c)
Python: kwargs initialization would silently swallow some errors with repeated fields. (https://github.com/protocolbuffers/protobuf/commit/412d0a2f07e64d4123d3606b247db8789b0d5967)
Fix Python cpp memory crash when MergeFrom Oneof. (https://github.com/protocolbuffers/protobuf/commit/26d08d51b95fcaf8cfea9d1d12fba1ce3725502b)
PHP
Feat(php): Add PHP typehints for setters and remove redundant GPBUtil checks (#25296) (https://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd)
Raise minimum php version to 8.2.0. Drop tests for 8.1. (https://github.com/protocolbuffers/protobuf/commit/5d29dcaed075be6be00ddf669830fca7e5f0e941)
Feat(php): support default values for editions/proto2 (#25161) (https://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17)
Breaking change: Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345)
Automated rollback of commit 8f569de0baec06079a1bb6aa149215d369600975. (https://github.com/protocolbuffers/protobuf/commit/94fe944f49ff40db4a29050e98e184d06cd6cd6c)
Breaking change: Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead (https://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6)
Make PHPDoc for enum getters/setters correspond to enum class. (#24515) (https://github.com/protocolbuffers/protobuf/commit/996e04c5efe88c2f12317e70957931ad5211f128)
Add option for PHP to emit default values for JSON. (#23985) (https://github.com/protocolbuffers/protobuf/commit/6df6c8aace4d6097100558992b384077811f21e9)
Implement hasPresence helper in PHP, remove broken hasOptionalKeyword. (https://github.com/protocolbuffers/protobuf/commit/69efbc67c5a7aac7b2d66d88796895319af799d3)
PHP C-Extension
Raise minimum php version to 8.2.0. Drop tests for 8.1. (https://github.com/protocolbuffers/protobuf/commit/5d29dcaed075be6be00ddf669830fca7e5f0e941)
Feat(php): support default values for editions/proto2 (#25161) (https://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17)
Breaking change: Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345)
Automated rollback of commit 8f569de0baec06079a1bb6aa149215d369600975. (https://github.com/protocolbuffers/protobuf/commit/94fe944f49ff40db4a29050e98e184d06cd6cd6c)
Add option for PHP to emit default values for JSON. (#23985) (https://github.com/protocolbuffers/protobuf/commit/6df6c8aace4d6097100558992b384077811f21e9)
Implement hasPresence helper in PHP, remove broken hasOptionalKeyword. (https://github.com/protocolbuffers/protobuf/commit/69efbc67c5a7aac7b2d66d88796895319af799d3)
See also UPB changes below, which may affect PHP C-Extension.
Ruby
Ruby codegen: support generation of rbs files (#15633) (https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d)
Support Ruby 4.0 (#25051) (https://github.com/protocolbuffers/protobuf/commit/93f4eba2585a84ed26c29c6120a6d2ae37b68b60)
UPB (Python/PHP/Ruby C-Extension)
Add conformance tests for utf8 validation. (https://github.com/protocolbuffers/protobuf/commit/e8923a8ea72d5573f0380030a482ba440b5eb2dc)
Added more validations of syntax and edition when parsing descriptors. (https://github.com/protocolbuffers/protobuf/commit/4c5c4b2cd0049de2b2baa24b7441d039cf79d56e)
Fixes a compiler crash when building the Windows arm64 Ruby/Python extension (https://github.com/protocolbuffers/protobuf/commit/0e84323cd6fba27c7834b5596f3ef14b7e69e7b8)
Add BTI to branch targets when branch protection is enabled. This resolves (https://github.com/protocolbuffers/protobuf/commit/a3ca522fc5d9e364910dee60e1f30a945ebf6762)
Enable edition 2024 in upb generators (https://github.com/protocolbuffers/protobuf/commit/e44d4210ba0de96ef5c255ad3d04a74e75802c67)
Other
Drop Bazel 7 tests for bazel, python, partially java partially cpp. (https://github.com/protocolbuffers/protobuf/commit/b046c9a30e3c32084dd7732dc776624f9aa8121a)
Update protobuf's dep on bazel-skylib to version 1.9.0 (https://github.com/protocolbuffers/protobuf/commit/27e67a7e30811dfe6247de6915abaca9f0848e10)
Breaking change: Remove deprecated flag for enabling MSVC support (https://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7)
Protobuf: update php from macos-13 to macos-15-intel (https://github.com/protocolbuffers/protobuf/commit/7b9fecae659e31dd75e46b38ba422b498f3e4b65)
Bazel: Remove hardcoded dependency on //:protoc from language runtimes (#19679) (https://github.com/protocolbuffers/protobuf/commit/4986a7722460e3163f37c98da1cb47f52c6406e1)
Move ObjC to the next major version to be ready for release in 2026Q1. (https://github.com/protocolbuffers/protobuf/commit/31cadad0ed92060f5405de0f663181b2dc891f94)