# Protocol Buffers changelog > Language-neutral, platform-neutral extensible serialization. - Vendor: Google - Category: Frameworks & Libraries - Official site: https://protobuf.dev - Tracked by: What's New (https://whatsnew.fyi/product/protobuf) - Harvested from: GitHub (protocolbuffers/protobuf) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v36.0-rc2 — Protocol Buffers v36.0-rc2 - Date: 2026-08-03 - Version: v36.0-rc2 - Original notes: https://github.com/protocolbuffers/protobuf/releases/tag/v36.0-rc2 - Permalink: https://whatsnew.fyi/product/protobuf/releases/v36.0-rc2 - Labels: Pre-release - **changed** — Disable option sub-location mapping in open-source builds - **added** — Add json_options.proto and json_enumvalue_options.proto and gencode derived from them to release artifacts - **added** — Implement json EnumValueName for upb - **deprecated** — Add deprecation warning for Reflection::GetEnum() and Reflection::GetRepeatedEnum() - **added** — Add json_name enumval support in Java - **deprecated** — Emit future warning when mutating GetOptions() in OSS - **deprecated** — Emit deprecation warning when comparing descriptor containers with unrecognized types in OSS - **changed** — Reject Edition 2026 in the PHP generator #### Announcements * [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. #### C++ * Disable option sub-location mapping in open-source builds. (https://github.com/protocolbuffers/protobuf/commit/1d8a656f5273a3b41afa609cf0f08b65491dbd48) * Add `json_options.proto` and `json_enumvalue_options.proto` and/or gencode derived from them to release artifacts (https://github.com/protocolbuffers/protobuf/commit/15e93345f8b821ad74334fd503318f8860b774bb) * Json/upb: Implement json EnumValueName for upb (https://github.com/protocolbuffers/protobuf/commit/0e8519e927101be180f12bc6f064dbf525c5d517) * Add deprecation warning for `Reflection::GetEnum()` and `Reflection::GetRepeatedEnum()`. (https://github.com/protocolbuffers/protobuf/commit/0bca2886d724d6782186ae970a0214b6fcc3e4e0) #### Java * Add `json_options.proto` and `json_enumvalue_options.proto` and/or gencode derived from them to release artifacts (https://github.com/protocolbuffers/protobuf/commit/15e93345f8b821ad74334fd503318f8860b774bb) * Json/java: add json_name enumval support (https://github.com/protocolbuffers/protobuf/commit/bff6ed13255054eb8425f75f3b3f00af961f753d) #### Python * Add `json_options.proto` and `json_enumvalue_options.proto` and/or gencode derived from them to release artifacts (https://github.com/protocolbuffers/protobuf/commit/15e93345f8b821ad74334fd503318f8860b774bb) * Emit future warning when mutating GetOptions() in OSS (https://github.com/protocolbuffers/protobuf/commit/22555418e7f3cc4e339134f0cbcea28931258ade) * Emit deprecation warning when comparing descriptor containers with unrecognized types in OSS (https://github.com/protocolbuffers/protobuf/commit/5865e6b18c04b9276c8aeed4ed011a645cf06777) #### PHP * Reject Edition 2026 in the PHP generator. (https://github.com/protocolbuffers/protobuf/commit/020b9dbf530de51603344f73c021db1f9da96dea) #### UPB (Python/PHP/Ruby C-Extension) * Json/upb: Implement json EnumValueName for upb (https://github.com/protocolbuffers/protobuf/commit/0e8519e927101be180f12bc6f064dbf525c5d517) ### v36.0-rc1 — Protocol Buffers v36.0-rc1 - Date: 2026-07-09 - Version: v36.0-rc1 - Original notes: https://github.com/protocolbuffers/protobuf/releases/tag/v36.0-rc1 - Permalink: https://whatsnew.fyi/product/protobuf/releases/v36.0-rc1 - Labels: Pre-release - **changed** — Make default_symbol_visibility STRICT in edition 2026 - **deprecated** — Add deprecation warnings for (py|cc|java)_generic_service - **fixed** — Disallow reserving field number INT_MAX - **added** — Add bazel targets for standalone plugin binaries - **added** — Add --_prefix cli option - **changed** — Enforce proto limits in the descriptor by default for EDITION_2026 - **fixed** — Apply path traversal guard to WriteAllToZip() matching WriteAllToDisk() - **added** — Add an enforce_proto_limits feature which will be implemented in Edition 2026 - **added** — Add Bazel 9 tests for csharp, hpb, objc, php, python, rust and upb - **fixed** — Validate Duration/Timestamp in TimeUtil::FromString against spec limits - **added** — Support assigning repeated scalar fields using Python Buffer API - **changed** — Use the direct map reflection API when converting message to JSON if the repeated field reflection is not valid - **changed** — Make GetOptions() return immutable options for scalar type in py/upb - **fixed** — Stop TextFormat iteration if output stream fails - **fixed** — Workaround for attribute handling bug in gcc < 13 - **fixed** — Fix confusing error message for map value type name conflicts - **changed** — Align C++Proto JSON behavior on the type.proto path with the descriptor.proto path - **changed** — Make Timestamps.parse() attempt non-lenient parsing first and warning if this fails - **added** — Add a warning for potential OneofDescriptor collisions prior to Q1 2027 breaking changes - **fixed** — Reject negative size in mergeDelimitedFrom #### Announcements * [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. #### Bazel * Chore: add a unit test for .github/release_prep.sh (#26247) (https://github.com/protocolbuffers/protobuf/commit/8ccb4faa9bb9a53eca7b46f2775b291a1e288b92) * Add Bazel9 test (https://github.com/protocolbuffers/protobuf/commit/90ad7e978849e11406eeb47baf228b099c5da9d0) * Bazel 9 tests for csharp, hpb, objc, php, python, rust and upb (https://github.com/protocolbuffers/protobuf/commit/f9e028f29fa83d0fcfb01c19ce0a4635e9beff5c) #### Compiler * Make default_symbol_visibility STRICT in edition 2026 (https://github.com/protocolbuffers/protobuf/commit/fcd68c563cf2be486622a118caaf8c5f3858f744) * Add deprecation warnings for (py|cc|java)_generic_service. (https://github.com/protocolbuffers/protobuf/commit/517be42cfe43c9e2c69f5ee40e437a9d8cbd3f99) * Disallow reserving field number INT_MAX. (https://github.com/protocolbuffers/protobuf/commit/933c522f9e9a09d30f370dc885640af248e52469) * Add bazel targets for standalone plugin binaries (#23919) (https://github.com/protocolbuffers/protobuf/commit/81880fad1673797b6326a91582b2bf77069d505d) * Feat: `--_prefix` cli option (#24824) (https://github.com/protocolbuffers/protobuf/commit/92dd27ccf0c5c674b48de48310e0ebf45d0d5b88) * Enforce proto limits in the descriptor by default for EDITION_2026. (https://github.com/protocolbuffers/protobuf/commit/d8520d93af2aadf99afcb5e17bfb99c14ad57364) * Fix: Apply path traversal guard to WriteAllToZip() matching WriteAllToDisk() (#27171) (https://github.com/protocolbuffers/protobuf/commit/28bef9809e4d1f5f3b6da2a4a26a3bd5b488136b) * Add an `enforce_proto_limits` feature which will be implemented in Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/5ddd5244f7a04539e59f97fbc0c0df02334d0b12) #### C++ * Migrate top-level protobuf unittest protos from Edition 2024 to Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/271ca53b50bebdb4b910563928b1f7f3d5c61990) * Util: validate Duration/Timestamp in TimeUtil::FromString against spec limits (#27443) (https://github.com/protocolbuffers/protobuf/commit/e33749537254d42895ef084e482faaba230fddc2) * Make default_symbol_visibility STRICT in edition 2026 (https://github.com/protocolbuffers/protobuf/commit/fcd68c563cf2be486622a118caaf8c5f3858f744) * Support assigning repeated scalar fields using Python Buffer API. (https://github.com/protocolbuffers/protobuf/commit/ea40f1d32a5e67b996ee487c1976e11535963cdc) * Automated rollback of commit c8c5974fa928bf5c8752462119128e5e07a07919. (https://github.com/protocolbuffers/protobuf/commit/21ccdec2ffc6c5d21e5eac8efbe4bf14fa0516ed) * Use the direct map reflection API when converting message to JSON, if the repeated field reflection is not valid. (https://github.com/protocolbuffers/protobuf/commit/e75aac33c3615d22d0cba61e8f9d92939a39a73f) * [py/upb] Make GetOptions() return immutable options for scalar type. UPB will raise a TypeError when options returned GetOptions() by is mutated. (https://github.com/protocolbuffers/protobuf/commit/403d429eab9355a861fd20c1ddecf34c065e3533) * Add bazel targets for standalone plugin binaries (#23919) (https://github.com/protocolbuffers/protobuf/commit/81880fad1673797b6326a91582b2bf77069d505d) * Fix(cpp): stop TextFormat iteration if output stream fails (#26237) (https://github.com/protocolbuffers/protobuf/commit/2718dd5f3dda891f7e0224e5f50aa946219499ff) * Enforce proto limits in the descriptor by default for EDITION_2026. (https://github.com/protocolbuffers/protobuf/commit/d8520d93af2aadf99afcb5e17bfb99c14ad57364) * Add an `enforce_proto_limits` feature which will be implemented in Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/5ddd5244f7a04539e59f97fbc0c0df02334d0b12) * Workaround for attribute handling bug in gcc < 13 (https://github.com/protocolbuffers/protobuf/commit/ba10a4e179fa6cd0cbe4597f6fd19c1b3442c5bd) * Fix co _[Truncated at 4000 characters — full notes: https://github.com/protocolbuffers/protobuf/releases/tag/v36.0-rc1]_ ### v35.1 — Protocol Buffers v35.1 - Date: 2026-06-11 - Version: v35.1 - Original notes: https://github.com/protocolbuffers/protobuf/releases/tag/v35.1 - Permalink: https://whatsnew.fyi/product/protobuf/releases/v35.1 - **added** — Add cord setters to repeated string fields in C++ - **changed** — Break protobuf dependency on Bazel's proto fragment and only respect the Starlark versions of --proto_toolchain_for* - **fixed** — Avoid undefined behavior in upb by switching to the XCT section to run constructors before compiler-generated initializers #### Announcements * [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. #### Bazel * Bazel 9 tests for csharp, hpb, objc, php, python, rust and upb (#27598) (https://github.com/protocolbuffers/protobuf/commit/4469e3840bfa69ee3bd21721b402ff28076ecbab) * Break protobuf dependency on Bazel's proto fragment. Only respect the Starlark versions of --proto_toolchain_for*. This is a breaking change from 35.0, but matches the behavior in 34.x. (https://github.com/protocolbuffers/protobuf/commit/1f99c52d771b86ca11274019c9b1a10280dd6050) #### C++ * Add cord setters to repeated string fields. (https://github.com/protocolbuffers/protobuf/commit/6efa174ec6d455a4404b37f997daa69770ddde8f) #### UPB (Python/PHP/Ruby C-Extension) * Avoid UB in upb by switching to the XCT section, which will run our constructors before the compiler-generated initializers. (https://github.com/protocolbuffers/protobuf/commit/c35b97728f4782343a37e590a3fd97c80fbadc55) ### v34.2 — Protocol Buffers v34.2 - Date: 2026-05-20 - Version: v34.2 - Original notes: https://github.com/protocolbuffers/protobuf/releases/tag/v34.2 - Permalink: https://whatsnew.fyi/product/protobuf/releases/v34.2 - **removed** — Remove unused dependency on aspect_bazel_lib - **fixed** — Workaround for attribute handling bug in gcc < 13 - **fixed** — Avoid theoretical overflow of uintptr_t in AddAllLinkedExtensions - **fixed** — Fixed two GCC-only issues around upb's generated extension registry #### Announcements * [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. #### Bazel * Remove unused dependency on aspect_bazel_lib (https://github.com/protocolbuffers/protobuf/commit/784a77f6e7705df26380980927623c38d67990be) #### C++ * Workaround for attribute handling bug in gcc < 13 (https://github.com/protocolbuffers/protobuf/commit/1a5c5c5d8a2292e73e82f8479e87266008b910c4) #### upb * Avoid theoretical overflow of uintptr_t in AddAllLinkedExtensions (https://github.com/protocolbuffers/protobuf/commit/08d520af12637296c7b902effdf351aa1fb30fa4) * Fixed two GCC-only issues around upb's generated extension registry (https://github.com/protocolbuffers/protobuf/commit/33debf38ec37fa93f8236c3bb7694f57e1eecb5a) ### v35.0 — Protocol Buffers v35.0 - Date: 2026-05-19 - Version: v35.0 - Original notes: https://github.com/protocolbuffers/protobuf/releases/tag/v35.0 - Permalink: https://whatsnew.fyi/product/protobuf/releases/v35.0 - **added** — Implement the Edition 2026 naming style enforcement feature to help prevent field name collisions - **added** — Add enum to enforce_naming_style feature to avoid field naming collisions in Edition 2026 - **added** — Add proto2::sort and stable_sort utilities optimized for Protobuf containers - **added** — Add proto2::erase and erase_if utilities optimized for Protobuf containers - **added** — Add native Abseil flag support to protobuf message types - **added** — Introduce Arena::UniquePtr and Arena::Ptr smart pointers to better manage memory - **added** — Introduce Singular trait for types which are allowed as simple fields - **changed** — Move protocopt flag out of the cc dir since it is not a c++-specific flag - **changed** — Change @protobuf//bazel/flags:prefer_prebuilt_proto flag to True - **changed** — Change _opt() accessors to return an std::Option instead of protobuf::Optional - **changed** — Make Message's trait bounds much better for generic use - **changed** — Improve the namespacing selected by rustc used for gencode types in errors - **changed** — Fully qualify scalar types in Kotlin/Native proto generator - **changed** — Extend Abseil flag support for enums to include std::vector - **fixed** — Mangle types named XyzView if there is any direct sibling named Xyz - **fixed** — Fail writing files in protoc CLI if any file output path is relative - **fixed** — Enhance ParseInfoTree to provide location of names and values - **fixed** — Add integer overflow check to RepeatedPtrField::MergeFrom - **fixed** — Add sanity check for ListFields reflection call - **fixed** — Fix edition 2024 visibility checking for service method input and output types - **fixed** — Fix data race in Python Free Threading by removing unnecessary SetHasBitForRepeated() call - **removed** — Drop support for Bazel 7 #### Announcements * [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. #### Bazel * Bazel 9 Support: Upgrade tests to Bazel 9 (https://github.com/protocolbuffers/protobuf/commit/3ee8d8a008a5696f61aa72327e2c4cf2ae068e00) * Moved `protocopt` flag out of the `cc` dir, since it is not a c++-specific flag. (https://github.com/protocolbuffers/protobuf/commit/325d8dca2ffdc658824aa6b05d825dcb86cca2cb) * Add support for bazel 9.x (#26201) (https://github.com/protocolbuffers/protobuf/commit/f08d70329211dfd74584c3761da5da5e32ab34f3) * Change @protobuf//bazel/flags:prefer_prebuilt_proto flag to True. (https://github.com/protocolbuffers/protobuf/commit/f9f32d28007ae692a494e70d6a5e808069938843) * Dropped support for Bazel 7. (https://github.com/protocolbuffers/protobuf/commit/181675806987071b1a9af6e22b881cf9c3dca73e) #### Compiler * Implement the Edition 2026 naming style enforcement feature. This will help prevent field name collisions. (https://github.com/protocolbuffers/protobuf/commit/ae0d964699968a13977ceabfe7ed0127e125c624) * Add enum to `enforce_naming_style` feature to avoid field naming collisions which will be implemented in Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/e4911a17241386611643972b977edaf2ce83468f) * Fail writing files in protoc CLI if any file output path is relative. (https://github.com/protocolbuffers/protobuf/commit/3bf2b07b2a77c8c8840031a3ef5867acf1b97f30) * Mangle types named `XyzView` if there is any direct sibling named `Xyz` (https://github.com/protocolbuffers/protobuf/commit/63d6ef01b0e669333dda6fd91728862725c38968) * Improve the namespacing selected by rustc used for gencode types in errors. (https://github.com/protocolbuffers/protobuf/commit/ce2eb733c7cb025c13a20735e8a8d005ba0fe19e) * Fully qualify scalar types in Kotlin/Native proto generator. (https://github.com/protocolbuffers/protobuf/commit/adc8d22a30cc8369d5976c8b2685374e938640a5) * Change _opt() accessors to return an std::Option instead of protobuf::Optional (https://github.com/protocolbuffers/protobuf/commit/6ced6127bc5fb4d65ae0cbfad7a5625d7aceab23) * Make Message's trait bounds much better for generic use (https://github.com/protocolbuffers/protobuf/commit/be1292fbe2fc84ad59b6365a7620625e30114181) * Support more chars in type URLs in the C++ text-format parser. (https://github.com/protocolbuffers/protobuf/commit/3a87c6c1fd7fdb7f88540bf3f378f53d3ca1f00d) * Validate Feature Support on Custom Options (https://github.com/protocolbuffers/protobuf/commit/34c1110d38f225b0edcb14db965d3a5130e3ab29) * Trait clarity effort: introduce `Singular` trait, for types which are allowed as simple fields (https://github.com/protocolbuffers/protobuf/commit/cdbfaf118e9906c8ca7c27b641a8abafbd129b0b) * Trait clarity improvement on Map traits (https://github.com/protocolbuffers/protobuf/commit/a8daa95057bab1ca7f62830a539dc549359df78f) #### C++ * Workaround for attribute handling bug in gcc < 13 (https://github.com/protocolbuffers/protobuf/commit/78dc67e4d598d4e2ec8929105eb2ddbb4bf50935) * Implement the Edition 2026 naming style enforcement feature. This will help prevent field name collisions. (https://github.com/protocolbuffers/protobuf/commit/ae0d964699968a13977ceabfe7ed0127e125c624) * Add enum to `enforce_naming_style` feature to avoid field naming collisions which will be implemented in Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/e4911a17241386611643972b977edaf2ce83468f) * Enhance ParseInfoTree to provide location of names and values. (https://github.com/protocolbuffers/protobuf/commit/1cb4fdb8eaaa60917cdbd23cf6f38fc5f1307054) * Add integer overflow check to RepeatedPtrField::MergeFrom. (https://github.com/protocolbuffers/protobuf/commit/cb5fe976f319683934d8153bdedb21355ab2e008) * Adding sanity check for `ListFields` reflection call (https://github.com/protocolbuffers/protobuf/commit/555360e3b52f63e9a29d075c5e6900f7db7fd _[Truncated at 4000 characters — full notes: https://github.com/protocolbuffers/protobuf/releases/tag/v35.0]_ ### v35.0-rc2 — Protocol Buffers v35.0-rc2 - Date: 2026-05-07 - Version: v35.0-rc2 - Original notes: https://github.com/protocolbuffers/protobuf/releases/tag/v35.0-rc2 - Permalink: https://whatsnew.fyi/product/protobuf/releases/v35.0-rc2 - Labels: Pre-release - **changed** — Upgrade Bazel tests to support Bazel 9 - **fixed** — Workaround for attribute handling bug in gcc < 13 - **fixed** — Fixed two GCC-only issues around upb's generated extension registry - **fixed** — Avoid theoretical overflow of uintptr_t in AddAllLinkedExtensions #### Announcements * [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. #### Bazel * Bazel 9 Support: Upgrade tests to Bazel 9 (https://github.com/protocolbuffers/protobuf/commit/3ee8d8a008a5696f61aa72327e2c4cf2ae068e00) #### C++ * Workaround for attribute handling bug in gcc < 13 (https://github.com/protocolbuffers/protobuf/commit/78dc67e4d598d4e2ec8929105eb2ddbb4bf50935) #### UPB (Python/PHP/Ruby C-Extension) * Fixed two GCC-only issues around upb's generated extension registry. (https://github.com/protocolbuffers/protobuf/commit/5eca43d66df4253b2b18b4dd46399cf1fbd1a061) * Avoid theoretical overflow of uintptr_t in AddAllLinkedExtensions (https://github.com/protocolbuffers/protobuf/commit/e7785e0509aab295692061fb569c00645d3ef3a4) ### v35.0-rc1 — Protocol Buffers v35.0-rc1 - Date: 2026-04-20 - Version: v35.0-rc1 - Original notes: https://github.com/protocolbuffers/protobuf/releases/tag/v35.0-rc1 - Permalink: https://whatsnew.fyi/product/protobuf/releases/v35.0-rc1 - Labels: Pre-release - **changed** — Change @protobuf//bazel/flags:prefer_prebuilt_proto flag to True - **changed** — Move protocopt flag out of the cc dir since it is not a C++-specific flag - **added** — Add support for Bazel 9.x - **removed** — Drop support for Bazel 7 - **added** — Implement the Edition 2026 naming style enforcement feature to help prevent field name collisions - **added** — Add enum to enforce_naming_style feature to avoid field naming collisions which will be implemented in Edition 2026 - **changed** — Fail writing files in protoc CLI if any file output path is relative - **changed** — Mangle types named XyzView if there is any direct sibling named Xyz - **changed** — Improve the namespacing selected by rustc used for gencode types in errors - **changed** — Fully qualify scalar types in Kotlin/Native proto generator - **changed** — Change _opt() accessors to return an std::Option instead of protobuf::Optional - **changed** — Make Message's trait bounds much better for generic use - **changed** — Support more chars in type URLs in the C++ text-format parser - **changed** — Validate Feature Support on Custom Options - **added** — Introduce Singular trait for types which are allowed as simple fields - **changed** — Improve trait clarity on Map traits - **changed** — Enhance ParseInfoTree to provide location of names and values - **added** — Add integer overflow check to RepeatedPtrField::MergeFrom - **added** — Add sanity check for ListFields reflection call - **added** — Introduce Arena::UniquePtr and Arena::Ptr as smart pointers to better manage memory #### Announcements * **This version includes potential breaking changes without a major version bump to: Bazel.** * [Bazel] Change @protobuf//bazel/flags:prefer_prebuilt_proto flag to True. (https://github.com/protocolbuffers/protobuf/commit/f9f32d28007ae692a494e70d6a5e808069938843) * [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. #### Bazel * Moved `protocopt` flag out of the `cc` dir, since it is not a c++-specific flag. (https://github.com/protocolbuffers/protobuf/commit/325d8dca2ffdc658824aa6b05d825dcb86cca2cb) * Add support for bazel 9.x (#26201) (https://github.com/protocolbuffers/protobuf/commit/f08d70329211dfd74584c3761da5da5e32ab34f3) * Breaking change: Change @protobuf//bazel/flags:prefer_prebuilt_proto flag to True. (https://github.com/protocolbuffers/protobuf/commit/f9f32d28007ae692a494e70d6a5e808069938843) * Dropped support for Bazel 7. (https://github.com/protocolbuffers/protobuf/commit/181675806987071b1a9af6e22b881cf9c3dca73e) #### Compiler * Implement the Edition 2026 naming style enforcement feature. This will help prevent field name collisions. (https://github.com/protocolbuffers/protobuf/commit/ae0d964699968a13977ceabfe7ed0127e125c624) * Add enum to `enforce_naming_style` feature to avoid field naming collisions which will be implemented in Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/e4911a17241386611643972b977edaf2ce83468f) * Fail writing files in protoc CLI if any file output path is relative. (https://github.com/protocolbuffers/protobuf/commit/3bf2b07b2a77c8c8840031a3ef5867acf1b97f30) * Mangle types named `XyzView` if there is any direct sibling named `Xyz` (https://github.com/protocolbuffers/protobuf/commit/63d6ef01b0e669333dda6fd91728862725c38968) * Improve the namespacing selected by rustc used for gencode types in errors. (https://github.com/protocolbuffers/protobuf/commit/ce2eb733c7cb025c13a20735e8a8d005ba0fe19e) * Fully qualify scalar types in Kotlin/Native proto generator. (https://github.com/protocolbuffers/protobuf/commit/adc8d22a30cc8369d5976c8b2685374e938640a5) * Change _opt() accessors to return an std::Option instead of protobuf::Optional (https://github.com/protocolbuffers/protobuf/commit/6ced6127bc5fb4d65ae0cbfad7a5625d7aceab23) * Make Message's trait bounds much better for generic use (https://github.com/protocolbuffers/protobuf/commit/be1292fbe2fc84ad59b6365a7620625e30114181) * Support more chars in type URLs in the C++ text-format parser. (https://github.com/protocolbuffers/protobuf/commit/3a87c6c1fd7fdb7f88540bf3f378f53d3ca1f00d) * Validate Feature Support on Custom Options (https://github.com/protocolbuffers/protobuf/commit/34c1110d38f225b0edcb14db965d3a5130e3ab29) * Trait clarity effort: introduce `Singular` trait, for types which are allowed as simple fields (https://github.com/protocolbuffers/protobuf/commit/cdbfaf118e9906c8ca7c27b641a8abafbd129b0b) * Trait clarity improvement on Map traits (https://github.com/protocolbuffers/protobuf/commit/a8daa95057bab1ca7f62830a539dc549359df78f) #### C++ * Implement the Edition 2026 naming style enforcement feature. This will help prevent field name collisions. (https://github.com/protocolbuffers/protobuf/commit/ae0d964699968a13977ceabfe7ed0127e125c624) * Add enum to `enforce_naming_style` feature to avoid field naming collisions which will be implemented in Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/e4911a17241386611643972b977edaf2ce83468f) * Enhance ParseInfoTree to provide location of names and values. (https://github.com/protocolbuffers/protobuf/commit/1cb4fdb8eaaa60917cdbd23cf6f38fc5f1307054) * Add integer overflow check to RepeatedPtrField::MergeFrom. (https://github.com/protocolbuffers/protobuf/commit/cb5fe976f319683934d8153bdedb21355ab2e008) * Adding sanity check for `ListFields` reflection call (https://github.com/protocolbuffers/protobuf/commit/555360e3b52f63e9a29d075c5e6900f7db7fd _[Truncated at 4000 characters — full notes: https://github.com/protocolbuffers/protobuf/releases/tag/v35.0-rc1]_ ### v25.9 — Protocol Buffers v25.9 - Date: 2026-03-25 - Version: v25.9 - Original notes: https://github.com/protocolbuffers/protobuf/releases/tag/v25.9 - Permalink: https://whatsnew.fyi/product/protobuf/releases/v25.9 - **fixed** — Avoid toBigIntegerExact in JsonFormat to avoid degenerate parse behavior in the face of large exponents - **changed** — Switch the pre22 warning to use CopyOnWriteArraySet - **fixed** — Fix breakage in users of Python protobufs under NumPy 2.3rc1 - **changed** — Extend gencode compatibility support back to 3.20.0 #### Announcements * [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. #### Java * Avoid toBigIntegerExact in JsonFormat to avoid degenerate parse behavior in the face of large exponents. (#26435) (https://github.com/protocolbuffers/protobuf/commit/f125aa53d9fee9137411b4fe5e25270d36139fab) * Switch the pre22 warning to use CopyOnWriteArraySet. (#23976) (https://github.com/protocolbuffers/protobuf/commit/9822fb584f57dad3d8781d8cfb6013954bc4b2ac) #### Python * [numpy] Fix breakage in users of Python protobufs under NumPy 2.3rc1. (#22172) (https://github.com/protocolbuffers/protobuf/commit/a4508d4da5d82ac45692ea5a74bd7e2f922391f8) #### Other * Remove python from UPB / Windows tests (#26497) (https://github.com/protocolbuffers/protobuf/commit/73be936bc527069312519d9d56f5ba95857c92ed) * Fix failing tests in 25.x (#25198) (https://github.com/protocolbuffers/protobuf/commit/2418c40990fd578444f1794e856daedefd298db6) * Change setup-ruby and add new xcode version to build (https://github.com/protocolbuffers/protobuf/commit/9717aac2633e37135f57767061e1b29b4d4bb6b7) * Protobuf: update php from macos-13 to macos-15-intel (https://github.com/protocolbuffers/protobuf/commit/1d18bbd02da912a7e52171dafe783cafbccb4415) * Update GitHub Actions to use macOS-14 (again). (https://github.com/protocolbuffers/protobuf/commit/3c282a4ecac1f060c58e85afa9600413e3a9db24) * Update GitHub Actions to use macOS-14. (https://github.com/protocolbuffers/protobuf/commit/2e1a0ccf07c09d6160d5b3c96787409a2162a942) * Disable php tests (https://github.com/protocolbuffers/protobuf/commit/56f2fd2dd0f406072d168419f6e0afcc548a6050) * Fix merge conflict annotations (https://github.com/protocolbuffers/protobuf/commit/b7abd06d7ba6afd5e5c3e4c1d678584af1dc1f52) * Don't ignore platform requirements (https://github.com/protocolbuffers/protobuf/commit/a53de52c69bbc8c5552d89a23330eba3b566d4b4) * Upgrade setup-php to speed up PHP tests (#24408) (https://github.com/protocolbuffers/protobuf/commit/0f2128fe3efcad71dd631f4c63cab19e52243fb1) * Extend gencode compatibility support back to 3.20.0 (#22424) (https://github.com/protocolbuffers/protobuf/commit/6fbcb8724c63b92456d124344d4b16bcbaa8534b) * Update github major version tags to be formatted v..=10.5.62 <11.0.0" (https://github.com/protocolbuffers/protobuf/commit/7c0d2a2402eecf5d3196b7d6491ff8ad3b0a6203)