chore(deps): update dependency protoc to v29
This MR contains the following updates:
Package | Update | Change |
---|---|---|
protoc | major |
21.12 -> 29.2
|
View the Renovate pipeline for this MR
Release Notes
protocolbuffers/protobuf (protoc)
v29.2
: Protocol Buffers v29.2
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Automated rollback of commit
23aada2
. (#19692) (https://github.com/protocolbuffers/protobuf/commit/17726576c00d4509bc3552ec922de2399f6503fe) - Remove unused / invalid C++ lazy repeated field code from OSS. (#19682) (https://github.com/protocolbuffers/protobuf/commit/3649f873a3ff7c9d01653dfd67031ab2f9548df5)
Java
- Automated rollback of commit
23aada2
. (#19692) (https://github.com/protocolbuffers/protobuf/commit/17726576c00d4509bc3552ec922de2399f6503fe)
Other
- Export environment variables so bazelisk picks them up (#19690) (https://github.com/protocolbuffers/protobuf/commit/8b9d76c458bee6bd9e1d8edacace5b2aa7c5a4c7)
- Pin staleness check to Bazel 7 (#19689) (https://github.com/protocolbuffers/protobuf/commit/a1c9b6a2dbda0ab13037e60ac0d6edcef93aaab7)
- Remove CMake downgrade workaround from Windows CI tests (#19630) (https://github.com/protocolbuffers/protobuf/commit/3a7bb4a9904314cdc7c245209c94b8e975aef6f5)
v29.1
: Protocol Buffers v29.1
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Java
- Rename maven to protobuf_maven in MODULE.bazel (#18641) (#19477) (https://github.com/protocolbuffers/protobuf/commit/ba6da44dd0910910ea4aad90afc9ea0ae0afc9cf)
Kotlin
- Rename maven to protobuf_maven in MODULE.bazel (#18641) (#19477) (https://github.com/protocolbuffers/protobuf/commit/ba6da44dd0910910ea4aad90afc9ea0ae0afc9cf)
Python
- Revert "Remove deprecated service.py usages from test". For 29.x only (#19434) (https://github.com/protocolbuffers/protobuf/commit/5864b5078a0187a1a16d4d2ed6f55972511d0a94)
v29.0
: Protocol Buffers v29.0
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Bazel
- Add missing line to docstring after Args (#19213) (https://github.com/protocolbuffers/protobuf/commit/6f310d5d88585e6badf12620fb18e11242c5b838)
- Fix proto_info_bzl (#18918) (https://github.com/protocolbuffers/protobuf/commit/083de5faeb2d7a1940d1028c317a4a8bad60fe07)
- Use rules_cc everywhere in protobuf (https://github.com/protocolbuffers/protobuf/commit/ddadd0b3d674d775baa9ff4ab2f83ce369cca21d)
- Upgrade rules_cc to 0.0.13 (https://github.com/protocolbuffers/protobuf/commit/3dd483541ed66ceca3f4b876d938081c753ca5b7)
- Convert proto toolchain string to Label (https://github.com/protocolbuffers/protobuf/commit/aa181e28db6e5cc36580519b49a08d0ff7042dba)
- Prepare supporting targets for testing (https://github.com/protocolbuffers/protobuf/commit/a748b10c32365ead2641fd3a3ccfadfe04f3746b)
- Support --incompatible_enable_proto_toolchain_resolution (https://github.com/protocolbuffers/protobuf/commit/372ddb308be33fed837043a2446f7b2305dcb075)
- Move ProtoInfo and ProtoLangToolchainInfo from Bazel (https://github.com/protocolbuffers/protobuf/commit/426ca8a34a2871cbc777450b6d0c347a158217d7)
- Move java_{lite_}proto_library from Bazel repository (https://github.com/protocolbuffers/protobuf/commit/d77bdacc31294b930e16a0d3054c10cb28d601a0)
- Move proto_toolchain from rules_proto to protobuf (https://github.com/protocolbuffers/protobuf/commit/9f9cb7a10e5c49c2e81b8352292e4e84a5eb7cfa)
- Move proto_library from Bazel repository (https://github.com/protocolbuffers/protobuf/commit/3ff2cf05f341a2ebe9e4e79e59717f85cfd5d601)
- Move proto_common implementation from Bazel binary (https://github.com/protocolbuffers/protobuf/commit/b19fbe62bc4965b76f781fe632c2388a9974b9b4)
Compiler
- Begin adding extension numbers to SourceCodeInfo and FileDescriptorSet for tooling purposes. (https://github.com/protocolbuffers/protobuf/commit/07e489d98a4c445b0a9c56b07b195b258719ee82)
- Update protoc release to include editions language features proto for Go (#19013) (https://github.com/protocolbuffers/protobuf/commit/63d966b0d270cbebb4681c0d4c905031284e0d2b)
- Introduce lifetimes for individual feature values. (https://github.com/protocolbuffers/protobuf/commit/0b6e768f07c4cde376783b964022ec7e1ff3e772)
- Windows - Fix handling of utf8 command line arguments (#17854) (https://github.com/protocolbuffers/protobuf/commit/b9d1800df0f7ee41a7e24e2d16e31195eda6a698)
- Limit feature deprecation warnings to reduce noise. (https://github.com/protocolbuffers/protobuf/commit/5cd9a463f96478cc6203f02635368a7a8ecc22b3)
C++
- Fix C++ ifndef_guard printer to also convert "-" to "_". (https://github.com/protocolbuffers/protobuf/commit/7331b770978d55e6753a286187a511de86452e1a)
- Fix C++ codegen namespace printer to print closing namespaces in reverse order. (https://github.com/protocolbuffers/protobuf/commit/3bf9c400ec797b1b287bab3079e14b89995c8828)
- Fix raw_ptr.cc on exotic architectures (#18193) (https://github.com/protocolbuffers/protobuf/commit/63f6262c93edfef482011cfdc9df014e376ace69)
- Fix cord handling in DynamicMessage and oneofs. (https://github.com/protocolbuffers/protobuf/commit/9e8b30c2135944d9d3a6e53b70e534581e2dbe2b)
- Fix packed reflection handling bug in edition 2023. (https://github.com/protocolbuffers/protobuf/commit/4c923285a32ebcb53ce2ba03144e50d4dbedaf7b)
- Add JsonStreamToMessage method (https://github.com/protocolbuffers/protobuf/commit/0259cc3980a29945af19bf80225611ff84b7eece)
- Introduce lifetimes for individual feature values. (https://github.com/protocolbuffers/protobuf/commit/0b6e768f07c4cde376783b964022ec7e1ff3e772)
- Insert software prefetches into merge functions. This improves performance when hardware prefetchers are disabled on AMD machines. (https://github.com/protocolbuffers/protobuf/commit/d99336559ed897f18fee879f0e39811b26be4c0c)
- Insert software prefetches into proto parsing functions. This improves performance when hardware prefetchers are disabled on AMD platforms. (https://github.com/protocolbuffers/protobuf/commit/8aa0add7d3ca89bd94a029c48c3a92f7c366a073)
- Add prefetching of subsequent extensions in ExtensionSet::ForEach. (https://github.com/protocolbuffers/protobuf/commit/9b019ee2711fdeb29917bfb8c4c1292635c35aa7)
- Remove the AnyMetadata class and use free functions instead. (https://github.com/protocolbuffers/protobuf/commit/920d5c33d4d521e075d0418496379ff9d12f9cec)
- Add
[[deprecated]]
attribute when generating enums and classes. (https://github.com/protocolbuffers/protobuf/commit/23aada230b2478c7a07fe7612489eb8e79b9c379) - Use linear search instead of binary search in flat mode of ExtensionSet. (https://github.com/protocolbuffers/protobuf/commit/0ed61f0b15343d6450a55413748aa71a6ded0842)
- Prepare
MessageLite::GetTypeName
to be upgraded to return (https://github.com/protocolbuffers/protobuf/commit/30a8ef5008f9dec3f4270d3139a318099a7fc8ac) - Limit feature deprecation warnings to reduce noise. (https://github.com/protocolbuffers/protobuf/commit/5cd9a463f96478cc6203f02635368a7a8ecc22b3)
- Add Compiler Condition to use inline assembly optimizations with ARM64 for Compatibility with MSVC (#17671) (https://github.com/protocolbuffers/protobuf/commit/c5f623184dc91e5c5bc58adb91b93f24e4467282)
- Enable small object optimization (SOO) for RepeatedField in order to reduce data indirections. (https://github.com/protocolbuffers/protobuf/commit/e2525e6b365459f9183cb21815f74b4bba205481)
- Return backing array memory to arena in ExtensionSet. (https://github.com/protocolbuffers/protobuf/commit/5ac8ee1a2067d1abab015bdd64e8102af799cc74)
- In edition 2024,
Enum_Name(value)
functions returnabsl::string_view
by default. (https://github.com/protocolbuffers/protobuf/commit/e3fa6aac29f72e27f9db73db26fb71f24509ab7c) - Add Prefetchers to Proto Copy Construct to help address load misses (https://github.com/protocolbuffers/protobuf/commit/cdb723815b66e3bac2c9ca87dc9f8322488a6bc9)
- Reduced nesting in GenerateByteSize: slight readability improvements in generated code. (https://github.com/protocolbuffers/protobuf/commit/162a74067058a298ea1dc9ed7c0791b4c6abb69a)
- Introduce FieldDescriptor::cpp_string_type() API to replace direct ctype inspection which will be removed in the next breaking change (https://github.com/protocolbuffers/protobuf/commit/d0e49dfe3161714046a4ee2aeafba133b171e26f)
- Update the comment of TextFormat::Printer::RegisterMessagePrinter that the method takes ownerhip of the
printer
pointer. (https://github.com/protocolbuffers/protobuf/commit/d91116176642f24ef1b2c2431e7c5c3150bbad68) - Prepare the code for migrating return types from
const std::string&
to (https://github.com/protocolbuffers/protobuf/commit/e13b8e999b3922d0633802c7f90e39af50a31d76)
Java
- Remove deprecation warnings for Timestamp and Duration add/subtract/between that we do not yet have alternatives to. (https://github.com/protocolbuffers/protobuf/commit/f606c138a55b68bbc009281918023f7ede58720b)
- [29.x] Add missing java load (#19016) (https://github.com/protocolbuffers/protobuf/commit/bb287be772454d63b411b73d60b1d92daa879f2e)
- Give Kotlin jars an OSGi Manifest (#18812) (https://github.com/protocolbuffers/protobuf/commit/0c51ebac875657ecf6f8cca3d5463c23eb7d8b00)
- Re-export includingDefaultValueFields in deprecated state for important Cloud customer. (https://github.com/protocolbuffers/protobuf/commit/7321b2fd9a787dd08cd3cf8b25e8ccd9e479c60c)
- Restore compatibility with 3.22 gencode by re-adding mutableCopy helpers (https://github.com/protocolbuffers/protobuf/commit/1b1e90b83101314250f1fec3b6989b20606d0ecb)
- Speed up CodedOutputStream by extracting rarely-executed string formatting code (https://github.com/protocolbuffers/protobuf/commit/f8f5136c427ac1cbd5184bc57200e36c7e4bf82e)
- Return constant Value objects for true, false, and "" (https://github.com/protocolbuffers/protobuf/commit/4fbb0c5eedf5658c5f3fac574b8bb0d3b3664621)
- Optimise CodedOutputStream.ArrayEncoder.writeFixed32NoTag/writeFixed64NoTag (https://github.com/protocolbuffers/protobuf/commit/a51f98ce0c211492d070970f214a6eefb6aadf63)
- CodedOutputStream: avoid updating position to go beyond end of array. (https://github.com/protocolbuffers/protobuf/commit/76ab5f2b109fbd03c160b27a41935ad132287c88)
- Convert IndexOutOfBoundsException to OutOfSpaceException in UnsafeDirectNioEncoder (https://github.com/protocolbuffers/protobuf/commit/0e75d92cceeaf615794b91c4ab847eeff9935290)
- Suppress ReturnValueIgnored errorprone issues (https://github.com/protocolbuffers/protobuf/commit/bbbc7b967113ec7f5da3950c7c97e832507ffe96)
- Fix packed reflection handling bug in edition 2023. (https://github.com/protocolbuffers/protobuf/commit/4c923285a32ebcb53ce2ba03144e50d4dbedaf7b)
- Move cc_proto_library from Bazel repository (https://github.com/protocolbuffers/protobuf/commit/52544482bf3da31382a8b7a32b766ef644dc0611)
- Protobuf Lite ArrayLists: Defer allocating backing array until we have some idea how much to allocate. (https://github.com/protocolbuffers/protobuf/commit/05a8a4012351b07010afbc76892fe7919d0cb964)
- Allocate correct-sized array when parsing packed fixed-width primitives (https://github.com/protocolbuffers/protobuf/commit/4e8469cb456ad25d4dd448079bb46a938ad6e306)
- Bugfix: Make extensions beyond n=16 immutable. (https://github.com/protocolbuffers/protobuf/commit/ee419f22e0eec21243540d4b7ffe40bd194ed293)
- Reserve capacity in ProtobufArrayList when calling Builder.addAllRepeatedMessage(Collection) (https://github.com/protocolbuffers/protobuf/commit/e3cc31a12eaddcfaaa5a27c272e240b6cbd985c8)
- Avoid allocating iterators when calling Message.Builder.addAllFoo(RandomAccess List) (https://github.com/protocolbuffers/protobuf/commit/bd1887e436d2c6cc35db1eede8ebbe1bee1fb78f)
- Remove the AnyMetadata class and use free functions instead. (https://github.com/protocolbuffers/protobuf/commit/920d5c33d4d521e075d0418496379ff9d12f9cec)
- Add
[[deprecated]]
attribute when generating enums and classes. (https://github.com/protocolbuffers/protobuf/commit/23aada230b2478c7a07fe7612489eb8e79b9c379) - Binary compatibility shims for GeneratedMessageV3, SingleFieldBuilderV3, RepeatedFieldBuilderV3, and their nested classes to restore binary compatibility with <=v3.x.x generated code built against v3.x.x prior to v4.26.0 breaking release. (https://github.com/protocolbuffers/protobuf/commit/df8a11e2666ad2940b0483c00d4aff586315b9a0)
- Implement a mechanism to control the output format of Message.toString within a Runnable instance. (https://github.com/protocolbuffers/protobuf/commit/737803eec49b0ae9d22dd116fcb9fc0064045bad)
- Fix
TextFormat.Parser
to appropriately handle unknown values for open enums (https://github.com/protocolbuffers/protobuf/commit/df1aad4eb80afbac12b824be233759ff40ab984c) - Inline ArrayList's array into SmallSortedMap (https://github.com/protocolbuffers/protobuf/commit/910f62779fa86a3a1f653d0d34bb7d24e42f64be)
- Deprecated unused/obsolete mutable APIs, to be removed in next breaking change. (https://github.com/protocolbuffers/protobuf/commit/e889b0be5402b0ac3cc87ae3cd65d053fd1474ec)
Kotlin
- Give Kotlin jars an OSGi Manifest (#18812) (https://github.com/protocolbuffers/protobuf/commit/0c51ebac875657ecf6f8cca3d5463c23eb7d8b00)
- Support building //java with bzlmod (https://github.com/protocolbuffers/protobuf/commit/507ba36e299599ceca0c537aa95e416c996f1fcc)
- Replace deprecated use of
toBytes()
withCharacter
property.code
(#18236) (https://github.com/protocolbuffers/protobuf/commit/5d9deab879c03293b11d7134e005f1ac0635d2ac)
Csharp
- Begin adding extension numbers to SourceCodeInfo and FileDescriptorSet for tooling purposes. (https://github.com/protocolbuffers/protobuf/commit/07e489d98a4c445b0a9c56b07b195b258719ee82)
Objective-C
- [ObjC] Make debug runtime tell developers to update their generated code. (https://github.com/protocolbuffers/protobuf/commit/cdd3cf7ed4a34d9b01065ffef41988c1aefc663c)
- [ObjC] Issue stderr warnings for deprecated generation options. (https://github.com/protocolbuffers/protobuf/commit/e9140a10eca0688fcc1a03507f8b522b9bbdc50e)
- [ObjC] Deprecate GPBUnknownFieldSet and related apis. (https://github.com/protocolbuffers/protobuf/commit/d794139f09230bed72ec765426854723deac012d)
- [ObjC] Deprecate GPBTextFormatForUnknownFieldSet(). (https://github.com/protocolbuffers/protobuf/commit/55e997ea222561c606ba7c59706e6377776c5d9b)
Python
- Fix a python bug when assign an empty Struct at creation. (#18977) (https://github.com/protocolbuffers/protobuf/commit/bb0d57512d7731164837f57274e23eb411f80ccf)
- Add a deprecation warning to py_proto_library (#19032) (https://github.com/protocolbuffers/protobuf/commit/53cde641d941293cde7dd8fe5b7e429ee52658bd)
- Load Python rules everywhere in protobuf (https://github.com/protocolbuffers/protobuf/commit/a18f0de47c2c650f5c57e6cca80ee3bded76b19a)
- Fix cord handling in DynamicMessage and oneofs. (https://github.com/protocolbuffers/protobuf/commit/9e8b30c2135944d9d3a6e53b70e534581e2dbe2b)
- Fix packed reflection handling bug in edition 2023. (https://github.com/protocolbuffers/protobuf/commit/4c923285a32ebcb53ce2ba03144e50d4dbedaf7b)
- Fix ContainerBase::DeepCopy to not modify the source object. (https://github.com/protocolbuffers/protobuf/commit/9fa1f4f9bb74776ee65847ca960a1f023eac3ebe)
- Introduce lifetimes for individual feature values. (https://github.com/protocolbuffers/protobuf/commit/0b6e768f07c4cde376783b964022ec7e1ff3e772)
- Nextgen Proto Pythonic API: Add any.py (https://github.com/protocolbuffers/protobuf/commit/dd95e5b1fa65b06d9206c016b1d53f73abd9da44)
- Add test that tries to parse a JSON string that exceeds the recursion limit. (https://github.com/protocolbuffers/protobuf/commit/5a224554ebe3937577406a7e1099b797f5b10dba)
- Raise warnings for deprecated python cpp extension GetDebugString(). (https://github.com/protocolbuffers/protobuf/commit/b70c4b0c19dd4f8c73181320b060682ff9f1eebd)
- Nextgen Proto Pythonic API: Add duration.py (https://github.com/protocolbuffers/protobuf/commit/903c3f15b04d99ab88cee53e4cec9464ef292bce)
- Nextgen Proto Pythonic API: Add timestamp.py (https://github.com/protocolbuffers/protobuf/commit/ee26f2749341091b88c661734cdd5f0737587ce5)
- -Remove service.py usages in builder (https://github.com/protocolbuffers/protobuf/commit/2967c521a60241c35fb822c1661618493f824dda)
- Raise warnings for deprecated google/protobuf/reflection.py APIs. (https://github.com/protocolbuffers/protobuf/commit/55705f85db9a66da8a3dcbe18b4298594fa0dd6d)
PHP
- Fix: do not throw deprecated warning on field getters for default values (#17788) (https://github.com/protocolbuffers/protobuf/commit/6d84da5e2d42a8c83373c0bc6d7ed0ca6f78aade)
PHP C-Extension
- Fixed non-conformance in JSON parsing for empty strings in numeric fields. (#19259) (https://github.com/protocolbuffers/protobuf/commit/b69ea96ef9c11e557a19d971b1ef10a8732c7013)
- See also UPB changes below, which may affect PHP C-Extension.
Ruby
- Fixed non-conformance in JSON parsing for empty strings in numeric fields. (#19259) (https://github.com/protocolbuffers/protobuf/commit/b69ea96ef9c11e557a19d971b1ef10a8732c7013)
- Remove codes for unsupported Ruby (#17353) (https://github.com/protocolbuffers/protobuf/commit/184f3a37e9bee6040c316e38ee24caa81de5c087)
- [Ruby] Warn if assigning a "UTF-8" string with invalid UTF-8. (#17253) (https://github.com/protocolbuffers/protobuf/commit/b07e4b1eeb2f530ce4a2a980aa1f01289b8325ff)
Ruby C-Extension
- Fixed non-conformance in JSON parsing for empty strings in numeric fields. (#19259) (https://github.com/protocolbuffers/protobuf/commit/b69ea96ef9c11e557a19d971b1ef10a8732c7013)
- Fix a potential Ruby-upb use of uninitialized memory. (https://github.com/protocolbuffers/protobuf/commit/4d75c8224ac04957b997719700a8757173bbab19)
- [Ruby] Warn if assigning a "UTF-8" string with invalid UTF-8. (#17253) (https://github.com/protocolbuffers/protobuf/commit/b07e4b1eeb2f530ce4a2a980aa1f01289b8325ff)
- See also UPB changes below, which may affect Ruby C-Extension.
UPB (Python/PHP/Ruby C-Extension)
- Fixed non-conformance in JSON parsing for empty strings in numeric fields. (#19259) (https://github.com/protocolbuffers/protobuf/commit/b69ea96ef9c11e557a19d971b1ef10a8732c7013)
- Load Python rules everywhere in protobuf (https://github.com/protocolbuffers/protobuf/commit/a18f0de47c2c650f5c57e6cca80ee3bded76b19a)
- Fix a potential Ruby-upb use of uninitialized memory. (https://github.com/protocolbuffers/protobuf/commit/4d75c8224ac04957b997719700a8757173bbab19)
- Fixed
NAN
/INFINITY
definitions to work on Windows 11 SDK. (https://github.com/protocolbuffers/protobuf/commit/0309d86d3175cb3fb82d37150e6eff90b11bed77)
Other
- Fix typo in BCR maintainer name config for acozzette@ (#19307) (https://github.com/protocolbuffers/protobuf/commit/02cffa463c3c38316467e168e13972da003fe58e)
- Remove Bazel 6 in BCR presubmits (#19309) (https://github.com/protocolbuffers/protobuf/commit/7537b0387c3c620ccbe40477743e3352f39c9b9a)
- Upgrade rules_cc 0.0.15 and rules_java 8.3.1 (#19215) (https://github.com/protocolbuffers/protobuf/commit/fb8ee79637773d51e6e15679c1509aed2f9bf9d0)
- Upgrade rules_java and remove experimental_google_legacy_api flag (#18889) (https://github.com/protocolbuffers/protobuf/commit/f25389b5db127e23d49fb1140d42ce67a6b9f415)
- Replace use of C++17 with disabling a warning (https://github.com/protocolbuffers/protobuf/commit/111584f24bdec9c784c6cd3b9cb3828365f6da4c)
- Load Shell rules everywhere in protobuf (https://github.com/protocolbuffers/protobuf/commit/1822c8a6a22230d5124e43d7bb73d5831fdb93f3)
- Fix Bazel dependency cycle issue affecting Kythe (#18768) (https://github.com/protocolbuffers/protobuf/commit/6df33a4b8a105d4382c212f46128e1539a3fae6a)
- Remove rules_rust dependency (https://github.com/protocolbuffers/protobuf/commit/4329b89321f2dbfde6dc9ffc62405daf5b33d67d)
- Remove release branch staleness tests. (https://github.com/protocolbuffers/protobuf/commit/3551ee31b8ed544bfb2ae676f58da0851ffd8a54)
- Remove javaopts requiring java8 in non-release builds. (https://github.com/protocolbuffers/protobuf/commit/98beac0b3c0335f3f638d076f7584ff9785d4644)
- Docs: add nebius.ai custom options to registry (#18297) (https://github.com/protocolbuffers/protobuf/commit/e5d2dbd45a6deac2f39e2cea7a05c2120f3753b5)
- Protobuf-mode: add edition keyword for syntax highlighting (https://github.com/protocolbuffers/protobuf/commit/138451296bf4101f992faa215a1899f3b9ec29e7)
v28.3
: Protocol Buffers v28.3
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Fix packed reflection handling bug in edition 2023. (#18405) (https://github.com/protocolbuffers/protobuf/commit/c4124f9ec9185c6e9a9fdca4e41a00a1223ddca5)
Java
- Mute the minor version warning https://github.com/protocolbuffers/protobuf/issues/18096 (#18923) (https://github.com/protocolbuffers/protobuf/commit/fe30f9a1d14e8f2b85987d4eed5c5594e6cf801f)
- Populate Kotlin Manifest Files (#18859) (https://github.com/protocolbuffers/protobuf/commit/d82fb4710c08b763064c27dee3849af499641ffa)
- Re-export includingDefaultValueFields in deprecated state for important Cloud customer. (https://github.com/protocolbuffers/protobuf/commit/3b62d78dc70d2b43af5998d427452246279363c7)
- Cherrypick restoration of mutableCopy helpers (https://github.com/protocolbuffers/protobuf/commit/3ea568a9b6107ebf0d617c476f53a31490fd3182)
- Fix packed reflection handling bug in edition 2023. (#18405) (https://github.com/protocolbuffers/protobuf/commit/c4124f9ec9185c6e9a9fdca4e41a00a1223ddca5)
Kotlin
- Populate Kotlin Manifest Files (#18859) (https://github.com/protocolbuffers/protobuf/commit/d82fb4710c08b763064c27dee3849af499641ffa)
Python
- Mute the minor version warning https://github.com/protocolbuffers/protobuf/issues/18096 (#18923) (https://github.com/protocolbuffers/protobuf/commit/fe30f9a1d14e8f2b85987d4eed5c5594e6cf801f)
- Fix packed reflection handling bug in edition 2023. (#18405) (https://github.com/protocolbuffers/protobuf/commit/c4124f9ec9185c6e9a9fdca4e41a00a1223ddca5)
Other
- Fix merge conflicts (https://github.com/protocolbuffers/protobuf/commit/664a7e1cd37b6743126411d0af16990b92cde055)
- [ObjC] Disabling visionOS on CI. (https://github.com/protocolbuffers/protobuf/commit/22cd8ba0507488a6d73bea728c3fdf0e2594732f)
- Update staleness tests to only run over release branch (#18398) (https://github.com/protocolbuffers/protobuf/commit/8e94b1493c5095c00bb7f4232558c3a4a7618228)
v28.2
: Protocol Buffers v28.2
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Fix cord handling in DynamicMessage and oneofs. (#18373) (https://github.com/protocolbuffers/protobuf/commit/5b0e54384a7468e71369582cdb7e3babe20a7d9b)
Java
- Add recursion check when parsing unknown fields in Java. (https://github.com/protocolbuffers/protobuf/commit/ac9fb5b4c71b0dd80985b27684e265d1f03abf46)
v28.1
: Protocol Buffers v28.1
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Fix compiler error with
StrongReferenceToType()
(https://github.com/protocolbuffers/protobuf/commit/8ea3bb17cbf7f19922f5d0443b8dd9080c596ea1)
PHP
PHP C-Extension
- Upb: fix uninitialized upb_MessageValue buffer bugs (#18160) (https://github.com/protocolbuffers/protobuf/commit/9deedf0304c6ed8c7fb1cdb4466f01b8253cf376)
- See also UPB changes below, which may affect PHP C-Extension.
Ruby
Ruby C-Extension
- Fix a potential Ruby-upb use of uninitialized memory. (https://github.com/protocolbuffers/protobuf/commit/70b77de0d5aa8f70f87244961dc8fae2b1c9b928)
- Upb: fix uninitialized upb_MessageValue buffer bugs (#18160) (https://github.com/protocolbuffers/protobuf/commit/9deedf0304c6ed8c7fb1cdb4466f01b8253cf376)
- See also UPB changes below, which may affect Ruby C-Extension.
UPB (Python/PHP/Ruby C-Extension)
- Fix a potential Ruby-upb use of uninitialized memory. (https://github.com/protocolbuffers/protobuf/commit/70b77de0d5aa8f70f87244961dc8fae2b1c9b928)
- Upb: fix uninitialized upb_MessageValue buffer bugs (#18160) (https://github.com/protocolbuffers/protobuf/commit/9deedf0304c6ed8c7fb1cdb4466f01b8253cf376)
v28.0
: Protocol Buffers v28.0
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- UPB text encoder without using reflection for Rust (used for a message's Debug trait) that will print out field number to value entries instead of field name to value entries of a message like how it's expected for the usual text format using reflection. (https://github.com/protocolbuffers/protobuf/commit/f9dd9ce66e05d034378b4b37b82307f41fc3395c)
- Enable MessageLite::DebugString to use Message::DebugString where possible. (https://github.com/protocolbuffers/protobuf/commit/f810cc5b668d78cb982f44b34f188160d55c27d6)
- Always report plugin support errors from protoc. (https://github.com/protocolbuffers/protobuf/commit/986ef8d80bb9432ec7c3a83f0988e2cc589d5cee)
- Stop supporting EDITION_PROTO2 as an alias for EDITION_LEGACY. (https://github.com/protocolbuffers/protobuf/commit/35b34252c79d661fb1e9ceecdc6457295f28b9b1)
- Rename
DynamicCastToGenerated
/DownCastToGenerated
to (https://github.com/protocolbuffers/protobuf/commit/18da465815e609732b902d8cbc79d2d12e90686d) - Mark deleted fields in descriptor.proto reserved (https://github.com/protocolbuffers/protobuf/commit/44c409d211900f153a4bbafbaca474401ddec4e9)
- Protoc: support inf, -inf, nan, and -nan in option values (#15017) (https://github.com/protocolbuffers/protobuf/commit/3c03e9351c57081d0dffae120ed37497017f105c)
C++
- Move -Werror to our test/dev bazelrc files. (#17938) (https://github.com/protocolbuffers/protobuf/commit/f5a1b178ad52c3e64da40caceaa4ca9e51045cb4)
- Introduce FieldDescriptor::cpp_string_type() API to replace direct ctype inspection which will be removed in the next breaking change (https://github.com/protocolbuffers/protobuf/commit/72b0b7afbabce7494c2605aa240b0f0ca98aa6e5)
- Removed specific MSVC settings when installing (#17285) (https://github.com/protocolbuffers/protobuf/commit/770090e901872f860c8c75b55b9df3253ab2de6f)
- Omit the
_raw_default_instance_
declaration when using DLL linkage. (https://github.com/protocolbuffers/protobuf/commit/79c55cb30f79b227029fbe4cc62a14354c18096d) - Enable MessageLite::DebugString to use Message::DebugString where possible. (https://github.com/protocolbuffers/protobuf/commit/f810cc5b668d78cb982f44b34f188160d55c27d6)
- Fix a bug in which proto code uses ctype instead of string_type internally. (https://github.com/protocolbuffers/protobuf/commit/dfbe98781c5ac2c427aa4406705f8201c7364fcf)
- Add an optimization that prevents an exponential number of comparisons on deeply (https://github.com/protocolbuffers/protobuf/commit/594a71f48515715d37a797252e0dd2d97e635826)
- Replace FindHelper() with BucketNumber() when only the bucket number is required. (https://github.com/protocolbuffers/protobuf/commit/8c7b1ecd23aea88939d0e87efe7f2fd889ac40ce)
- Stop supporting EDITION_PROTO2 as an alias for EDITION_LEGACY. (https://github.com/protocolbuffers/protobuf/commit/35b34252c79d661fb1e9ceecdc6457295f28b9b1)
- Rename
DynamicCastToGenerated
/DownCastToGenerated
to (https://github.com/protocolbuffers/protobuf/commit/18da465815e609732b902d8cbc79d2d12e90686d) - Prohibit using features in the same file they're defined in. (https://github.com/protocolbuffers/protobuf/commit/24b91a7fec2fae2ee633c6bd2600ec2ebbe72f3f)
- Implement new Debug API with redaction. (https://github.com/protocolbuffers/protobuf/commit/bb68eb22dde9fbefc0413b7c3f836b03d062df4c)
- Use bool HasHasbits(const FieldDescriptor*) instead of manual checks. (https://github.com/protocolbuffers/protobuf/commit/448e326200a69afd83ae86e44dcddb612f007763)
- Add
java
to reserved names to escape extensions tojava_
. This may break existing references to gencode for extensions namedjava
. (https://github.com/protocolbuffers/protobuf/commit/c99cf4bbfaf71f735cd0dea7d6fc0b2c1a589ed2) - Put arena cleanup nodes on a separate chunked list instead of at the ends of arena blocks. (https://github.com/protocolbuffers/protobuf/commit/f70d90b4743dd9eed05e5bf33ef7196a99894e29)
- Fix validation checks of implicit presence. (https://github.com/protocolbuffers/protobuf/commit/d6c283321e7b2e159a6b300522b3d9f850e7de40)
- Clarify map behaviors in editions. (https://github.com/protocolbuffers/protobuf/commit/0dbd99a41db54a1adcfdc0946e9b8b724739a6e5)
- Protoc: support inf, -inf, nan, and -nan in option values (#15017) (https://github.com/protocolbuffers/protobuf/commit/3c03e9351c57081d0dffae120ed37497017f105c)
Java
- Binary compatibility shims for GeneratedMessageV3, SingleFieldBuilderV3, RepeatedFieldBuilderV3, and their nested classes to restore binary compatibility with <=v3.x.x generated code built against v3.x.x prior to v4.26.0 breaking release. (https://github.com/protocolbuffers/protobuf/commit/6bf01c51a0b92278958f0169d330d64a08dbb4ec)
- Remove unused pom.xml files. (https://github.com/protocolbuffers/protobuf/commit/aaf5f798c0c40787e82dacc80df47dd96519dbd5)
- Add overload for LazyStringArrayList.add(String): boolean (https://github.com/protocolbuffers/protobuf/commit/761d49a27067f74c56818e979b979bd3942a27cc)
- Hoist SmallSortedMap.getNumArrayEntries() outside loops over array entries (https://github.com/protocolbuffers/protobuf/commit/229c958a5c9417129942959c9819f7f4ffa4c8a3)
- Omit the
_raw_default_instance_
declaration when using DLL linkage. (https://github.com/protocolbuffers/protobuf/commit/79c55cb30f79b227029fbe4cc62a14354c18096d) - Java: Deprecate newExtensionWriter. (https://github.com/protocolbuffers/protobuf/commit/7122ba1d0a93532324ab29cf05bd3fa4fd99e45e)
- Immutable java: Use new lower-allocation extension serialization APIs from gencode (https://github.com/protocolbuffers/protobuf/commit/41514865ebe792ef0f1bfcebdbb2598fd398236d)
- Reserialize all unresolved features using java features from the generated pool in case of descriptors from the custom pool. (https://github.com/protocolbuffers/protobuf/commit/415a147189fff5417b18ecc515b8197a085a0d2c)
- Fix delimited inheritance in all languages. (https://github.com/protocolbuffers/protobuf/commit/8beb9705e495c57d55f6547c523d5817336ac35f)
- Full java runtime: Avoid allocating ArrayList iterators when serializing UnknownFieldSet (https://github.com/protocolbuffers/protobuf/commit/fac847c5c5d85524fb27e8fb4a4205286bb7c44c)
- Move back deprecation of java utf8 feature to 2024. (https://github.com/protocolbuffers/protobuf/commit/bd7078debcd40823ed29a0ab197435c82b248043)
- Reparse unknown features using extension registry containing Java features. (https://github.com/protocolbuffers/protobuf/commit/68d908768fc19a14ea2db39a24a8c04a23e29541)
- Remove field SmallSortedMap.maxArraySize (https://github.com/protocolbuffers/protobuf/commit/16e0a63077bbfe889b7150543c5f176e0f637682)
- Delete unused method SmallSortedSet.getOverflowEntriesDescending (https://github.com/protocolbuffers/protobuf/commit/c05be324da89b9fbdf3ef7adc26fb541a7352e98)
- Avoid allocating FieldSet iterator if FieldSet is empty (https://github.com/protocolbuffers/protobuf/commit/3ba72807a675424ccee05648f6baaf43c2bc339b)
- Lazily resolve features for proto2 and proto3 for compatibility with old open source gencode that does not invoke feature resolution from gencode static init. (https://github.com/protocolbuffers/protobuf/commit/11c27dfa4b4dd2f79b722897bc04a297c2a35c26)
- Implement new Debug API with redaction. (https://github.com/protocolbuffers/protobuf/commit/bb68eb22dde9fbefc0413b7c3f836b03d062df4c)
- Replace SmallSortedMap.EmptySet with equivalent Collections.emptySet() (https://github.com/protocolbuffers/protobuf/commit/c6e2778f9173ed925746197310f4d11e5f46df96)
- Add
java
to reserved names to escape extensions tojava_
. This may break existing references to gencode for extensions namedjava
. (https://github.com/protocolbuffers/protobuf/commit/c99cf4bbfaf71f735cd0dea7d6fc0b2c1a589ed2) - Avoid allocating TreeMap in UnknownFieldSet.Builder.asMap (https://github.com/protocolbuffers/protobuf/commit/4b7c2d43818a71e0c6975fcf3a1f1e0f1533ce3c)
- Avoid allocating iterator in TextFormat printing UnknownFieldSet (https://github.com/protocolbuffers/protobuf/commit/8c6e5b79636673435c9a8afe51dd2ffe4a2c7f4b)
- Add
null
to the list of reserved words. (https://github.com/protocolbuffers/protobuf/commit/510c1434ed16dadeeb64a3b841c9ada96e273573) - Add UnknownFieldSet.isEmpty (https://github.com/protocolbuffers/protobuf/commit/c56bddd7074d3c62c94ca494e2e9983dbc98da6d)
- Java full runtime: Avoid allocating when calling asMap on empty UnknownFieldSet (https://github.com/protocolbuffers/protobuf/commit/d0b016fcfcd00a0e48d006f06868b8fb9876974a)
- Return the default instance when parsing from an empty byte[]. (https://github.com/protocolbuffers/protobuf/commit/f5979918571af01751afa40d9c41cb6070f56f99)
- Deprecate building from source with Maven to be removed in 4.28.x. (https://github.com/protocolbuffers/protobuf/commit/4c8da99c4865bc7e07ec629c2d1ad32ac576554b)
- Java full runtime: Avoid allocating iterator if UnknownFieldSet's TreeMap is empty (https://github.com/protocolbuffers/protobuf/commit/4f12891b87a99ecabdc1e1039d0587094e9b57cd)
- Proto java full runtime: avoid allocating Integers accessing enum lists (https://github.com/protocolbuffers/protobuf/commit/cc79f776dcb09164e7a0b6c11951679244a7828b)
- Split bootstrapped java_features.proto to keep it from leaking out. (https://github.com/protocolbuffers/protobuf/commit/2257232676e60f1d06f8c9545c88d1a73a3a8f54)
- Java Proto lite: avoid boxing Integers accessing enum lists (https://github.com/protocolbuffers/protobuf/commit/fb054c8e4141b0fe50c33d237a6650d98a412de8)
- In the Kotlin DSL, reference builder methods with property syntax. (https://github.com/protocolbuffers/protobuf/commit/e9c9970eb4ac488d9fb94e8dea6945d3881c405d)
- Java Proto Lite: Serialize repeated enums without allocating (https://github.com/protocolbuffers/protobuf/commit/de6aba9f639ced3dce03310121aa69c914eb7b0e)
- Avoid boxing when serializing primitive lists in CodedOutputStreamWriter (https://github.com/protocolbuffers/protobuf/commit/eaee04d89719ed8e0fde96b6d37cf741d866f511)
Kotlin
- Remove unused pom.xml files. (https://github.com/protocolbuffers/protobuf/commit/aaf5f798c0c40787e82dacc80df47dd96519dbd5)
- In the Kotlin DSL, reference builder methods with property syntax. (https://github.com/protocolbuffers/protobuf/commit/e9c9970eb4ac488d9fb94e8dea6945d3881c405d)
Csharp
- Fix delimited inheritance in all languages. (https://github.com/protocolbuffers/protobuf/commit/8beb9705e495c57d55f6547c523d5817336ac35f)
- Handle groups in C# JsonParser (#16970) (https://github.com/protocolbuffers/protobuf/commit/092cc15f9d615850e7580a744deb316ad2175870)
- Introduce
MessageDescriptor.IsMapType
in C# reflection to make it easier to tell whether a given message was generated by protoc for a map field. (https://github.com/protocolbuffers/protobuf/commit/047fc7673eb2a7373f7ad8f5b094de201d737b36) - C#: Fix discovery of oneof declarations in descriptor protos. (https://github.com/protocolbuffers/protobuf/commit/b50ff60967b595765244d22945aed184cafee68a)
Objective-C
- [ObjC] Issue stderr warnings for deprecated generation options. (https://github.com/protocolbuffers/protobuf/commit/b2764205e943d9bc912c4504d95117179e9b38e1)
- [ObjC] Add api to add a field to another collection of unknown fields. (https://github.com/protocolbuffers/protobuf/commit/0790ab4d7a771d4ca79fa795cc96febfbb43ebb6)
- [ObjC] Fix GPBUnknownField/GPBUnknownFields copy. (https://github.com/protocolbuffers/protobuf/commit/b3b988885d91f31c9cdc058fd5249efc18a91d11)
- [ObjC] Raise an exception for a nil message. (https://github.com/protocolbuffers/protobuf/commit/35bd2be8286c736303083d7c2230d11ab3648672)
- [ObjC] Deprecate GPBUnknownFieldSet and related apis. (https://github.com/protocolbuffers/protobuf/commit/9f6ee72443312821874e1e0ed532014ddbf91f4f)
- [ObjC] More tests around unknown to known failure cases. (https://github.com/protocolbuffers/protobuf/commit/e822dce56d2ee8caee08897520aaae5d48bb1fea)
- [ObjC] Support errors when merging unknown fields to a message. (https://github.com/protocolbuffers/protobuf/commit/c46340eb36e7b8a2477b99062f0dc6816c9a0bcc)
- [ObjC] Add apis for removing things from
GPBUnknownFields
. (https://github.com/protocolbuffers/protobuf/commit/c5c9c89441e6d04bc1246aa78f44a33f2a407251) - [ObjC] Collect unknown fields as data (https://github.com/protocolbuffers/protobuf/commit/a6b353582c7e8a5855f8075b131f2f81c191230a)
- [ObjC] Internal helper for getting the unknown field data from a message (https://github.com/protocolbuffers/protobuf/commit/bf2d4e707c139fa4d58bae68efbf232ed445c6f3)
- [ObjC] Update tests to use both unknown fields apis. (https://github.com/protocolbuffers/protobuf/commit/0832b52355c4ae4cde993cf8a09387d8c757525f)
- [ObjC] Deprecate GPBTextFormatForUnknownFieldSet(). (https://github.com/protocolbuffers/protobuf/commit/d1b6f8c8eb1e4a354fe7463828e53315936454c8)
- [ObjC] Parsing helper and tests around unknown fields. (https://github.com/protocolbuffers/protobuf/commit/9b16ee477ba88dc8d495c3a7b455cd6078977b1f)
- [ObjC] Add test around enum unknown values. (https://github.com/protocolbuffers/protobuf/commit/fad7b78e1a09e90f5387ff414fa8cf3d6844772e)
- [ObjC] Expose a helper for stream error. (https://github.com/protocolbuffers/protobuf/commit/cf7abf6c6bbb2a578901e312e3ec08d69049b274)
- [ObjC] Support MessageSet with
GPBUnknownFields
. (https://github.com/protocolbuffers/protobuf/commit/ddf9b767041f3843e6348c12c715def215f5e9af) - [ObjC] Update MessageSet Parsing. (https://github.com/protocolbuffers/protobuf/commit/5fa8cd95746f9ff10d0914fb1efbde2154df5660)
- [ObjC] Validate MessageSet expectations. (https://github.com/protocolbuffers/protobuf/commit/3aa491cf8f689e17d8320c489b6c15266e5e301d)
- [ObjC] Improve parsing validations (https://github.com/protocolbuffers/protobuf/commit/ef4898fc5e8be4fe43ca9a51709a4097ff028c8d)
- [ObjC] Add Swift helpers for
GPBUnknownFields
/GPBUnknownField
. (https://github.com/protocolbuffers/protobuf/commit/6750ed8cd8eb9f109847cebdea86189e4fe64638) - [ObjC] Introduce the new
GPBUnknownFields
type. (https://github.com/protocolbuffers/protobuf/commit/47f633eae687939fbb68af4661503685a8efd239) - Rename
DynamicCastToGenerated
/DownCastToGenerated
to (https://github.com/protocolbuffers/protobuf/commit/18da465815e609732b902d8cbc79d2d12e90686d)
Rust
- Move -Werror to our test/dev bazelrc files. (#17938) (https://github.com/protocolbuffers/protobuf/commit/f5a1b178ad52c3e64da40caceaa4ca9e51045cb4)
- Add visibility for rust public aliases for '@protobuf//:protobuf_rust' (https://github.com/protocolbuffers/protobuf/commit/2cee1424616bd5c2a4fdc792722edb91e5bfea21)
- UPB text encoder without using reflection for Rust (used for a message's Debug trait) that will print out field number to value entries instead of field name to value entries of a message like how it's expected for the usual text format using reflection. (https://github.com/protocolbuffers/protobuf/commit/f9dd9ce66e05d034378b4b37b82307f41fc3395c)
- Enable MessageLite::DebugString to use Message::DebugString where possible. (https://github.com/protocolbuffers/protobuf/commit/f810cc5b668d78cb982f44b34f188160d55c27d6)
- See also UPB changes below, which may affect Rust.
Python
- Raise warnings for deprecated python cpp extension GetDebugString(). (https://github.com/protocolbuffers/protobuf/commit/5fc5558f6e2a213a1e4160585d762bfe749d63ea)
- Remove service.py usages in builder (https://github.com/protocolbuffers/protobuf/commit/902a68a1591d7e46312cbb2b9ca4b6f9249e4d7e)
- Raise warnings for deprecated google/protobuf/reflection.py APIs. (https://github.com/protocolbuffers/protobuf/commit/38140ac5443f74a6248d259c30a6a885a358b301)
- Nextgen Proto Pythonic API: Struct/ListValue assignment and creation (https://github.com/protocolbuffers/protobuf/commit/e17821cac1f84989ab280cd92063ba86c4e6770b)
- Fix delimited inheritance in all languages. (https://github.com/protocolbuffers/protobuf/commit/8beb9705e495c57d55f6547c523d5817336ac35f)
- Make bytearray work (again) (#16691) (https://github.com/protocolbuffers/protobuf/commit/eb67a91cacd7345f02b432d51e581ee31fd2ca54)
- Nextgen Proto Pythonic API: Timestamp/Duration assignment, creation and calculation (https://github.com/protocolbuffers/protobuf/commit/b690e729eb86d9f505d1c14692100bfc39809603)
- Update rules_python to 0.28.0 (https://github.com/protocolbuffers/protobuf/commit/e1bf1f048e783578bcbdaa4572ce3c93908b6494)
- Nextgen Proto Pythonic API: “Add-on” proto for length prefixed serialize/parse (https://github.com/protocolbuffers/protobuf/commit/3a9f0743ea8d82f489a65f7d087fa01d26ac5f56)
- Rename
DynamicCastToGenerated
/DownCastToGenerated
to (https://github.com/protocolbuffers/protobuf/commit/18da465815e609732b902d8cbc79d2d12e90686d) - Fixed printing of nan floats/doubles in Python. (https://github.com/protocolbuffers/protobuf/commit/f65108072bbedad2e590f038eb23b8ef2235c329)
- Nextgen Proto Pythonic API: “Add-on” proto for JSON serialize/parse (https://github.com/protocolbuffers/protobuf/commit/6c91de9de94e02f7b7e69bad1245f62035574429)
- Nextgen Proto Pythonic API: “Add-on” proto for serialize/parse (https://github.com/protocolbuffers/protobuf/commit/495ba7bcdbd806306f0dfab128b2081c17fd66fd)
- Use struct instead of ctype. allows the protobuf python library to work on cpython 3.11's new wasm target [1] (https://github.com/protocolbuffers/protobuf/commit/9de810acdc6e7e2bcac03d207632c0b9443596ea)
- Nextgen Proto Pythonic API: Add 'in' operator (https://github.com/protocolbuffers/protobuf/commit/24f27c3b88708a735968688d34aa02a28f403866)
- Automated rollback of commit
f799af8
. (https://github.com/protocolbuffers/protobuf/commit/c4bf83b534e9736fe31e1f8ad6f640e316836ba5) - Catch all the exceptions in python JSON ParseDict and raise (https://github.com/protocolbuffers/protobuf/commit/9cc5be12edd35ed51949427316fe4dbae2709852)
PHP
- Chore(php): conformance testing for edition (#16712) (https://github.com/protocolbuffers/protobuf/commit/01744cccae57ca934ab925e13d2eaaf93761b1f4)
PHP C-Extension
- Fix segmentation faults with enabled keep_descriptor_pool_after_request (#16993) (https://github.com/protocolbuffers/protobuf/commit/e844510ee30e25017e94f9f43751abab159208c8)
- See also UPB changes below, which may affect PHP C-Extension.
Ruby
- [Ruby] Warn if assigning a "UTF-8" string with invalid UTF-8. (#17253) (https://github.com/protocolbuffers/protobuf/commit/fe9a53cb5184772f4160103233b65bd17e817d53)
- Remove
Arena_pin
in favor of adopting the UPB freezing API. (https://github.com/protocolbuffers/protobuf/commit/1194440c2489fc58051a245b5db74c0fd1bbf4b0) - Fix Ruby FFI to pass
MiniTable
toupb_Message_New()
akanew_message_from_def()
. (https://github.com/protocolbuffers/protobuf/commit/47f4bc958bc719b905942738470718f03ca70b33)
Ruby C-Extension
- Move -Werror to our test/dev bazelrc files. (#17938) (https://github.com/protocolbuffers/protobuf/commit/f5a1b178ad52c3e64da40caceaa4ca9e51045cb4)
- [Ruby] Warn if assigning a "UTF-8" string with invalid UTF-8. (#17253) (https://github.com/protocolbuffers/protobuf/commit/fe9a53cb5184772f4160103233b65bd17e817d53)
- [Ruby] Fix mismatched pointer type (#17240) (https://github.com/protocolbuffers/protobuf/commit/0aa74497527c6656e073f2635019ebc2a946268c)
- Remove
Arena_pin
in favor of adopting the UPB freezing API. (https://github.com/protocolbuffers/protobuf/commit/1194440c2489fc58051a245b5db74c0fd1bbf4b0) - See also UPB changes below, which may affect Ruby C-Extension.
UPB (Python/PHP/Ruby C-Extension)
- Move -Werror to our test/dev bazelrc files. (#17938) (https://github.com/protocolbuffers/protobuf/commit/f5a1b178ad52c3e64da40caceaa4ca9e51045cb4)
- UPB text encoder without using reflection for Rust (used for a message's Debug trait) that will print out field number to value entries instead of field name to value entries of a message like how it's expected for the usual text format using reflection. (https://github.com/protocolbuffers/protobuf/commit/f9dd9ce66e05d034378b4b37b82307f41fc3395c)
- Fix delimited inheritance in all languages. (https://github.com/protocolbuffers/protobuf/commit/8beb9705e495c57d55f6547c523d5817336ac35f)
- Fixed printing of nan floats/doubles in Python. (https://github.com/protocolbuffers/protobuf/commit/f65108072bbedad2e590f038eb23b8ef2235c329)
Other
- Remove
--copt="-Werror"
from.bazelrc
(#18005) (https://github.com/protocolbuffers/protobuf/commit/c9454f40e91bef6187e618f4856ebea240985c81) - Remove protobuf rust from BCR presubmits for now. (https://github.com/protocolbuffers/protobuf/commit/92552d37b733e0721ad35ec5ab552e2caa623ab2)
- Set -ex in test_java.yml (https://github.com/protocolbuffers/protobuf/commit/6a7e2154a25b49074880c1b25bf886ad654d2286)
- Refactor java maven GHA test to use our generated jars. (https://github.com/protocolbuffers/protobuf/commit/671ef8b8526fd8ba2d910c517a7d77b3d9d7c5c4)
- Remove
/utf-8
flag added in #14197 (https://github.com/protocolbuffers/protobuf/commit/440dc8306decf9ec898b1cbac8b67b16bf204888) - Downgrade CMake to 3.29 to workaround Abseil issue. (https://github.com/protocolbuffers/protobuf/commit/cd75dd59824c5c60afb8ba894dc1db3a92bbc582)
- Add minimal Python support to MODULE.bazel (https://github.com/protocolbuffers/protobuf/commit/2eb4d69ed51c475a77ecd62742ef5064557b531f)
- Fix(bazel/python): incompatible_enable_proto_toolchain_resolution (#17078) (https://github.com/protocolbuffers/protobuf/commit/8434c12d160fcf2f6adc572f4e94947fb57c82c3)
- Add Rust support to MODULE.bazel (https://github.com/protocolbuffers/protobuf/commit/f3c140f96c9a7cb59f02289261c70c91bb9c009f)
- Add rules_fuzzing dependency to MODULE.bazel. (https://github.com/protocolbuffers/protobuf/commit/a450c9cad090e3e607099cb379c62050bf15eb5f)
- Reenable FFI tests on CRuby. (https://github.com/protocolbuffers/protobuf/commit/e595749c9c15a50d3f402cb66b2e7630f4f13ec6)
- Update comment for message_type (https://github.com/protocolbuffers/protobuf/commit/023e69d6ccf07cfa8ce6afa695f26008be08e476)
- Enable textproto conformance tests for "-0" and "-0F". (https://github.com/protocolbuffers/protobuf/commit/13caa08692d522df8812b1c6f6a88c70105d3941)
- Fix #10007: Propagate msvc-style link flags to clang-cl with Bazel (https://github.com/protocolbuffers/protobuf/commit/55592a28e74e0eeabf89c3fd056ec0d81068a9a2)
- Add system_python to protobuf_deps.bzl. (https://github.com/protocolbuffers/protobuf/commit/8a11178606ce85d9e561729328795471fe8a6de5)
v27.5
: Protocol Buffers v27.5
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Fix cord handling in DynamicMessage and oneofs. (#18374) (https://github.com/protocolbuffers/protobuf/commit/6fa3f2d79bcb5518e3453687fe10e3bbd16cbfe6)
Java
- Add recursion check when parsing unknown fields in Java. (#18388) (https://github.com/protocolbuffers/protobuf/pull/18388/commits/8bfa80b5422cc22d64bfba5aa3049b9d5143c99b)
Other
- Remove
--copt="-Werror"
from.bazelrc
(#18392) (https://github.com/protocolbuffers/protobuf/commit/6481fecc135f72e37a6a5c59bd4213c7dcec62eb)
v27.4
: Protocol Buffers v27.4
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Java
- Binary compatibility shims for GeneratedMessageV3, SingleFieldBuilderV3, RepeatedFieldBuilderV3, and their nested classes to restore binary compatibility with <=v3.x.x generated code built against v3.x.x prior to v4.26.0 breaking release. (https://github.com/protocolbuffers/protobuf/commit/8dd83da71cf7054470b68c71550a5a97d46121c0)
v27.3
: Protocol Buffers v27.3
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Revert workaround for std::mutex issues on github windows runners. (https://github.com/protocolbuffers/protobuf/commit/ba3e7d7a8aea8a9eafebe3407d94b877cf16e362)
C++
- Update staleness (https://github.com/protocolbuffers/protobuf/commit/b7ef2ca3c068f088752d03e5f6550ead365f497d)
- Omit the
_raw_default_instance_
declaration when using DLL linkage. (https://github.com/protocolbuffers/protobuf/commit/22d9a030569292e5abd3e256ae512a135047c6de) - Refactor the way we turn on the optimization in StrongPointer. (https://github.com/protocolbuffers/protobuf/commit/a15c9c5dee34db5b0535206d938a9f2cf045d8ba)
Java
- Omit the
_raw_default_instance_
declaration when using DLL linkage. (https://github.com/protocolbuffers/protobuf/commit/22d9a030569292e5abd3e256ae512a135047c6de)
PHP
PHP C-Extension
- Fix segmentation faults with enabled keep_descriptor_pool_after_request (#16993) (https://github.com/protocolbuffers/protobuf/commit/ca3b7320f3e846fdd5786abcde3e1e23f507c170)
Ruby
Ruby C-Extension
- [Ruby] Fix mismatched pointer type (#17240) (https://github.com/protocolbuffers/protobuf/commit/a1d47773a2deede19536660805c494b77ec46f89)
Other
- Remove
/utf-8
flag added in #14197 (https://github.com/protocolbuffers/protobuf/commit/e20cb7aaf7e6fde6b09fbb3452fffa9fa2c656d1) - Downgrade CMake to 3.29 to workaround Abseil issue. (https://github.com/protocolbuffers/protobuf/commit/8a579c1af579c55bdf4fe6da81084ece3597f712)
- Upgrade macos-11 tests to macos-12 (https://github.com/protocolbuffers/protobuf/commit/aec8a7604d74a0e8aa14b45b1295984c0acd51f2)
- Use explicit names of our large runners (https://github.com/protocolbuffers/protobuf/commit/4e3b4f0819a7187f0c369ba1a7cd1cbca012e28a)
- Upgrade our C++ release tests to large runners. (https://github.com/protocolbuffers/protobuf/commit/fa2b2d61ea86ec5904105fcab97f50bdb4b93ac6)
v27.2
: Protocol Buffers v27.2
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Avoid calling absl::InitializeLog in protoc with MSVC (https://github.com/protocolbuffers/protobuf/commit/aa7fcb3662f677b6ef06b55d5cae9d5b242fa1ef)
C++
- Fix string_type bugs in edition 2023 (#17211) (https://github.com/protocolbuffers/protobuf/commit/4923b8d72d39a4189ca7c7b9e20359d6ba527a10)
- Add simple conformance test that builds the old gencode against the current runtime. (https://github.com/protocolbuffers/protobuf/commit/9cfb59b5e305dba959403b56112d9a8cf1f4d832)
- Make the underlying type of the enum by 8-bits instead of using bitfields for (https://github.com/protocolbuffers/protobuf/commit/316f493b2f7f87f4402caea0d0ae1f332e2550fb)
Java
- Cleanup imports and comments in V3 stubs. (https://github.com/protocolbuffers/protobuf/commit/270ca6681a686fea24e23f7a389e4e3997409a4c)
- Add stubs for GeneratedMessageV3, RepeatedFieldBuilderV3, SingleFieldBuilderV3 for compatibility with older <4.26.x gencode. (https://github.com/protocolbuffers/protobuf/commit/1e360a422a04942ff0758f4a390fb6c27b680c96)
- Fix checking unknown field set empty which wasn't exposed yet in 27.x (https://github.com/protocolbuffers/protobuf/commit/c7a006a225e0b94b639a9be694b03c835f4db6d6)
- Reserialize all unresolved features using java features from the generated pool in case of descriptors from the custom pool. (https://github.com/protocolbuffers/protobuf/commit/2426a02b90d61e6c18b8ffa411e76b1642f47ad6)
- Reparse unknown features using extension registry containing Java features. (https://github.com/protocolbuffers/protobuf/commit/e5ddc45645871fbe2c6fc089ebe09f72ca727b5e)
- Fix data race in crosslink. (https://github.com/protocolbuffers/protobuf/commit/3d71e22b7ae17cbe82dd20a29ef7ef4e75e06ec5)
- Fix delimited inheritance in all languages. (https://github.com/protocolbuffers/protobuf/commit/c4f359ebf03e235d348a363d3b76660c6c960773)
Csharp
- Regenerate stale files (https://github.com/protocolbuffers/protobuf/commit/29f1b5259ea224abcaa9a4eb5e28f804ea8d5097)
- Fix delimited inheritance in all languages. (https://github.com/protocolbuffers/protobuf/commit/c4f359ebf03e235d348a363d3b76660c6c960773)
Python
- Fix delimited inheritance in all languages. (https://github.com/protocolbuffers/protobuf/commit/c4f359ebf03e235d348a363d3b76660c6c960773)
PHP
PHP C-Extension
- Regenerate stale files (https://github.com/protocolbuffers/protobuf/commit/29f1b5259ea224abcaa9a4eb5e28f804ea8d5097)
- See also UPB changes below, which may affect PHP C-Extension.
Ruby
Ruby C-Extension
- Regenerate stale files (https://github.com/protocolbuffers/protobuf/commit/29f1b5259ea224abcaa9a4eb5e28f804ea8d5097)
- See also UPB changes below, which may affect Ruby C-Extension.
UPB (Python/PHP/Ruby C-Extension)
- Fix delimited inheritance in all languages. (https://github.com/protocolbuffers/protobuf/commit/c4f359ebf03e235d348a363d3b76660c6c960773)
Other
- Port windows bootstrapping fix (#17225) (https://github.com/protocolbuffers/protobuf/commit/19bd2115d04fcc6196e504a4f07d99b6f16be7d7)
v27.1
: Protocol Buffers v27.1
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Always report plugin support errors from protoc. (https://github.com/protocolbuffers/protobuf/commit/9a37881bc8520d0dfdd33bb96fbd3139c56ec7ee)
C++
- Fix a bug in edition defaults calculation. (https://github.com/protocolbuffers/protobuf/commit/887e95dade3b93daf6cc14e1ac7ccbccc66053a9)
Java
- Move back deprecation of java utf8 feature to 2024. (https://github.com/protocolbuffers/protobuf/commit/8ffc1d003071df0fbdf470c38e181c61cc178fa8)
Csharp
- Handle groups in C# JsonParser (#16970) (https://github.com/protocolbuffers/protobuf/commit/0e9dd4ca09cdd386ea0c86396aa542dad7238c1e)
Other
- Avoid ODR violations from bootstrapped protos (https://github.com/protocolbuffers/protobuf/commit/f61d89cf9ec051450cf9cb54182da40706fd1753)
v27.0
: Protocol Buffers v27.0
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Future-proof edition 2023 against feature value support windows. (https://github.com/protocolbuffers/protobuf/commit/fea6847e408d58e40a2f10ab124ae795afd703d4)
- Mark deleted fields in
descriptor.proto
reserved (https://github.com/protocolbuffers/protobuf/commit/d2da4636c06ccad04371434dabbf24ca1c6ee83e) - Add extension declarations for known features. (https://github.com/protocolbuffers/protobuf/commit/f8d0a5b1dd6f5655be3c0d1a8aa1fec88e80c13a)
- Refactored the Java generator into separate packages and targets. (https://github.com/protocolbuffers/protobuf/commit/bd81fd95f30af51e86a36cf0279abec17890a324)
- Officially release Editions in 27.0. (https://github.com/protocolbuffers/protobuf/commit/baa83b6b43113a9b39c77e40dc4b10640abda657)
- Define lifetimes of edition 2023 features (https://github.com/protocolbuffers/protobuf/commit/77f62de93e2e84d6aab0364629919779970fb9f1)
- Implement feature lifetime validation in protoc and the C++ runtime. (https://github.com/protocolbuffers/protobuf/commit/b3b4497d61cabf1d0d37b10178f93c570ec67ac6)
- Add edition lifetime options for feature specs. (https://github.com/protocolbuffers/protobuf/commit/b09b3e46fe2a111d412251f6d043649334e9cbee)
- Enable editions support for Java Lite. (https://github.com/protocolbuffers/protobuf/commit/500c953d105d0447479be259a5fb0b6f7124e978)
- Release edition defaults CLI arguments. (https://github.com/protocolbuffers/protobuf/commit/7a0e10e0219fd753b97c2879eb9a92584a419105)
- Update protoc release to include editions language features protos for Java and C++ (https://github.com/protocolbuffers/protobuf/commit/6483c4755daadf1bceb95c4519851c52e8842d2e)
C++
- Future-proof edition 2023 against feature value support windows. (https://github.com/protocolbuffers/protobuf/commit/fea6847e408d58e40a2f10ab124ae795afd703d4)
- Prohibit using features in the same file they're defined in. (https://github.com/protocolbuffers/protobuf/commit/8c5f3a747bae377c92a780970416945c32780bfd)
- Fix validation checks of implicit presence. (https://github.com/protocolbuffers/protobuf/commit/bdf6b10e7c2cca02a79a96dac05560fba330cb96)
- Clarify map behaviors in editions. (https://github.com/protocolbuffers/protobuf/commit/61c91874c6817cdda85c2c256c3093be34f3eb41)
- Ensure we allocate overaligned types with aligned
operator new
. (https://github.com/protocolbuffers/protobuf/commit/11ef0ffb873ebd270ab0266270ea965a04c5f2e5) - Fix text-format delimited field handling.(https://github.com/protocolbuffers/protobuf/commit/29c69ff00b58b60e67fcf40fd810009bd39b86c6)
- In debug mode, after clearing
oneof
messages on arenas, poison them if ASAN. (https://github.com/protocolbuffers/protobuf/commit/8826bafcf507120bdb77883e9a9c0c43a5f5a302) - Allow
string_type
for Edition 2023. (https://github.com/protocolbuffers/protobuf/commit/d8251ebc43cb21d3239a38554a2f0a618f368a78) - Breaking change: Ensure we allocate overaligned types with aligned
operator new
. (https://github.com/protocolbuffers/protobuf/commit/11ef0ffb873ebd270ab0266270ea965a04c5f2e5) - Python JSON parser: Ignore invalid enum string values if
ignore_unknown_fields
is set (#15887) (https://github.com/protocolbuffers/protobuf/commit/86abf35ef5ee5b1004ec11bebb36d84c2ef6645e) - Move
java_features.proto
tojava/core/srce/main/resources
(https://github.com/protocolbuffers/protobuf/commit/274bc7f26ff9da996714cf5cd011a7edaf6ce34c) - Add an RAII namespace printer helper for C++ codegen. (https://github.com/protocolbuffers/protobuf/commit/8599ab5a5934579e9cb775b2cf2bcc69e67c2747)
- Enable editions support for Java Lite. (https://github.com/protocolbuffers/protobuf/commit/500c953d105d0447479be259a5fb0b6f7124e978)
- Add an RAII
ifndef
helper for C++ codegen. (https://github.com/protocolbuffers/protobuf/commit/1087274e7dc3ea6864af39a46091160b98e809f1) - Clear
oneof
message fields even on arena on non-OPT builds. (https://github.com/protocolbuffers/protobuf/commit/5c183bda866e4410a66cda550d6afa2428408879) - Implement edition 2023 support in all Ruby runtimes. (https://github.com/protocolbuffers/protobuf/commit/bca8fb6117cf24785edb238d96bffe2c3a6d7164)
- Release edition defaults CLI arguments. (https://github.com/protocolbuffers/protobuf/commit/7a0e10e0219fd753b97c2879eb9a92584a419105)
- Deprecate
Arena::CreateMessage
for OSS. (https://github.com/protocolbuffers/protobuf/commit/d4bfe52d998dae068ea7e2d44decd234bb090c46) - Open sourcing
reflection_visit_fieds
. (https://github.com/protocolbuffers/protobuf/commit/cfc07df845a6b5cfc6837e56f3bf8ed20e06eb76) - Fixed the use of c++ keywords within namespace names (#15954) (https://github.com/protocolbuffers/protobuf/commit/988194a591f0b82b1ae52590e4daa5f0519ef8c7)
- Fix pkg-config metadata for shared abseil on windows (#15888) (https://github.com/protocolbuffers/protobuf/commit/fe6edca15b2d80df79ab31117dc49621ef461202)
- Add
GetStringView()
andGetRepeatedStringView()
with scratch. (https://github.com/protocolbuffers/protobuf/commit/a3f5af066fcb16bc2e90e28c006597aef1904eab) - Avoid a 'may be used uninitialized' warning when built with '-c opt'. (#15846) (https://github.com/protocolbuffers/protobuf/commit/eb70b343aab7584ed164a6ab4b39789427d0474f)
- Add software prefetch to
ByteSizeLong
(https://github.com/protocolbuffers/protobuf/commit/948ca2e0f3e74a2444bc4c3cc8da1d0a4cb82058) - Add prefetching in arena blocks. (https://github.com/protocolbuffers/protobuf/commit/9e57b8e0d800b90d38ab70ac12f086310eb2484e)
- Rename the
includingDefaultValueWithoutPresenceFields
andalways_print_without_presence_fields
toalwaysPrintFieldsWithNoPresence
in the C++, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/7d43131a0a3a2a7640208849eeac016c6c61374e) - Remove tags for arena cleanup nodes now that we have dedicated string cleanup blocks. (https://github.com/protocolbuffers/protobuf/commit/202b10639242d3ee1d10c5577618aa008e222ec4)
- Avoid unused-parameter warning in field accessor listeners. (https://github.com/protocolbuffers/protobuf/commit/f4d5c2c571038146de2ee2b22f399527510501d2)
- Add new
always_print_without_presence_fields
option to the C++ JSON serializer. (https://github.com/protocolbuffers/protobuf/commit/671b61b523dbec8bf8e41a61d5a8f689c3e2bb9f) - Fail to build descriptor if
ctype
is specified for non string/bytes fields (https://github.com/protocolbuffers/protobuf/commit/8b4c7a1f33eb6849b57b6457d12adbd001109273) - Check
ctype()
inDescriptorBuilder
for edition 2023 and beyond. (https://github.com/protocolbuffers/protobuf/commit/307aeac9cf1b31a217921198e46a847179723240) - Fail building descriptors if
ctype
is used for fields other than string or bytes. (https://github.com/protocolbuffers/protobuf/commit/403e2078b4501359f04b2c0b60bf37b9305a9e0e) - Fix generation of
HasExtension
andExtensionSize
functions to restrict to the (https://github.com/protocolbuffers/protobuf/commit/9f5be076540d3b7374987ba42499080075dd6678) - Add the privacy manifest to the C++ CocoaPod. (https://github.com/protocolbuffers/protobuf/commit/982ea24a9471f5bfbf411568aec8c938dfa7f5ae)
Java
- Lazily resolve features for proto2 and proto3 for compatibility with old open source gencode that does not invoke feature resolution from gencode static init. (#16907) (https://github.com/protocolbuffers/protobuf/commit/4483c6bb28a117a3c9e635a5a87465278218b6c7)
- Add
java
to reserved names to escape extensions tojava_
. This may break existing references to gencode for extensions namedjava
. (https://github.com/protocolbuffers/protobuf/commit/c18cb9578209b74038e663fe62398b8f9633ccce) - Deprecate building from source with Maven to be removed in 4.28.x. (https://github.com/protocolbuffers/protobuf/commit/51b48a47913516f9985b232c0ed6e05d4631f753)
- Split bootstrapped
java_features.proto
to keep it from leaking out. (https://github.com/protocolbuffers/protobuf/commit/d56cb7d768e19f5b64b49ff6fd91688973bdedb6) - Refactored the Java generator into separate packages and targets. (https://github.com/protocolbuffers/protobuf/commit/bd81fd95f30af51e86a36cf0279abec17890a324)
- Define lifetimes of edition 2023 features (https://github.com/protocolbuffers/protobuf/commit/77f62de93e2e84d6aab0364629919779970fb9f1)
- Check that size is non-negative when reading string or bytes in
StreamDecoder
. (https://github.com/protocolbuffers/protobuf/commit/a94f57bd69e9a5999ba67736e4d70a9d7f96aaf5) - Fix text-format delimited field handling (https://github.com/protocolbuffers/protobuf/commit/29c69ff00b58b60e67fcf40fd810009bd39b86c6)
- Move
java_features.proto
tojava/core/srce/main/resources
(https://github.com/protocolbuffers/protobuf/commit/274bc7f26ff9da996714cf5cd011a7edaf6ce34c) - Add
java_features.proto
tokotlin_mvn
release (https://github.com/protocolbuffers/protobuf/commit/369732a581f44adc5a4dc5a03c866e9c7f04dc14) - Enable editions support for Java Lite. (https://github.com/protocolbuffers/protobuf/commit/500c953d105d0447479be259a5fb0b6f7124e978)
- Fix descriptor to access type via
getType()
s.t. messages using delimited encoding are consistently treated as groups for Java lite. (https://github.com/protocolbuffers/protobuf/commit/9f001a965872b1c82e0f61e53aefb92109357213) - Make
UnsafeByteOperations
stable; removing experimental annotation. (https://github.com/protocolbuffers/protobuf/commit/0070ac118863d7bfd12fa3eeab09e78178e41c65) - Fix features inheritance of
oneof
fields and extensions and fix/move unit tests to actually run. (https://github.com/protocolbuffers/protobuf/commit/eb10ebd169593600e57106d6cdc84d6ad226f9a8) - Add software prefetch to
ByteSizeLong
(https://github.com/protocolbuffers/protobuf/commit/948ca2e0f3e74a2444bc4c3cc8da1d0a4cb82058) - Rename the
includingDefaultValueWithoutPresenceFields
andalways_print_without_presence_fields
toalwaysPrintFieldsWithNoPresence
in the C++, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/7d43131a0a3a2a7640208849eeac016c6c61374e) - Add a new
includingDefaultValueWithoutPresenceFields
option to the Java parser which is intended to replace the currentincludingDefaultValueFields
. (https://github.com/protocolbuffers/protobuf/commit/58baeb4c3b664f8918d24cef5151083d9da9767c)
Kotlin
- Add
java_features.proto
tokotlin_mvn
release (https://github.com/protocolbuffers/protobuf/commit/369732a581f44adc5a4dc5a03c866e9c7f04dc14)
Csharp
- Regenerate stale files (https://github.com/protocolbuffers/protobuf/commit/c3417f582fd3d1f825bde4edfd9dc8a9fb3ba65c)
- Optimize JSON parsing in
JsonTokenizer
. (https://github.com/protocolbuffers/protobuf/commit/68e6e3e8eecd31b0078422f688a3f01fb881d367) - Avoid string concatenation when looking up enum values by name. (https://github.com/protocolbuffers/protobuf/commit/e6684ac037940c962c7fc3bd7b247b0e583bae2e)
- Cache
StringBuilder
instances in the .NETJsonTextTokenizer
. (https://github.com/protocolbuffers/protobuf/commit/fac929d9aa607ccdfd078344ac12cee7d2b3fdda) - Enable Editions in the C# generator. (https://github.com/protocolbuffers/protobuf/commit/421040b32b002828f0a37404b62e1454fb610761)
- Runtime support for Protobuf Editions in C#. (https://github.com/protocolbuffers/protobuf/commit/450022de9939f5eaf9f33696c17005ee7609eecc)
- Tweak "group to property name" mapping for C#. Under editions, where fields using a delimited encoding have independent field names from type names, we want to use the specified field name. (https://github.com/protocolbuffers/protobuf/commit/139ea4d38525281349e38bcfadce449a6990421c)
- Ignore invalid enum string values in JSON, when invalid fields are being ignored. (https://github.com/protocolbuffers/protobuf/commit/55e50ba40679eb82269c62872116b76c5923d74d)
Objective-C
- Optimize startup be reducing selector lookup. (https://github.com/protocolbuffers/protobuf/commit/b375d010bf57a6d673125330ec47f6e6a7e03f5c)
- Add the privacy manifest to the ObjC CocoaPod. (https://github.com/protocolbuffers/protobuf/commit/0d9151519f28a2221c980594257d88c8bfe1be51)
Python
- Add temporary alias for
system_python.bzl
at previous location . (#16787) (https://github.com/protocolbuffers/protobuf/commit/ffd753fb637b35b9b9c937eec31efc532546da5d) - Implement feature lifetime validation in
protoc
and the C++ runtime. (https://github.com/protocolbuffers/protobuf/commit/b3b4497d61cabf1d0d37b10178f93c570ec67ac6) - Fix text-format delimited field handling (https://github.com/protocolbuffers/protobuf/commit/29c69ff00b58b60e67fcf40fd810009bd39b86c6)
- Python JSON parser: Ignore invalid enum string values if
ignore_unknown_fields
is set (#15887) (https://github.com/protocolbuffers/protobuf/commit/86abf35ef5ee5b1004ec11bebb36d84c2ef6645e) - Fix upb python: DO NOT create empty optional field after sorting empty repeated field (https://github.com/protocolbuffers/protobuf/commit/7cf02389b30088182269a862f235712f60ab278a)
- Enable Protobuf Python version check. (https://github.com/protocolbuffers/protobuf/commit/0442ed62cbea989742933d6c90f4f0a70078959a)
- Register Scalar/MessageMapContainerTypes as virtual subclasses of MutableMapping instead of inheriting directly. (https://github.com/protocolbuffers/protobuf/commit/5b32936822e64b796fa18fcff53df2305c6b7686)
- Rename the
includingDefaultValueWithoutPresenceFields
andalways_print_without_presence_fields
toalwaysPrintFieldsWithNoPresence
in the C++, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/7d43131a0a3a2a7640208849eeac016c6c61374e) - Add new
including_default_value_without_presence_fields
to Python JSON serializer. (https://github.com/protocolbuffers/protobuf/commit/25c6d34d4ef6e19e490790b015764847f172a1a5) - Adhere to PEP 8 (#15127) (https://github.com/protocolbuffers/protobuf/commit/21ab7459ee43c0d5079e9f7708d453f68a5fd0e5)
PHP
- Don't break the trace (#11311) (https://github.com/protocolbuffers/protobuf/commit/d67f921f90e3aa03f65c3e1e507ca7017c8327a6)
- Fix inconsistent timestamp json encode/decode (#12396) (https://github.com/protocolbuffers/protobuf/commit/47e92cd689466a01ab128ac0bb02cfbde3a1fb46)
- Feat: more readable phpdoc escaping (#11208) (https://github.com/protocolbuffers/protobuf/commit/f929439ccd19872d71f56050e6ba7af3cd7c753c)
PHP C-Extension
- Regenerate stale files (https://github.com/protocolbuffers/protobuf/commit/c3417f582fd3d1f825bde4edfd9dc8a9fb3ba65c)
- See also UPB changes below, which may affect PHP C-Extension.
Ruby
- Add bigdecimal to dependencies (#16379) (https://github.com/protocolbuffers/protobuf/commit/d810ef6be77c079b890e92a20e5b37cfd8768a0b)
- Implement service & method descriptor lookup in Ruby (#15817) (https://github.com/protocolbuffers/protobuf/commit/2082ee8bb5a7966d7e921c848778eb0dec431d56)
- Implement edition 2023 support in all Ruby runtimes. (https://github.com/protocolbuffers/protobuf/commit/bca8fb6117cf24785edb238d96bffe2c3a6d7164)
- Ruby implement
memsize
functions for native types (#10291) (https://github.com/protocolbuffers/protobuf/commit/87cbdddbf0055d2dfeb87245984126fba7549d3e) - Moved
ObjectCache
into an internal module. (https://github.com/protocolbuffers/protobuf/commit/f824f6d0d7337b193e5a6d277236b79706a6c319) - [Ruby] Delegate difference, intersection, union from
RepeatedField
toArray
(#15652) (https://github.com/protocolbuffers/protobuf/commit/11eab86cc0ba1aecaa0dbb5e4a530cec274aa989) - Move the
RubyMessage.java
JSON "include defaults" to use alwaysPrintFieldsWithNoPresence. (https://github.com/protocolbuffers/protobuf/commit/4d23fa068a5eed1284645ef0d5ed32068986068f) - Increased the size of the error message buffer by 4x, to 511 bytes. (https://github.com/protocolbuffers/protobuf/commit/32a6f7a18c1bbf6c6eab3fa027bd0b33b62654d0)
Ruby C-Extension
- Regenerate stale files (https://github.com/protocolbuffers/protobuf/commit/c3417f582fd3d1f825bde4edfd9dc8a9fb3ba65c)
- Implement service & method descriptor lookup in Ruby (#15817) (https://github.com/protocolbuffers/protobuf/commit/2082ee8bb5a7966d7e921c848778eb0dec431d56)
- Implement edition 2023 support in all Ruby runtimes. (https://github.com/protocolbuffers/protobuf/commit/bca8fb6117cf24785edb238d96bffe2c3a6d7164)
- Ruby implement
memsize
functions for native types (#10291) (https://github.com/protocolbuffers/protobuf/commit/87cbdddbf0055d2dfeb87245984126fba7549d3e) - Moved
ObjectCache
into an internal module. (https://github.com/protocolbuffers/protobuf/commit/f824f6d0d7337b193e5a6d277236b79706a6c319) - See also UPB changes below, which may affect Ruby C-Extension.
UPB (Python/PHP/Ruby C-Extension)
- Regenerate stale files (https://github.com/protocolbuffers/protobuf/commit/c3417f582fd3d1f825bde4edfd9dc8a9fb3ba65c)
- Setup upb installation with
cmake
. (https://github.com/protocolbuffers/protobuf/commit/6898451f5e4c84e79a6f48ea6c46959960743970) - Fix text-format delimited field handling (https://github.com/protocolbuffers/protobuf/commit/29c69ff00b58b60e67fcf40fd810009bd39b86c6)
- Print non-extension fields by field number order instead of
.proto
file order. (https://github.com/protocolbuffers/protobuf/commit/8612d5e771877123e7fb74d91aaef3912a870a9a) - Implement service & method descriptor lookup in Ruby (#15817) (https://github.com/protocolbuffers/protobuf/commit/2082ee8bb5a7966d7e921c848778eb0dec431d56)
- Implement edition 2023 support in all Ruby runtimes. (https://github.com/protocolbuffers/protobuf/commit/bca8fb6117cf24785edb238d96bffe2c3a6d7164)
- Adds mutable extension accessors to the codegen for upb C for getting mutable extension messages. (https://github.com/protocolbuffers/protobuf/commit/e8244da7c65cac3a410711fd324de73b78a645e7)
- Ruby implement
memsize
functions for native types (#10291) (https://github.com/protocolbuffers/protobuf/commit/87cbdddbf0055d2dfeb87245984126fba7549d3e) - Increased the size of the error message buffer by 4x, to 511 bytes. (https://github.com/protocolbuffers/protobuf/commit/32a6f7a18c1bbf6c6eab3fa027bd0b33b62654d0)
Other
- MODULE.bazel fixes for protobuf BCR release. (#16927) (https://github.com/protocolbuffers/protobuf/commit/f396506571fa1837704588b38cfb099f36c84fe3)
- Fix whitespace merge issue in gencode (https://github.com/protocolbuffers/protobuf/commit/f8a4a6880ec6453c5a9427a240169e917eacd3a3)
- Work around windows path length limitations by moving immutable -> full in open source (new generator paths) and shortening long file names. (#16825) (https://github.com/protocolbuffers/protobuf/commit/615e7045c5cee13cff3484f67dfb5d7fdd851909)
- Move the windows path length workarounds out of protobuf-ci (https://github.com/protocolbuffers/protobuf/commit/9d715cb69d198c520a0ff953251a08ddc909f7a7)
- Update
src/file_lists.cmake
for staleness (https://github.com/protocolbuffers/protobuf/commit/cd337dda70a25ccfee0f53daf758f8516b8af0c1) - Add
system_python
toprotobuf_deps.bzl
. (https://github.com/protocolbuffers/protobuf/commit/65ee12380e284c1ca8a3a1921c2682876896a87c) - Migrate bazel tests to protobuf-ci. (https://github.com/protocolbuffers/protobuf/commit/1ee203b04546d3575b102535b57188b2ccbaaca1)
- Fix bazel cache issues in 7.0.0 (https://github.com/protocolbuffers/protobuf/commit/16acf7ed86f5fcc2f2b68b108b397412121bb6c6)
- Add redirects for C++ and Java proto rules (https://github.com/protocolbuffers/protobuf/commit/9da1b86c30a12286f63501fe7eace2153ed2bc34)
- Add redirects for proto rules (https://github.com/protocolbuffers/protobuf/commit/d4d34abd7d66dc93c8f7f52f28411cd9c2867c29)
- Feat: automate publishing releases to Bazel Central Registry (#16014) (https://github.com/protocolbuffers/protobuf/commit/d2b71b347df6c8af5c3ee1c833f41b7772e3f250)
- Add PrivacyInfo.xcprivacy (#15557) (https://github.com/protocolbuffers/protobuf/commit/684660f025703afbc4775dedf9a0bf732b696cf1)
v26.1
: Protocol Buffers v26.1
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Expand cpp_features_proto_srcs visibility (https://github.com/protocolbuffers/protobuf/commit/2d3d8ba410550082ee20777653a2a1d515ff8036)
- Move java_features.proto to java/core/srce/main/resources (https://github.com/protocolbuffers/protobuf/commit/22f11700bc7b352308a3f49ba99639f9de8aaffa)
Java
- Fix validateFeatures to be called after resolved features are actually set to this.features (https://github.com/protocolbuffers/protobuf/commit/9bf69ecc833757839421b89e92ddb4dc09b2af0d)
- Move java_features.proto to java/core/srce/main/resources (https://github.com/protocolbuffers/protobuf/commit/22f11700bc7b352308a3f49ba99639f9de8aaffa)
- Set label to REQUIRED for descriptors with LEGACY_REQUIRED feature. (https://github.com/protocolbuffers/protobuf/commit/4886a9cd8ffe81caf4c4b5b9ef7ce0de426a7b08)
- Add java_features.proto to kotlin_mvn release (https://github.com/protocolbuffers/protobuf/commit/0e4abf965ca48568457824ddb7944a4e70674411)
Kotlin
- Add java_features.proto to kotlin_mvn release (https://github.com/protocolbuffers/protobuf/commit/0e4abf965ca48568457824ddb7944a4e70674411)
Ruby
- Cherry-pick required label handling in JRuby field descriptor from https://github.com/protocolbuffers/protobuf/commit/bca8fb6117cf24785edb238d96bffe2c3a6d7164 (https://github.com/protocolbuffers/protobuf/commit/2e51ff6de3e8c594d965b2ad8952b911383cf0bf)
Other
- Update protoc release to include editions language features protos for Java and C++ (https://github.com/protocolbuffers/protobuf/commit/7f457737f37373c181b649d4eb01e23bd198bcb4)
- Fix Android platforms constraint (#16246) (#16271) (https://github.com/protocolbuffers/protobuf/commit/b4e18708070a75d80965fb16ced60661e531bd9a)
- Add back android config_setting that looks for //external:android/crosstool (#16127) (#16264) (https://github.com/protocolbuffers/protobuf/commit/a97c927b51a140bb4b47726a0f61afaef44f0f6e)
v26.0
: Protocol Buffers v26.0
Announcements
-
This version includes breaking changes to: Java, PHP, C++, Ruby, Python.
- [Java] Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
- [Java] Remove unused helper methods for creating new mutable arraylists. (https://github.com/protocolbuffers/protobuf/commit/787447430fc9a69c071393e85a380b664d261ab4)
- [Java] Use Editions features in Java full runtimes. (https://github.com/protocolbuffers/protobuf/commit/65c65c2d04b293225db150029d005056a9f078b8)
- [Java] Stop generating the "newInstance" method. This is not used anymore. (https://github.com/protocolbuffers/protobuf/commit/c0d08bdcade9d44698015b85c9c23343ca1319b7)
- [Java] Remove unused overload of AbstractMessageLite.addAll that worked on a Collection instead of a List. (https://github.com/protocolbuffers/protobuf/commit/3b9bd6db71d20832980e579e0b9b03eb39e96a1f)
- [Java] Remove obsolete runtime internalBuildGeneratedFileFrom which was for backwards compatibility with old gencode. (https://github.com/protocolbuffers/protobuf/commit/9310d2e817a987878b03f8b5215fdbfea766ad23)
- [Java] Remove unnecessary overloads of methods: (https://github.com/protocolbuffers/protobuf/commit/94a2a448518403341b8aa71335ab1123fbdcccd8)
- [Java] Remove unnecessary generated overrides for GeneratedMessage.Builder methods: (https://github.com/protocolbuffers/protobuf/commit/7bff169d32710b143951ec6ce2c4ea9a56e2ad24)
- [Java] The base class for generated messages will be GeneratedMessage, not GeneratedMessageV3.
- [Java] Remove deprecated runtime methods for compatibility with old v2.x.x gencode. (https://github.com/protocolbuffers/protobuf/commit/e555bd23d077216ea40006c45eeaaa5aa385d921)
- [Java] Remove deprecated TextFormat print methods. These should be replaced by corresponding TextFormat.printer() methods. (https://github.com/protocolbuffers/protobuf/commit/dfb8a4c3f75910d37095a990706c0ae2c2e26b0f)
- [Java] Lock down visibility for descriptor syntax APIs. (https://github.com/protocolbuffers/protobuf/commit/1aeacd4f4eb4e0aa05d6336e2988a565e475e9a0)
- [Java] Make deprecated Java gencode PARSER variable private. (https://github.com/protocolbuffers/protobuf/commit/b4858b255bcf24d05789ce23c297e33524dd37fe)
- [PHP] Validate UTF-8 in string setters, as previously announced. (https://github.com/protocolbuffers/protobuf/commit/d14dbbc838ad0439c6968f46ac92204557aa31a1)
- [PHP] Remove deprecated legacy class aliases. (#15709) (https://github.com/protocolbuffers/protobuf/commit/096e127d02ca4f49220f46a42feacf0b1e1bb18f)
- [PHP] Remove support for PHP generic services (https://github.com/protocolbuffers/protobuf/commit/40ad3fac603ba3c96e52a1266cd785a7adb8e3e4)
- [C++] Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
- [C++] Remove const GetArena method on RepeatedPtrField (https://github.com/protocolbuffers/protobuf/commit/748ab1608a33dd3d28070d6df54c8956aa893985)
- [C++] Disallow incorrect ctype usage (https://github.com/protocolbuffers/protobuf/commit/755b690a7c31d92103343f20ba32d752495e60a3)
- [C++] Remove deprecated std::string error collector overrides (https://github.com/protocolbuffers/protobuf/commit/543fbcdbd9496de9d93a6eb4645640cb47a5514b)
- [C++] Promote ExtensionRange to a proper class (https://github.com/protocolbuffers/protobuf/commit/5b12bc858f1f0e02477ac3e3e3fea5bc88f1bdc3)
- [C++] Remove deprecated clear APIs on repeated fields (https://github.com/protocolbuffers/protobuf/commit/229906f3091742e05e51445a66164025b0244409)
- [C++] Remove C++ legacy syntax descriptor APIs (https://github.com/protocolbuffers/protobuf/commit/cf2d6965dcb6e15490232041da8b7b6c8ec669eb)
- [C++] Remove deprecated syntax APIs (https://github.com/protocolbuffers/protobuf/commit/715b543e0416006ae17dfd409fe41a070e3cc49c)
- [C++] Remove deprecated SupportsUnknownEnumValues method (https://github.com/protocolbuffers/protobuf/commit/0a6a51655f3f6af554766d88b6d717e31af34b01)
- [Ruby] Removed
syntax
and addedhas_presence?
/is_packed?
. (https://github.com/protocolbuffers/protobuf/commit/dbd4dcede084f7c301bfdf229e1e51dfd3e1179f) - [Ruby] Fixed json_encode/json_decode to use the message's pool. (https://github.com/protocolbuffers/protobuf/commit/a8b8ea02b74095042a6c4a6acb50498a1a2c4570)
- [Ruby] Freeze is now recursive, affecting all sub-messages, maps, and repeated fields. (https://github.com/protocolbuffers/protobuf/commit/31313b16522b36394d460055f6a49000ae939153)
- [Ruby] Fixed inconsistencies in
Message#to_h
, as previously announced. (https://github.com/protocolbuffers/protobuf/commit/fd699383f44d6847fa6ddc3e0c9c94e77e3cf8dc) - [Ruby] Dropped support for Ruby DSL, as previously announced. (https://github.com/protocolbuffers/protobuf/commit/5cfc9e775d76acb37e5b554e53dff336a89d000f)
- [Ruby] Lock down visibility for descriptor syntax APIs. (https://github.com/protocolbuffers/protobuf/commit/1aeacd4f4eb4e0aa05d6336e2988a565e475e9a0)
- [Python] Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
- [Python] Removed obsolete/duplicate
setup.py
from Python. (#15708) (https://github.com/protocolbuffers/protobuf/commit/5722aeffcad72e9a335a3ec7985858dfa31477be) - [Python] Made text_format output default to UTF-8. (https://github.com/protocolbuffers/protobuf/commit/bf00034493381f6ae2b49f04e101b3251bb099c9)
- [Python] Remove RegisterExtension in message class (https://github.com/protocolbuffers/protobuf/commit/4ebba684c791416a9131dd01d4c5175a2beb3566)
- [Python] Reject extend repeated field with none iterable (Raise TypeError) (https://github.com/protocolbuffers/protobuf/commit/1658213ba84a641531948aa9cdc3b53bebf20190)
- [Python] Remove Deprecated APIs that add non top descriptor. (https://github.com/protocolbuffers/protobuf/commit/c51f1110224910015ed90d7d6fb27ff24243baa8)
- [Python] Check if Timestamp is valid. (https://github.com/protocolbuffers/protobuf/commit/4f77929203cbf33ae3a710f7370794e36912acbc)
- [Python] Remove msg.UnknownFields() support in pure python and cpp extension. (https://github.com/protocolbuffers/protobuf/commit/0eac77c2c6389bd7f3fb21fa43ed13108ab0600f)
- [Python] Remove deprecated syntax accessor. (https://github.com/protocolbuffers/protobuf/commit/fd40c87befa92c1b944ae5fbd42bafe41003ad4e)
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Add <shellapi.h> include for CommandLineToArgvW (https://github.com/protocolbuffers/protobuf/commit/2299e1db6fdd0e76b7a757241a6a443200477b8e)
- Fix getting env variables on windows (#15518) (https://github.com/protocolbuffers/protobuf/commit/71b0b4e0a9f2d9080f167c03dcafbd8b1823fb76)
- Proper fix utf8 command line arguments (#14253) (https://github.com/protocolbuffers/protobuf/commit/1eff9d74519c7d21592dddc3c3665993bb0f117f)
- Allocate an editions FeatureSet extension for https://github.com/bufbuild/protobuf-es (https://github.com/protocolbuffers/protobuf/commit/fedd34df47ad442e1cc41b1a828955f384a0c9e2)
- Make rules_ruby a dev-only dependency. (https://github.com/protocolbuffers/protobuf/commit/571b727cb66ad51f89fbef565d3a6c123366a1f5)
C++
- Remove rust proto libraries from the editions/BUILD file. (https://github.com/protocolbuffers/protobuf/commit/1f9d9fbe14b78857adab835e8d0dc9c703088078)
- Fix CMake regex escaping. (https://github.com/protocolbuffers/protobuf/commit/3ad69cf8b07ebcd54e76ee5360586a41b4f9d627)
- Escape _from_dir in install.cmake for regex special characters (e.g. c++) before REGEX REPLACE. (https://github.com/protocolbuffers/protobuf/commit/f740f528fa08f9d126650d92472a921e53a95a73)
- Tweak BUILD setup to make the layering check change less disruptive (#15838) (https://github.com/protocolbuffers/protobuf/commit/52aa1506e9b0183bf1dbb1506967a152ffba8721)
- Add missing alias targets for C++ util libraries (#15783) (https://github.com/protocolbuffers/protobuf/commit/62e7a56f50d88fdd0ebcb0430103120d60bd9863)
- Breaking change: Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
- Rename the 'includingDefaultValueWithoutPresenceFields' and 'always_print_without_presence_fields' to 'alwaysPrintFieldsWithNoPresence' in the Cpp, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/fc41e78d7a5ead031f23ba2e1dcf35fdf941751a)
- Add new 'always_print_without_presence_fields' option to the C++ JSON serializer. (https://github.com/protocolbuffers/protobuf/commit/1f3bf1d31ed4b45ff1ac463941784b9dcba15bc8)
- Remove use of mach_absolute_time (#15554) (#15662) (https://github.com/protocolbuffers/protobuf/commit/8b0f6fdcca7c0344358d415d12548196032e5279)
- Check ctype() in DescriptorBuilder for edition 2023 and beyond. (https://github.com/protocolbuffers/protobuf/commit/0090f195f007cd48f7040746983a7a0905d914d1)
- Fail building descriptors if
ctype
is used for fields other than string or bytes. (https://github.com/protocolbuffers/protobuf/commit/624d65da6aa8bb28421310ba1ae53183fd7066bb) - [CPP] Add the privacy manifest to the C++ CocoaPod. (#15664) (https://github.com/protocolbuffers/protobuf/commit/e7888a1068ddcfd0c91fef4dec76c8cea2befe9a)
- Correct type_resolver_util to set syntax=proto3 instead of syntax=proto2 on proto3 files. (https://github.com/protocolbuffers/protobuf/commit/040dde7e37ccb36cd4243292f12116ef242eb3f1)
- Remove edition getter from C++ descriptor APIs (https://github.com/protocolbuffers/protobuf/commit/93b219f4e84d83415ad7b77f5bc0ae2df5490fea)
- Breaking change: Remove const GetArena method on RepeatedPtrField (https://github.com/protocolbuffers/protobuf/commit/748ab1608a33dd3d28070d6df54c8956aa893985)
- Breaking change: Disallow incorrect ctype usage (https://github.com/protocolbuffers/protobuf/commit/755b690a7c31d92103343f20ba32d752495e60a3)
- Breaking change: Remove deprecated std::string error collector overrides (https://github.com/protocolbuffers/protobuf/commit/543fbcdbd9496de9d93a6eb4645640cb47a5514b)
- Breaking change: Promote ExtensionRange to a proper class (https://github.com/protocolbuffers/protobuf/commit/5b12bc858f1f0e02477ac3e3e3fea5bc88f1bdc3)
- Breaking change: Remove deprecated clear APIs on repeated fields (https://github.com/protocolbuffers/protobuf/commit/229906f3091742e05e51445a66164025b0244409)
- Breaking change: Remove C++ legacy syntax descriptor APIs (https://github.com/protocolbuffers/protobuf/commit/cf2d6965dcb6e15490232041da8b7b6c8ec669eb)
- Fixed UTF-8 TextFormat output to protect against invalid UTF-8 in string fields. (https://github.com/protocolbuffers/protobuf/commit/1ac8c04604fe8ba119cdcdaeb1e22ae962de40e3)
- Breaking change: Remove deprecated syntax APIs (https://github.com/protocolbuffers/protobuf/commit/715b543e0416006ae17dfd409fe41a070e3cc49c)
- Fix DurationToMilliseconds mult overflow (https://github.com/protocolbuffers/protobuf/commit/17b8dd6476cf663517393fd866e888af2494bdb2)
- Breaking change: Remove deprecated SupportsUnknownEnumValues method (https://github.com/protocolbuffers/protobuf/commit/0a6a51655f3f6af554766d88b6d717e31af34b01)
- Have Arena::Create support arena constructible types (https://github.com/protocolbuffers/protobuf/commit/578e07e9bd19b4ae959c57bbe4c1524d5642b58e)
- Enforce stricter version checks for Protobuf C++ by removing the notion of "minimal version of protoc/headers"; exact version match is required. (https://github.com/protocolbuffers/protobuf/commit/6eed7a2f53bf29e615e6c34ecb7c98ea8eab4d1c)
- Compare explicit zeroes from prototext in partially. (https://github.com/protocolbuffers/protobuf/commit/8c2416311f7b2c5410e620197baacf9d82b86ebd)
- Move the declarations in SerialArena to more closely match the style guide. (https://github.com/protocolbuffers/protobuf/commit/349122f777a3d6029e9a189729720b0842072a71)
Java
- Resolve features directly in setProto instead of temporarily setting to null. (https://github.com/protocolbuffers/protobuf/commit/aea0e52ec2b5ecab632299eedde77894b75d5495)
- Breaking change: Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
- Rename the 'includingDefaultValueWithoutPresenceFields' and 'always_print_without_presence_fields' to 'alwaysPrintFieldsWithNoPresence' in the Cpp, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/fc41e78d7a5ead031f23ba2e1dcf35fdf941751a)
- Add a new 'includingDefaultValueWithoutPresenceFields' option to the Java parser which is intended to replace the current 'includingDefaultValueFields'. (https://github.com/protocolbuffers/protobuf/commit/043191b84d6061ed923d1c227ef38030f18fe619)
- Force descriptor initialization of dependencies before internalUpdateFileDescriptor(). (#15718) (https://github.com/protocolbuffers/protobuf/commit/4dec1a7d410c9380fb0bbb177666764af4bddda2)
- Correctly set maven-compiler-plugin to >= Java 1.8 per our minimum Java version (#15707) (https://github.com/protocolbuffers/protobuf/commit/6028cdba533994ee23cc7cf0247e46d561ad379d)
- Update internalUpdateFileDescriptor() to synchronize setProto() and resolveAllFeatures() to avoid data races. (#15659) (https://github.com/protocolbuffers/protobuf/commit/225b08088c54f8c89df284ac538b266109cec4c4)
- Drop Protobuf support for Android KitKat per EOL and add existing minimum Java 1.8 in Maven pom.xmls (https://github.com/protocolbuffers/protobuf/commit/303239d74d07daf49ecdba6e23e41c8fe5a9b41e)
- Breaking change: Remove unused helper methods for creating new mutable arraylists. (https://github.com/protocolbuffers/protobuf/commit/787447430fc9a69c071393e85a380b664d261ab4)
- Breaking change: Use Editions features in Java full runtimes. (https://github.com/protocolbuffers/protobuf/commit/65c65c2d04b293225db150029d005056a9f078b8)
- Breaking change: Stop generating the "newInstance" method. This is not used anymore. (https://github.com/protocolbuffers/protobuf/commit/c0d08bdcade9d44698015b85c9c23343ca1319b7)
- Breaking change: Remove unused overload of AbstractMessageLite.addAll that worked on a Collection instead of a List. (https://github.com/protocolbuffers/protobuf/commit/3b9bd6db71d20832980e579e0b9b03eb39e96a1f)
- Breaking change: Remove obsolete runtime internalBuildGeneratedFileFrom which was for backwards compatibility with old gencode. (https://github.com/protocolbuffers/protobuf/commit/9310d2e817a987878b03f8b5215fdbfea766ad23)
- Breaking change: Remove unnecessary overloads of methods: (https://github.com/protocolbuffers/protobuf/commit/94a2a448518403341b8aa71335ab1123fbdcccd8)
- Breaking change: Remove unnecessary generated overrides for GeneratedMessage.Builder methods: (https://github.com/protocolbuffers/protobuf/commit/7bff169d32710b143951ec6ce2c4ea9a56e2ad24)
- Breaking change: The base class for generated messages will be GeneratedMessage, not GeneratedMessageV3.
- Breaking change: Remove deprecated runtime methods for compatibility with old v2.x.x gencode. (https://github.com/protocolbuffers/protobuf/commit/e555bd23d077216ea40006c45eeaaa5aa385d921)
- Breaking change: Remove deprecated TextFormat print methods. These should be replaced by corresponding TextFormat.printer() methods. (https://github.com/protocolbuffers/protobuf/commit/dfb8a4c3f75910d37095a990706c0ae2c2e26b0f)
- Support pretty printing proto2 Extensions inside of proto3 Anys in TextFormat.Printer. (https://github.com/protocolbuffers/protobuf/commit/c8e01607aec4c09f510aa7e0d5df6a204e74189e)
- Breaking change: Lock down visibility for descriptor syntax APIs. (https://github.com/protocolbuffers/protobuf/commit/1aeacd4f4eb4e0aa05d6336e2988a565e475e9a0)
- Enable Protobuf version validations in Protobuf Java Full. (https://github.com/protocolbuffers/protobuf/commit/a2f92689dac8a7dbea584919c7de52d6a28d66d1)
- Breaking change: Make deprecated Java gencode PARSER variable private. (https://github.com/protocolbuffers/protobuf/commit/b4858b255bcf24d05789ce23c297e33524dd37fe)
- Add Automatic-Module-Name (#14562) (https://github.com/protocolbuffers/protobuf/commit/d580fde63aa8ea5c6f4619396e68aaf017fc9d61)
- Use Editions features in Java, Kotlin, and Java Lite code generators. (https://github.com/protocolbuffers/protobuf/commit/90e1b49f0f838a3bedb0d485a7f323e468730eb7)
Kotlin
- Breaking change: Use Editions features in Java full runtimes. (https://github.com/protocolbuffers/protobuf/commit/65c65c2d04b293225db150029d005056a9f078b8)
- Breaking change: The base class for generated messages will be GeneratedMessage, not GeneratedMessageV3.
- Use Editions features in Java, Kotlin, and Java Lite code generators. (https://github.com/protocolbuffers/protobuf/commit/90e1b49f0f838a3bedb0d485a7f323e468730eb7)
Objective-C
- [ObjC] Use a local to avoid warnings in 32bit builds. (#15665) (https://github.com/protocolbuffers/protobuf/commit/394aec87f47f449673c7b32246338b68ac2215fa)
- [ObjC] Add the privacy manifest to the ObjC CocoaPod. (#15663) (https://github.com/protocolbuffers/protobuf/commit/935fcb7c6d8c9932081f358c2c2561e9f71e312a)
- Improve handing of the WKT ObjC Category additions. (https://github.com/protocolbuffers/protobuf/commit/b146d14e31e5488978517396406f9afe2664f0b0)
- Add a
unpack
helper for GPBAny with extension support. (https://github.com/protocolbuffers/protobuf/commit/29fca8a64b62491fb0a2ce61878e70eda88dde98)
Rust
- Tweak BUILD setup to make the layering check change less disruptive (#15838) (https://github.com/protocolbuffers/protobuf/commit/52aa1506e9b0183bf1dbb1506967a152ffba8721)
Python
- Adhere to PEP 8 (#15127) (#15729) (https://github.com/protocolbuffers/protobuf/commit/3b92f4fe38ec98f081a45dc4a6e7583ecbfa4aaf)
- Breaking change: Remove the deprecated always_print_primitive_fields option from Java, Python and C++ JSON parsers. (https://github.com/protocolbuffers/protobuf/commit/06e7caba58ede0220b110b89d08f329e5f8a7537)
- Rename the 'includingDefaultValueWithoutPresenceFields' and 'always_print_without_presence_fields' to 'alwaysPrintFieldsWithNoPresence' in the Cpp, Py and Java JSON serializers for consistency. (https://github.com/protocolbuffers/protobuf/commit/fc41e78d7a5ead031f23ba2e1dcf35fdf941751a)
- Add new including_default_value_without_presence_fields to Python JSON serializer. (https://github.com/protocolbuffers/protobuf/commit/c530216544611bad1d5a4be48412c81a5a41d9a7)
- Breaking change: Removed obsolete/duplicate
setup.py
from Python. (#15708) (https://github.com/protocolbuffers/protobuf/commit/5722aeffcad72e9a335a3ec7985858dfa31477be) - Fixed a bug when deep copying a map field with a closed enum value. (https://github.com/protocolbuffers/protobuf/commit/ca5ca62fa60a52bae31f3828e5135cbf034237ae)
- Breaking change: Made text_format output default to UTF-8. (https://github.com/protocolbuffers/protobuf/commit/bf00034493381f6ae2b49f04e101b3251bb099c9)
- Fixed a SEGV when deep copying a non-reified sub-message. (https://github.com/protocolbuffers/protobuf/commit/b9e4894462fab2e35da987a44fbe464b4c1d0140)
- Make
str(msg)
in Python print raw UTF-8 strings. Only invalid UTF-8 is escaped. (https://github.com/protocolbuffers/protobuf/commit/f2a91b33e1d7ccae295a966c932551096881c16a) - Breaking change: Remove RegisterExtension in message class (https://github.com/protocolbuffers/protobuf/commit/4ebba684c791416a9131dd01d4c5175a2beb3566)
- Breaking change: Reject extend repeated field with none iterable (Raise TypeError) (https://github.com/protocolbuffers/protobuf/commit/1658213ba84a641531948aa9cdc3b53bebf20190)
- Breaking change: Remove Deprecated APIs that add non top descriptor. (https://github.com/protocolbuffers/protobuf/commit/c51f1110224910015ed90d7d6fb27ff24243baa8)
- Breaking change: Check if Timestamp is valid. (https://github.com/protocolbuffers/protobuf/commit/4f77929203cbf33ae3a710f7370794e36912acbc)
- [Python/upb] Fixed SEGV when attempting to delete a message attribute (https://github.com/protocolbuffers/protobuf/commit/de52944f389c85943f35049cc9cdf9ea0a3ca380)
- Breaking change: Remove msg.UnknownFields() support in pure python and cpp extension. (https://github.com/protocolbuffers/protobuf/commit/0eac77c2c6389bd7f3fb21fa43ed13108ab0600f)
- Breaking change: Remove deprecated syntax accessor. (https://github.com/protocolbuffers/protobuf/commit/fd40c87befa92c1b944ae5fbd42bafe41003ad4e)
- Fixed a bug where FileDescriptor maps like
message_types_by_name
could return descriptors from other files. (https://github.com/protocolbuffers/protobuf/commit/c05b320d9c18173bfce36c4bef22f9953d340ff9) - Mark the python generator for editions support. (https://github.com/protocolbuffers/protobuf/commit/b01bd1ba17e85a3922e475f89ccc2fb89ba153a3)
- Add support and partial CI coverage for Python 3.12 (https://github.com/protocolbuffers/protobuf/commit/24fef03259d65987e5df14b06952b6e6bdac88d0)
- Implement Editions in Pure Python. (https://github.com/protocolbuffers/protobuf/commit/15eccf3ec4636cab20a16b7570d3967d79ecfa95)
- Properly untrack Python GC objects during deallocation. (https://github.com/protocolbuffers/protobuf/commit/e32d0948e7b2799037be0e4364816249119acc3f)
- Raise warnings for python syntax usages (https://github.com/protocolbuffers/protobuf/commit/c508a40f40c0b4f1e562ef917cd5606d66d9601c)
- Fixed Python memory leak in map lookup. (https://github.com/protocolbuffers/protobuf/commit/b0eeb356b84fb7e8773c9a0dd76b354ae2e3f218)
- Fix handling of Unicode escapes in string data in textproto files. (https://github.com/protocolbuffers/protobuf/commit/62a435c1ab81ea65850f1b1fb58f7b3c6f498cef)
PHP
- Don't break the trace (#11311) (#15727) (https://github.com/protocolbuffers/protobuf/commit/3e9902408fecc9a05028d864ee62439360736e94)
- Fix inconsistent timestamp json encode/decode (#12396) (#15726) (https://github.com/protocolbuffers/protobuf/commit/e99f27ec0691aa3a277cb34125600498617216c7)
- Breaking change: Remove deprecated legacy class aliases. (#15709) (https://github.com/protocolbuffers/protobuf/commit/096e127d02ca4f49220f46a42feacf0b1e1bb18f)
- Raise minimum PHP version to 8.1, due to PHP 8.0 EOL per https://cloud.google.com/php/getting-started/supported-php-versions (https://github.com/protocolbuffers/protobuf/commit/3c8a3d27f7c035e977e2eb5226e4154f129a573b)
- Breaking change: Validate UTF-8 in string setters, as previously announced. (https://github.com/protocolbuffers/protobuf/commit/d14dbbc838ad0439c6968f46ac92204557aa31a1)
- Breaking change: Remove support for PHP generic services (https://github.com/protocolbuffers/protobuf/commit/40ad3fac603ba3c96e52a1266cd785a7adb8e3e4)
- Expand PHP generator to support overlapping subset of proto2. (https://github.com/protocolbuffers/protobuf/commit/b603fb69bf0c1aef24dfe5470c9d4ae99b9031b1)
- Feat: better debug info for PHP messages and repeated fields (#12718) (https://github.com/protocolbuffers/protobuf/commit/59d5006d6073602675c9d9f418353a566a085658)
PHP C-Extension
- Updated amalgamations for PHP and Ruby. (https://github.com/protocolbuffers/protobuf/commit/c773dc9f640b12ade7de2ce89dc6bc712071ecf9)
- Breaking change: Validate UTF-8 in string setters, as previously announced. (https://github.com/protocolbuffers/protobuf/commit/d14dbbc838ad0439c6968f46ac92204557aa31a1)
- Optimized binary/JSON parsing to no longer copy input data into a temp buffer. (https://github.com/protocolbuffers/protobuf/commit/588d5aa0dbee01c6caf51add7c7ed74edbe0c794)
- See also UPB changes below, which may affect PHP C-Extension.
Ruby
- Ruby implement memsize functions for native types (#10291) (https://github.com/protocolbuffers/protobuf/commit/4902fc08c82d79fe55f9e8626697780b1f6e6c1a)
- Moved ObjectCache into an internal module. (https://github.com/protocolbuffers/protobuf/commit/9087337e5103d058887c691913b08182ea8da899)
- Increased the size of the error message buffer by 4x, to 511 bytes. (#15728) (https://github.com/protocolbuffers/protobuf/commit/ab6bcba754c7c5d57d7b627a83614b77b64a7cf9)
- Move the RubyMessage.java JSON "include defaults" to use alwaysPrintFieldsWithNoPresence. (https://github.com/protocolbuffers/protobuf/commit/b5beba3aa15f76967c00c3b2c90b58abd51123bb)
- Breaking change: Removed
syntax
and addedhas_presence?
/is_packed?
. (https://github.com/protocolbuffers/protobuf/commit/dbd4dcede084f7c301bfdf229e1e51dfd3e1179f) - Breaking change: Fixed json_encode/json_decode to use the message's pool. (https://github.com/protocolbuffers/protobuf/commit/a8b8ea02b74095042a6c4a6acb50498a1a2c4570)
- Breaking change: Freeze is now recursive, affecting all sub-messages, maps, and repeated fields. (https://github.com/protocolbuffers/protobuf/commit/31313b16522b36394d460055f6a49000ae939153)
- Breaking change: Fixed inconsistencies in
Message#to_h
, as previously announced. (https://github.com/protocolbuffers/protobuf/commit/fd699383f44d6847fa6ddc3e0c9c94e77e3cf8dc) - Breaking change: Dropped support for Ruby DSL, as previously announced. (https://github.com/protocolbuffers/protobuf/commit/5cfc9e775d76acb37e5b554e53dff336a89d000f)
- In Ruby repeated fields, each_index actually iterates over the index (#11767) (https://github.com/protocolbuffers/protobuf/commit/f869cfa479c293ecd55c2f8ccbf981cd3bb41ecf)
- Breaking change: Lock down visibility for descriptor syntax APIs. (https://github.com/protocolbuffers/protobuf/commit/1aeacd4f4eb4e0aa05d6336e2988a565e475e9a0)
- Make rules_ruby a dev-only dependency. (https://github.com/protocolbuffers/protobuf/commit/571b727cb66ad51f89fbef565d3a6c123366a1f5)
- Add support for extensions in CRuby, JRuby, and FFI Ruby (#14703) (https://github.com/protocolbuffers/protobuf/commit/42f8b7782ed539d56d0f0e13da4e85603553e828)
- Add support for options in CRuby, JRuby and FFI (#14594) (https://github.com/protocolbuffers/protobuf/commit/ae1f2b7e1b329aba1d204e6d3ddc61a88bc35dd9)
Ruby C-Extension
- Updated amalgamations for PHP and Ruby. (https://github.com/protocolbuffers/protobuf/commit/c773dc9f640b12ade7de2ce89dc6bc712071ecf9)
- Ruby implement memsize functions for native types (#10291) (https://github.com/protocolbuffers/protobuf/commit/4902fc08c82d79fe55f9e8626697780b1f6e6c1a)
- Moved ObjectCache into an internal module. (https://github.com/protocolbuffers/protobuf/commit/9087337e5103d058887c691913b08182ea8da899)
- Breaking change: Removed
syntax
and addedhas_presence?
/is_packed?
. (https://github.com/protocolbuffers/protobuf/commit/dbd4dcede084f7c301bfdf229e1e51dfd3e1179f) - Breaking change: Fixed json_encode/json_decode to use the message's pool. (https://github.com/protocolbuffers/protobuf/commit/a8b8ea02b74095042a6c4a6acb50498a1a2c4570)
- Breaking change: Freeze is now recursive, affecting all sub-messages, maps, and repeated fields. (https://github.com/protocolbuffers/protobuf/commit/31313b16522b36394d460055f6a49000ae939153)
- Breaking change: Fixed inconsistencies in
Message#to_h
, as previously announced. (https://github.com/protocolbuffers/protobuf/commit/fd699383f44d6847fa6ddc3e0c9c94e77e3cf8dc) - Upb: fix Ruby bug which allowed map.delete(key) on a frozen map (https://github.com/protocolbuffers/protobuf/commit/df57e5474bf3ce211329e55993cb991a7ce1c5e0)
- Add support for extensions in CRuby, JRuby, and FFI Ruby (#14703) (https://github.com/protocolbuffers/protobuf/commit/42f8b7782ed539d56d0f0e13da4e85603553e828)
- Add support for options in CRuby, JRuby and FFI (#14594) (https://github.com/protocolbuffers/protobuf/commit/ae1f2b7e1b329aba1d204e6d3ddc61a88bc35dd9)
- See also UPB changes below, which may affect Ruby C-Extension.
UPB (Python/PHP/Ruby C-Extension)
- Ruby implement memsize functions for native types (#10291) (https://github.com/protocolbuffers/protobuf/commit/4902fc08c82d79fe55f9e8626697780b1f6e6c1a)
- Increased the size of the error message buffer by 4x, to 511 bytes. (#15728) (https://github.com/protocolbuffers/protobuf/commit/ab6bcba754c7c5d57d7b627a83614b77b64a7cf9)
- Wrap C++ headers in
#ifdef __cplusplus
. (https://github.com/protocolbuffers/protobuf/commit/fc2d9da9c06d7469aabba5e49037950e1d9323c9) - Add kUpb_DecodeOption_AlwaysValidateUtf8 decode option, to force UTF-8 validation of proto2 strings. (https://github.com/protocolbuffers/protobuf/commit/d4dfb9c4a67e24afa0465735a84a381d0833211d)
- Fixed non-conformance in upb JSON enum decoding when ignoring unknown enum values. (https://github.com/protocolbuffers/protobuf/commit/c16ac66e8581b55471eff9860b02e3d32cae7a79)
- Fix upb's json decoder ignoring trailing characters after a successfully parsed object. (https://github.com/protocolbuffers/protobuf/commit/fa15c2160eaeb8d11ed71ba956da0c27d268ec6d)
- Fix upb_MiniTable_GetOneof(miniTable, field) to work correctly if
field
is the very first field in the proto. (https://github.com/protocolbuffers/protobuf/commit/e6ea44c9119b0f5976ea7b335395753833fc382d) - Enabled editions support for upb generated code. (https://github.com/protocolbuffers/protobuf/commit/cf3a6f5868222d31021e3835e5e7890a847f3d01)
- Upb: stop generating hazzers for repeated fields (https://github.com/protocolbuffers/protobuf/commit/fa62c920716804a576ce388e6894fa15209df41a)
Other
- Add back error message unconditionally (https://github.com/protocolbuffers/protobuf/commit/64ad139c83aa54028d46f815850b58c542c5e26d)
- Actually fail if staleness fail (https://github.com/protocolbuffers/protobuf/commit/108bec33cda5b8ce080ff88854bf15866f2fca68)
- Disabled macOS 8.2, to match main. (https://github.com/protocolbuffers/protobuf/commit/9dfa2b6d0a452abb85abaaf949400c965f8f3b0c)
- Add PrivacyInfo.xcprivacy (#15557) (#15661) (https://github.com/protocolbuffers/protobuf/commit/5a5ec6ced8de00306e5ab9773874b5192166811f)
- Extend Proto2 JSON test cases to cover more of the preexisting Proto3 JSON cases. (https://github.com/protocolbuffers/protobuf/commit/42ecd61b3e15430bb393b467bb39520025efdc63)
- Include JSON output tests with Proto2 messages in the conformance test suite. (https://github.com/protocolbuffers/protobuf/commit/255f95e5b19c142ece319cc35c1b3808ec0e259f)
- Make the utf8_range implementation just in C (https://github.com/protocolbuffers/protobuf/commit/9c7d2b9d83e0ad4e8ffeb8535d8c0a31a0a6a0b8)
- Open-source editions Bazel rules for embedding defaults. (https://github.com/protocolbuffers/protobuf/commit/898d8fa1fd6ff07149b283b3bbff00a6a3d8c52b)
- Enable conformance tests over editions protos (https://github.com/protocolbuffers/protobuf/commit/a2ba8bc78e49b8b9053654030f5254fc38a7da93)
- Move utf8_range into the protobuf repo (https://github.com/protocolbuffers/protobuf/commit/5ca84008fcc400276124b14a08a8c32e9b37b2bd)
v25.5
: Protocol Buffers v25.5
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Fix cord handling in DynamicMessage and oneofs. (#18375) (https://github.com/protocolbuffers/protobuf/commit/e67347986eaf7d777a6ee34367fa99f4912423ab)
Java
- Add recursion check when parsing unknown fields in Java. (https://github.com/protocolbuffers/protobuf/commit/4728531c162f2f9e8c2ca1add713cfee2db6be3b)
Python
- Fixed a SEGV when deep copying a non-reified sub-message. (https://github.com/protocolbuffers/protobuf/commit/94a26630e362a4771b5ec80eac49f494988ca408)
v25.4
: Protocol Buffers v25.4
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Java
- Check that size is non-negative when reading string or bytes in StreamDecoder. (https://github.com/protocolbuffers/protobuf/commit/165cf123c13df4fc6a38a9324c85309c4d571348)
- Add Automatic-Module-Name (#14562) (https://github.com/protocolbuffers/protobuf/commit/552ad3124bc538e6d34b29b5673c69ca93dfb985)
PHP
PHP C-Extension
- Regen stale files (https://github.com/protocolbuffers/protobuf/commit/367c7bea8dd5505f817f41e052e50caa694fb0e6)
Ruby
Ruby C-Extension
- Regen stale files (https://github.com/protocolbuffers/protobuf/commit/367c7bea8dd5505f817f41e052e50caa694fb0e6)
Other
- Drop 2.7 in linux test (#17524) (https://github.com/protocolbuffers/protobuf/commit/314fc8b134c3769efa99651d5daebf57578a01cc)
- Fix targets (https://github.com/protocolbuffers/protobuf/commit/eb1fdd39b44817f63d14c3e3321128e04350d220)
- Update bazel to 6.3.2 (https://github.com/protocolbuffers/protobuf/commit/a5dadc3eeedd3e35d9cb02ac5c9a5670994c1abe)
- Backport staleness changes to 25.x (https://github.com/protocolbuffers/protobuf/commit/c3b9b4fb21ae324694c7e8ba53ee1ac3155adae9)
- Downgrade CMake to 3.29 to workaround Abseil issue. (https://github.com/protocolbuffers/protobuf/commit/bdb1f75fdb0224960972d59faac0ee889cfcf053)
- Upgrade macos-11 tests to macos-12 (https://github.com/protocolbuffers/protobuf/commit/27041afb837fc48b01889ea3efea2b98b99cccb7)
- Use explicit names of our large runners (https://github.com/protocolbuffers/protobuf/commit/c73d6c8d2e4f8c0068fde63b2077dcd9a64a1e02)
- Upgrade our C++ release tests to large runners. (https://github.com/protocolbuffers/protobuf/commit/8ec9a435bf648093dc0900bd7612b2dca80e1d25)
- Downgrade our sanitized builds to ubuntu-20. (https://github.com/protocolbuffers/protobuf/commit/892a2ce89a26a1194d28bc4eb288314d1c878bb7)
- Disable TSAN tests due to what appears to be a sanitizer bug (https://github.com/protocolbuffers/protobuf/commit/aa32865ff14613f48c9128c736b3dd3ee66a3684)
- Disable MacOS C++ Cmake test for now. (https://github.com/protocolbuffers/protobuf/commit/6b1c2535dcc3be1c514ad400756c5a7aca7645f0)
- Update setup-php to 2.30.0 and re-enable macOS PHP 8.2 tests. (https://github.com/protocolbuffers/protobuf/commit/220a74b6e2114c3b9bf8f2550e627d4ea65436b6)
- Add back error message unconditionally (https://github.com/protocolbuffers/protobuf/commit/f60c624178a739c7fbe0ef033724f2298c59b394)
- Pin bazel 6 for 25.x (https://github.com/protocolbuffers/protobuf/commit/3b72455389a60ceaf52f0d76935ba66c38f714ed)
- Actually fail if staleness fail (https://github.com/protocolbuffers/protobuf/commit/868882552dcd872b984a33153c227fddef1ab206)
v25.3
: Protocol Buffers v25.3
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Requirement
Apple Privacy Manifest- [CPP] Add the privacy manifest to the C++ CocoaPod. (https://github.com/protocolbuffers/protobuf/commit/9d1bc1041be5fefa82e8c9823e79c263f6d8b2ac)
- [ObjC] Add the privacy manifest to the ObjC CocoaPod. (https://github.com/protocolbuffers/protobuf/commit/cec08dc615df059d1a93fe03c4e617bba679fa69)
- Add PrivacyInfo.xcprivacy (#15557) (https://github.com/protocolbuffers/protobuf/commit/cf87faa29b57a304a0cfe5af4e9b7a5c659c62b4)
C++
- Remove use of mach_absolute_time (#15554) (https://github.com/protocolbuffers/protobuf/commit/76d05d4cb9200c371c8894df21f37ba4060bdc8a)
Objective-C
- [ObjC] Use a local to avoid warnings in 32bit builds. (https://github.com/protocolbuffers/protobuf/commit/9dc736d924f6839073028a4d806a3b85f01000cf)
Python
- Bump python version to 3.9 for gcloud 460.0.0 (https://github.com/protocolbuffers/protobuf/commit/17ec19db930216d59eb8efdb0bbf6d1f5355f147)
Ruby
- Update Ruby GHA to test against Ruby 3.3. (https://github.com/protocolbuffers/protobuf/commit/25b1e8112079e6d463196fc137cc8d1925205426)
- Pin bundler version to 2.4.22 for Ruby 2.7 support. (https://github.com/protocolbuffers/protobuf/commit/80b4586fb42cc86c0eab9d5d8c823c0b963eee7e)
v25.2
: Protocol Buffers v25.2
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Only substitute prefixes during installation setup. (https://github.com/protocolbuffers/protobuf/commit/05ad6525c3aae2ae5b6e1987227445a420caada7)
- Register a shutdown delete for C++ feature defaults (https://github.com/protocolbuffers/protobuf/commit/3d5c709ebe01f1f9f3d3345cd4239e239081f8fd)
v25.1
: Protocol Buffers v25.1
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Python
- Raise warnings for deprecated python syntax usages (https://github.com/protocolbuffers/protobuf/commit/74f5cf4106d7bcdd4612caed9f85af5096f4a390)
Ruby
- Add support for extensions in CRuby, JRuby, and FFI Ruby (#14703) (#14756) (https://github.com/protocolbuffers/protobuf/commit/e4b00c75ecbc40389615ddf5482dbabc3a354eea)
- Add support for options in CRuby, JRuby and FFI (#14594) (#14739) (https://github.com/protocolbuffers/protobuf/commit/2495d4f96bf4edcc4f770ceb27ae98c71a56fcdb)
v25.0
: Protocol Buffers v25.0
Announcements
- This release fixes CVE-2024-2410 (note: there may be a delay in the publication of this CVE number), a minor vulnerability in the C++ JSON parser. In certain situations, a malicious JSON input could cause the parser to copy data that has already been freed into an error message. This can only happen if the code is parsing from a stream with separate chunks rather than a contiguous array. The bug was introduced in 4.22.0 and was fixed with
b955165
in 4.25.0 and up. - Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Implement proto2/proto3 with editions (https://github.com/protocolbuffers/protobuf/commit/3813b6622f6490b969c16e1b1ba7dcbd8f4e3209)
- Defines Protobuf compiler version strings as macros and separates out suffix string definition. (https://github.com/protocolbuffers/protobuf/commit/3c59585bc116bee70f5f00a10005ea1403aef062)
- Add utf8_validation feature back to the global feature set. (https://github.com/protocolbuffers/protobuf/commit/153028d7f3029e066bb2287012e14417ca83d55c)
- Setting up version updater to prepare for poison pills and embedding version info into C++, Python and Java gencode. (https://github.com/protocolbuffers/protobuf/commit/4322e00e5b4c2f36016f0eee614e0e823a693ed4)
- Merge the protobuf and upb Bazel repos (https://github.com/protocolbuffers/protobuf/commit/7286ffceb2f0a4489672a90c823e00425ab8ab5c)
- Editions: Introduce functionality to protoc for generating edition feature set defaults. (https://github.com/protocolbuffers/protobuf/commit/4019e254322b2312cc7431b45ae71bb8e3dfa035)
- Editions: Migrate edition strings to enum in C++ code. (https://github.com/protocolbuffers/protobuf/commit/f083ebf21f56783fd838c006880f8e16e05d1f1e)
- Create a reflection helper for ExtensionIdentifier. (https://github.com/protocolbuffers/protobuf/commit/4d5ab7324ef4d79eda69c8ed5bcb35f35e6db6f1)
- Editions: Provide an API for C++ generators to specify their features. (https://github.com/protocolbuffers/protobuf/commit/e897bcf3ff8004b7446bbe43a1fc28f9a92a11d4)
- Editions: Refactor feature resolution to use an intermediate message. (https://github.com/protocolbuffers/protobuf/commit/57d8049b01b4bd95a1ca156eb375b523dc7d5d56)
- Publish extension declarations with declaration verifications. (https://github.com/protocolbuffers/protobuf/commit/e72b0e181b236ff23c03a9f9f97f58e6989f25c9)
- Editions: Stop propagating partially resolved feature sets to plugins. (https://github.com/protocolbuffers/protobuf/commit/b66ef4c3f0af899e3736ad016259f9446f0adb14)
- Editions: Migrate string_field_validation to a C++ feature (https://github.com/protocolbuffers/protobuf/commit/1f9583069f0e2b11790ea36cc760ee371106f232)
- Editions: Include defaults for any features in the generated pool. (https://github.com/protocolbuffers/protobuf/commit/15863ffc9aff9d31e9f25a7f11a2d499b0170bc3)
- Protoc: parser rejects explicit use of map_entry option (#13479) (https://github.com/protocolbuffers/protobuf/commit/8f5929230d5c5d117b84953463ef0da6d29ad36d)
- Protoc: validate that reserved range start is before end (#13474) (https://github.com/protocolbuffers/protobuf/commit/3be00f7638b9a61d2f0318ceac9d7d89d5af66b6)
- Protoc: support identifiers as reserved names in addition to string literals (only in editions) (#13471) (https://github.com/protocolbuffers/protobuf/commit/e701f4fa77620fc29109efc6902003d2cc93a30d)
- Drop support for Bazel 5. (https://github.com/protocolbuffers/protobuf/commit/a80daa2a2caaaac9ebe9ae6bb1b639c2771c5c55)
- Allow code generators to specify whether or not they support editions. (https://github.com/protocolbuffers/protobuf/commit/2176a145ba210c286177032037e736bf97158f7d)
C++
- Set
PROTOBUF_EXPORT
onInternalOutOfLineDeleteMessageLite()
(#14434) (https://github.com/protocolbuffers/protobuf/commit/db89a51e4557c40abc8845b13277a83cdf917382) - Update stale checked-in files (#14431) (https://github.com/protocolbuffers/protobuf/commit/ada0be86608dc10b3c2c46e7e2a0951015abbcc3)
- Apply PROTOBUF_NOINLINE to declarations of some functions that want it. (https://github.com/protocolbuffers/protobuf/commit/6e848b00c95556d4f4fc7a1a512cd31a33de75d6)
- Implement proto2/proto3 with editions (https://github.com/protocolbuffers/protobuf/commit/3813b6622f6490b969c16e1b1ba7dcbd8f4e3209)
- Make JSON UTF-8 boundary check inclusive of the largest possible UTF-8 character. (https://github.com/protocolbuffers/protobuf/commit/e80b8ec620d71cdeca000dce835e5a167a8dc370)
- Reduce
Map::size_type
to 32-bits. Protobuf containers can't have more than (https://github.com/protocolbuffers/protobuf/commit/95d2b2ed5039c1b1606a5f8c9d9cb362a2a33c95) - Defines Protobuf compiler version strings as macros and separates out suffix string definition. (https://github.com/protocolbuffers/protobuf/commit/3c59585bc116bee70f5f00a10005ea1403aef062)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated oneof accessors. (https://github.com/protocolbuffers/protobuf/commit/e33e0d2ba569c8a7d6d74b5a8b39d804ec2a0169) - Fix bug in reflection based Swap of map fields. (https://github.com/protocolbuffers/protobuf/commit/bef5b759f1fa511e3c08380a4e8635832d5d39fd)
- Add utf8_validation feature back to the global feature set. (https://github.com/protocolbuffers/protobuf/commit/153028d7f3029e066bb2287012e14417ca83d55c)
- Setting up version updater to prepare for poison pills and embedding version info into C++, Python and Java gencode. (https://github.com/protocolbuffers/protobuf/commit/4322e00e5b4c2f36016f0eee614e0e823a693ed4)
- Add prefetching to arena allocations. (https://github.com/protocolbuffers/protobuf/commit/fbdeb5af0b0f89dec79efc371ba75f838ffad2e8)
- Merge the protobuf and upb Bazel repos (https://github.com/protocolbuffers/protobuf/commit/7286ffceb2f0a4489672a90c823e00425ab8ab5c)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated repeated and map field accessors. (https://github.com/protocolbuffers/protobuf/commit/9a0a3cf0cd8b4ac5c8a06db89f76c5d754f850d0) - Editions: Migrate edition strings to enum in C++ code. (https://github.com/protocolbuffers/protobuf/commit/f083ebf21f56783fd838c006880f8e16e05d1f1e)
- Workaround ICE on gcc 7.5 by not having one overload call the other one with a (https://github.com/protocolbuffers/protobuf/commit/0522054f3ee5e32c9df15af7c11f046e91e77998)
- Create a reflection helper for ExtensionIdentifier. (https://github.com/protocolbuffers/protobuf/commit/4d5ab7324ef4d79eda69c8ed5bcb35f35e6db6f1)
- Editions: Provide an API for C++ generators to specify their features. (https://github.com/protocolbuffers/protobuf/commit/e897bcf3ff8004b7446bbe43a1fc28f9a92a11d4)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated string field accessors. (https://github.com/protocolbuffers/protobuf/commit/18c338a699e7dfe85de014bf74cdf9c8a5ee155f) - Editions: Refactor feature resolution to use an intermediate message. (https://github.com/protocolbuffers/protobuf/commit/57d8049b01b4bd95a1ca156eb375b523dc7d5d56)
- Fixes for 32-bit MSVC. (https://github.com/protocolbuffers/protobuf/commit/66cf6b1d9c22333a20d83ee02472e2e7162a8da6)
- Publish extension declarations with declaration verifications. (https://github.com/protocolbuffers/protobuf/commit/e72b0e181b236ff23c03a9f9f97f58e6989f25c9)
- Export the constants in protobuf's any.h to support DLL builds. (https://github.com/protocolbuffers/protobuf/commit/fd24b1bef4a5969ca1e1875e53e31f866e4b757b)
- Implement AbslStringify for the Descriptor family of types. (https://github.com/protocolbuffers/protobuf/commit/230232a041d7bce0080f459512ee2162ee9233e7)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated message field accessors. (https://github.com/protocolbuffers/protobuf/commit/064035c0978516dceb64512e2e5fcf26aa2dedaa) - Editions: Stop propagating partially resolved feature sets to plugins. (https://github.com/protocolbuffers/protobuf/commit/b66ef4c3f0af899e3736ad016259f9446f0adb14)
- Editions: Migrate string_field_validation to a C++ feature (https://github.com/protocolbuffers/protobuf/commit/1f9583069f0e2b11790ea36cc760ee371106f232)
- Editions: Include defaults for any features in the generated pool. (https://github.com/protocolbuffers/protobuf/commit/15863ffc9aff9d31e9f25a7f11a2d499b0170bc3)
- Introduce C++ feature for UTF8 validation. (https://github.com/protocolbuffers/protobuf/commit/c7119e6d56ea8e29f32ce5eb84fca82799095239)
- Protoc: validate that reserved range start is before end (#13474) (https://github.com/protocolbuffers/protobuf/commit/3be00f7638b9a61d2f0318ceac9d7d89d5af66b6)
- Remove option to disable the table-driven parser in protoc. (https://github.com/protocolbuffers/protobuf/commit/6d03f9b19bd7aa10d541f6c1a11ac71f2851eece)
- Lock down ctype=CORD in proto file. (https://github.com/protocolbuffers/protobuf/commit/b359e5020a68ce84faec5952100ae482e9eb0b1c)
- Support split repeated fields. (https://github.com/protocolbuffers/protobuf/commit/5b5e5bf5444f80033977d22024cf2dffd5d1c89b)
- In OSS mode omit some extern template specializations. We have seen reports of (https://github.com/protocolbuffers/protobuf/commit/ab968248b02842cf7733ba867cb6a53e680956c1)
- Automated rollback of commit
adb2c4b
. (https://github.com/protocolbuffers/protobuf/commit/0ea00526a11c405b342463cf75f40ca5753d4a0c) - Allow code generators to specify whether or not they support editions. (https://github.com/protocolbuffers/protobuf/commit/2176a145ba210c286177032037e736bf97158f7d)
- Handle conflicting macros for FreeBSD (#13303) (https://github.com/protocolbuffers/protobuf/commit/2a952958eb1d4ea13fee2ad657a537ad443adf8f)
Java
- Implement proto2/proto3 with editions (https://github.com/protocolbuffers/protobuf/commit/3813b6622f6490b969c16e1b1ba7dcbd8f4e3209)
- Remove synthetic oneofs from Java gencode field accessor tables. (https://github.com/protocolbuffers/protobuf/commit/9ad2268544a345d9ed449e766999388b895d18a3)
- Timestamps.parse: Add error handling for invalid hours/minutes in the timezone offset. (https://github.com/protocolbuffers/protobuf/commit/8f8513835c0c4ebe206a5ead04a1bd0c8c7d1dbf)
- Defines Protobuf compiler version strings as macros and separates out suffix string definition. (https://github.com/protocolbuffers/protobuf/commit/3c59585bc116bee70f5f00a10005ea1403aef062)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated oneof accessors. (https://github.com/protocolbuffers/protobuf/commit/e33e0d2ba569c8a7d6d74b5a8b39d804ec2a0169) - Automated rollback of commit
2a55706
. (https://github.com/protocolbuffers/protobuf/commit/30b6251dea7a0ff1713a97d7e7d29a48e4880f59) - Add missing debugging version info to Protobuf Java gencode when multiple files are generated. (https://github.com/protocolbuffers/protobuf/commit/301dfc5aebb37eee302beef408b6ba4b4eaf4425)
- Fix a bad cast in putBuilderIfAbsent when already present due to using the result of put() directly (which is null if it currently has no value) (https://github.com/protocolbuffers/protobuf/commit/785c82dbdea5085628f2a41437aa1198860f3342)
- Setting up version updater to prepare for poison pills and embedding version info into C++, Python and Java gencode. (https://github.com/protocolbuffers/protobuf/commit/4322e00e5b4c2f36016f0eee614e0e823a693ed4)
- Fix a NPE in putBuilderIfAbsent due to using the result of put() directly (which is null if it currently has no value) (https://github.com/protocolbuffers/protobuf/commit/47cec39ab36daf5264c2faf05d2ed4d0f48c1bc7)
- Update Kotlin compiler to escape package names (#13310) (https://github.com/protocolbuffers/protobuf/commit/437ec356fbe15d8737d797505aafb8e2b2629e7b)
- Add MapFieldBuilder and change codegen to generate it and the put{field}BuilderIfAbsent method. (https://github.com/protocolbuffers/protobuf/commit/955d4ab0d681d2bf60b481c1d066eee543ab1b8c)
- Introduce recursion limit in Java text format parsing (https://github.com/protocolbuffers/protobuf/commit/bca3bed137d013d4a654ffec52c0d44a3202aab2)
- Consider the protobuf.Any invalid if typeUrl.split("/") returns an empty array. (https://github.com/protocolbuffers/protobuf/commit/004f54af8f014c3e8a65db1b4459cfa70502e3ce)
- Mark
FieldDescriptor.hasOptionalKeyword()
as deprecated. (https://github.com/protocolbuffers/protobuf/commit/d6157f7c7ec78a6942cfd6d96d2e0b40e007ae0d)
Kotlin
- Add ByteString.isNotEmpty Kotlin extension function. (https://github.com/protocolbuffers/protobuf/commit/961779e164a8f8a015a44b082c01da2e1273b26c)
Csharp
- Add C# deterministic serialization (#13160) (https://github.com/protocolbuffers/protobuf/commit/96100bf1e49c5452f21e4446e43f5e7526f1351f)
- Add .NET debugging attributes (#14097) (https://github.com/protocolbuffers/protobuf/commit/67b9c76752b21c894bc8d7d59b3f6b2dc078c7b1)
- Improve .NET debugging of Protobuf messages (#13838) (https://github.com/protocolbuffers/protobuf/commit/e519c62f827a5f354c9253419c2fb5c230622311)
- Lock down ctype=CORD in proto file. (https://github.com/protocolbuffers/protobuf/commit/b359e5020a68ce84faec5952100ae482e9eb0b1c)
Objective-C
- Merge the protobuf and upb Bazel repos (https://github.com/protocolbuffers/protobuf/commit/7286ffceb2f0a4489672a90c823e00425ab8ab5c)
- [ObjC] Flip the default for two generation options. (https://github.com/protocolbuffers/protobuf/commit/08bbb577e8de8cd9afd56c6f78ab86418ef4bd4e)
- [ObjC] Enable generation of .proto files using editions. (https://github.com/protocolbuffers/protobuf/commit/55ab8316c14569cadc578e15ffdea4f1bcbb0964)
- [ObjC] add "generate_minimal_imports" generation option (https://github.com/protocolbuffers/protobuf/commit/0b817d46d4ca1977d3dccf2442aeee3c9e98e3a1)
- [ObjC] Add generation control for descriptor custom options. (https://github.com/protocolbuffers/protobuf/commit/bd9d6895c3d3f5f186d31b3e41bc0ad6af9d3129)
- Lock down ctype=CORD in proto file. (https://github.com/protocolbuffers/protobuf/commit/b359e5020a68ce84faec5952100ae482e9eb0b1c)
Rust
- Merge the protobuf and upb Bazel repos (https://github.com/protocolbuffers/protobuf/commit/7286ffceb2f0a4489672a90c823e00425ab8ab5c)
Python
- Fixed Python memory leak in map lookup. (https://github.com/protocolbuffers/protobuf/commit/1711ebd4559313555e89d0f56294842779c7e900)
- Loosen upb for json name conflict check in proto2 between json name and field (https://github.com/protocolbuffers/protobuf/commit/41af1d53a2d82ee17d6a3ac8a81ea2a93040ad82)
- Defines Protobuf compiler version strings as macros and separates out suffix string definition. (https://github.com/protocolbuffers/protobuf/commit/3c59585bc116bee70f5f00a10005ea1403aef062)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated oneof accessors. (https://github.com/protocolbuffers/protobuf/commit/e33e0d2ba569c8a7d6d74b5a8b39d804ec2a0169) - Ensure Timestamp.ToDatetime(tz) has correct offset (https://github.com/protocolbuffers/protobuf/commit/f0c56f9bc49b5015293eb5242a1982107b7c8b39)
- Do not check required field for upb python MergeFrom (https://github.com/protocolbuffers/protobuf/commit/1e0bc565a0f02b5f833f6057f13021a96a329eeb)
- Setting up version updater to prepare for poison pills and embedding version info into C++, Python and Java gencode. (https://github.com/protocolbuffers/protobuf/commit/4322e00e5b4c2f36016f0eee614e0e823a693ed4)
- Merge the protobuf and upb Bazel repos (https://github.com/protocolbuffers/protobuf/commit/7286ffceb2f0a4489672a90c823e00425ab8ab5c)
- Comparing a proto message with an object of unknown returns NotImplemented (https://github.com/protocolbuffers/protobuf/commit/12d4f418a7311ed4d381bf82caead11d03ae7911)
- Emit slots in pyi output as a tuple rather than a list for --pyi_out. (https://github.com/protocolbuffers/protobuf/commit/4a4f61589d3b258b5f1d2be752ff5dd01e7283d8)
- Fix a bug that strips options from descriptor.proto in Python. (https://github.com/protocolbuffers/protobuf/commit/27d42c5ba7ab65956e71b9d825f68ef84c38bbde)
- Raise warings for message.UnknownFields() usages and navigate to the new add (https://github.com/protocolbuffers/protobuf/commit/c988759a9bb5ce719721b6581d035c277b147db2)
- Add protobuf python keyword support in path for stub generator. Also added tests for (https://github.com/protocolbuffers/protobuf/commit/4cc258a6a1cb6d3e526e3ca2f6ab7748ee84e2e3)
- Add tuple support to set Struct (https://github.com/protocolbuffers/protobuf/commit/533fbbb45e666784a671aa9cb4ed5dd6a844a5a9)
Python C-Extension (Default)
- Comparing a proto message with an object of unknown returns NotImplemented (https://github.com/protocolbuffers/upb/commit/243add441169730acc42e6bad3a1a06a7f0b8e69)
- See also UPB changes below, which may affect Python C-Extension (Default).
PHP
- Merge the protobuf and upb Bazel repos (https://github.com/protocolbuffers/protobuf/commit/7286ffceb2f0a4489672a90c823e00425ab8ab5c)
PHP C-Extension
- Bump minimum PHP to 8.0 (https://github.com/protocolbuffers/protobuf/commit/b4abcef8a954383d860a9367465fb398e5992d82)
- See also UPB changes below, which may affect PHP C-Extension.
Ruby
- Check that ffi-compiler loads before using it to define tasks. (#14538) (#14560) (https://github.com/protocolbuffers/protobuf/commit/0a5d6d4a45880a3076681cbd7d88e0985b4ccdb7)
- Ruby FFI implementation (#13343) (https://github.com/protocolbuffers/protobuf/commit/c52d80cf04274aefd557e2bc93f64bb71c097645)
Ruby C-Extension
- Merge the protobuf and upb Bazel repos (https://github.com/protocolbuffers/protobuf/commit/7286ffceb2f0a4489672a90c823e00425ab8ab5c)
- Ruby: Fix object cache lookups on 32-bit platforms (#13494) (https://github.com/protocolbuffers/protobuf/commit/055c3782f6911822667157dab58341e44f9deedc)
- Ruby FFI implementation (#13343) (https://github.com/protocolbuffers/protobuf/commit/c52d80cf04274aefd557e2bc93f64bb71c097645)
- See also UPB changes below, which may affect Ruby C-Extension.
UPB (Python/PHP/Ruby C-Extension)
- Include .inc files directly instead of through a filegroup (#14575) (https://github.com/protocolbuffers/protobuf/commit/8defef58f4367d3a968b44000698e308a035ab9e)
- Loosen upb for json name conflict check in proto2 between json name and field (https://github.com/protocolbuffers/protobuf/commit/41af1d53a2d82ee17d6a3ac8a81ea2a93040ad82)
- Add utf8_validation feature back to the global feature set. (https://github.com/protocolbuffers/protobuf/commit/153028d7f3029e066bb2287012e14417ca83d55c)
- Do not check required field for upb python MergeFrom (https://github.com/protocolbuffers/protobuf/commit/1e0bc565a0f02b5f833f6057f13021a96a329eeb)
- Merge the protobuf and upb Bazel repos (https://github.com/protocolbuffers/protobuf/commit/7286ffceb2f0a4489672a90c823e00425ab8ab5c)
- Cherry-pick recent changes from the upb repo (#13908) (https://github.com/protocolbuffers/protobuf/commit/b2e39c175a690ba76f1cf05ebb17f003f6bcd610)
- Added malloc_trim() calls to Python allocator so RSS will decrease when memory is freed (https://github.com/protocolbuffers/protobuf/commit/56e9f2b4e467a7df5989a61eec142df7c72ab796)
- Upb: fix a Python memory leak in ByteSize() (https://github.com/protocolbuffers/protobuf/commit/e45a6d50682d5d4b204e7d76254b1585b43c6815)
- Support ASAN detection on clang (#1424) (https://github.com/protocolbuffers/upb/commit/1b0011dfef3062ac25b0b2250c3140312b97fdf0)
- Upb: bugfix for importing a proto3 enum from within a proto2 file (https://github.com/protocolbuffers/upb/commit/b19edc5ce0b0dd6591e7b8f65430b0f3e3ea1c29)
- Expose methods needed by Ruby FFI using UPB_API (#1391) (https://github.com/protocolbuffers/upb/commit/01fed1cc1ba255bf22b49393ba054b8d270e6ba3)
- Fix
PyUpb_Message_MergeInternal
segfault (#1338) (https://github.com/protocolbuffers/upb/commit/cefa206f546ce36f895cd02ab5a7e8a1f6918a22)
Other
- Expose alias to protobuf_nowkt runtime (https://github.com/protocolbuffers/protobuf/commit/5b6c2459b57c23669d6efc5a14a874c693004eec)
- Update absl submodule and dep to latest
2023080
.0 LTS (#13515) (https://github.com/protocolbuffers/protobuf/commit/e7bb34db3c57617f772a04d343a8bfa5109cf6cf)
v24.4
: Protocol Buffers v24.4
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Add dependency on absl::layout, and explicitly include absl layout includes (#14042) (https://github.com/protocolbuffers/protobuf/commit/96c1a7d47702f6c82b96e2a0ff112b30ea85c330)
- Include Abseil's str_cat.h for absl::AlphaNum (#14054) (https://github.com/protocolbuffers/protobuf/commit/955d371eacedc37eeff8bf61a1046d694a5fbc8a)
Java
- Rolled back breaking change to gencode before 3.15 (#14246) (https://github.com/protocolbuffers/protobuf/commit/b9cf19ba5ec4aa6ff108933fa4a1adb075f8c4fb)
Python
- Fix python code generation compatibility with Cython (#14240) (https://github.com/protocolbuffers/protobuf/commit/fe87c909399c45d54374817a52af40d6cfd8e063)
v24.3
: Protocol Buffers v24.3
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Workaround ICE on gcc 7.5 by not having one overload call the other one with a (#13808) (https://github.com/protocolbuffers/protobuf/commit/398a84ce486d282e217f1120b810626c6b71f058)
Python
Python C-Extension (Default)
- Added malloc_trim() calls to Python allocator so RSS will decrease when memory is freed (https://github.com/protocolbuffers/upb/commit/b0f5d5d94d9faafed2ab0fcaa9396cb4a984a2c1)
UPB (Python/PHP/Ruby C-Extension)
v24.2
: Protocol Buffers v24.2
C++
- Fixes for 32-bit MSVC. (https://github.com/protocolbuffers/protobuf/commit/01e1a5c28ae00cca0821a95e3c68447df4d1591c)
v24.1
: Protocol Buffers v24.1
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Python
Python C-Extension (Default)
- Revert CopyFrom() optimization that was causing crashes back to Serialize/Parse (https://github.com/protocolbuffers/upb/commit/78e96941a47108dae2bbcb39cc481a848d3bfa67)
Ruby
Ruby C-Extension
- Ruby: Fix object cache lookups on 32-bit platforms (#13494) (#13580) (https://github.com/protocolbuffers/protobuf/commit/3094b492468caafcdb61c132dab636cc3c87773f)
v24.0
: Protocol Buffers v24.0
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Drop support for Bazel 5. (https://github.com/protocolbuffers/protobuf/commit/fff490558816802c5b3d51169f797046f369453f)
- Allow code generators to specify whether or not they support editions. (https://github.com/protocolbuffers/protobuf/commit/e2cec78455769881b9e8c23babeb3fe8effe81fe)
- Release prototype of Protobuf Editions. (https://github.com/protocolbuffers/protobuf/commit/4f9e41767a819abf8108bb29e4910fbc0f37dc6e)
- Compiler: Correct depfile generation when there are no outputs (https://github.com/protocolbuffers/protobuf/commit/a44fc2b063d7466d48e2aeba05f9c35654140d87)
- Add dllexport_decl for generated default instance. (#13085) (https://github.com/protocolbuffers/protobuf/commit/9d0961afb712de0aa6f6fea681f4a7241faac6e2)
- In TSan mode, detect concurrent mutations of repeated/map fields. (https://github.com/protocolbuffers/protobuf/commit/d800c5f08b184d261e6c47662035d554f109eb3b)
- Add a workaround for GCC constexpr bug (https://github.com/protocolbuffers/protobuf/commit/e15326ba807a49365b6c9f5958e969b5aa915f8c)
- Turn on the table-driven parser by default, as it is no longer experimental. (https://github.com/protocolbuffers/protobuf/commit/c3e2efe70bbdfba4dd1f5c570043688fcbe74497)
- Shrink code size of generated protocol buffer code via a few (https://github.com/protocolbuffers/protobuf/commit/97c351319ffa9715ed11a883c4adbaadf63a2fcc)
- Implement enforcement of target constraints (https://github.com/protocolbuffers/protobuf/commit/e3848c19988e56a20fbd3fab5d181df6de575a69)
- Fix(libprotoc): export useful symbols from .so (https://github.com/protocolbuffers/protobuf/commit/44b4bcc9e08b91dfeeb608c9d7c815f7cf2e00de)
C++
- In OSS mode omit some extern template specializations. We have seen reports of compilers falling over due to the size of translation units. (https://github.com/protocolbuffers/protobuf/commit/2ed49c95f9abbdf35e741c8a4e85976142fa9ff8)
- Automated rollback of commit
adb2c4b
. (https://github.com/protocolbuffers/protobuf/commit/9f2d7ea773217cac09630eef63d91e22b1b00d60) - Fix building shared libraries on MinGW-w64 (#13240) (https://github.com/protocolbuffers/protobuf/commit/c2f07bb80f5273f5ba8f3e1c25d124f47e3f5430)
- Enable TSan validation to detect when a mutable accessor of a message is called concurrently with another accessor on the same message, which is a data race. (https://github.com/protocolbuffers/protobuf/commit/0275e516229daca19d29b5915ec78fe19e317e43)
- Release prototype of Protobuf Editions. (https://github.com/protocolbuffers/protobuf/commit/4f9e41767a819abf8108bb29e4910fbc0f37dc6e)
- Enable TSan validation to detect when a mutable accessor of a message is called concurrently with another accessor on the same message, which is a data race. (https://github.com/protocolbuffers/protobuf/commit/e2eae81b973c6944f3062fc21929368467e0ddb3)
- Fix case of locality optimizer being wrong for split repeated fields and add a check that the optimized order has the same size as the unoptimized order. (https://github.com/protocolbuffers/protobuf/commit/76a327e1e1f02e2f8027d4dd02950711435ea461)
- Enable TSan validation to detect when a mutable accessor of a message is called concurrently with another accessor on the same message, which is a data race. (https://github.com/protocolbuffers/protobuf/commit/80dbc50118c0ef5d38da727d1cf903408ea21b41)
- Mark single arg ctor explicit in DynamicMessageFactory. (https://github.com/protocolbuffers/protobuf/commit/8fe88a5a07578dd5bd3aa648e8c2f95a22407094)
- Enable TSan validation to detect when a mutable accessor of a message is called concurrently with another accessor on the same message, which is a data race. (https://github.com/protocolbuffers/protobuf/commit/6d79d13e478d677e7bdc1587d3442a070d5205cd)
- Let ParseRepeatedStringOnce call AllocateFromStringBlock(). (https://github.com/protocolbuffers/protobuf/commit/bcf3e36a48c573a81d6359a61275f477a7b57c2d)
- Check next tag in MpRepeatedMessage. (https://github.com/protocolbuffers/protobuf/commit/9e1cf6fe9c762ddd21bcea5039cdbf1f7b509eea)
- When parsing repeated primitives, append to a tmp array on stack. (https://github.com/protocolbuffers/protobuf/commit/adb2c4b415c35cda3e4394384ec579ea8dd8ec92)
- Add dllexport_decl for generated default instance. (#13085) (https://github.com/protocolbuffers/protobuf/commit/9d0961afb712de0aa6f6fea681f4a7241faac6e2)
-
TextFormat::ParseFieldValueFromString
now takesabsl::string_view
asinput
instead ofconst std::string &
(https://github.com/protocolbuffers/protobuf/commit/5411fc66796d9e14d39b7ba0385eee5ffde875dc) - In TSan mode, detect concurrent mutations of repeated/map fields. (https://github.com/protocolbuffers/protobuf/commit/d800c5f08b184d261e6c47662035d554f109eb3b)
- Use the same ABI for static and shared libraries on non-Windows platforms (#12983) (https://github.com/protocolbuffers/protobuf/commit/4329fde9cf3fab7d1b3a9abe0fbeee1ad8a8b111)
- Replace ColdChunkSkipper with iterator-based approach. (https://github.com/protocolbuffers/protobuf/commit/ad677f3215de203695ade78a25f79fa61010f770)
- Check invalid type_id after casting it to uint32_t. (https://github.com/protocolbuffers/protobuf/commit/d8901265c75387851b7b66624b5bcc5bafa9bad9)
- Strengthen assertions on reflection methods. (https://github.com/protocolbuffers/protobuf/commit/eb5e9e01d9831e9fae48bc6f688114f53cccabc5)
- Add assertions to reflection methods. (https://github.com/protocolbuffers/protobuf/commit/5866e4575c7e43cfcabb98efd6f36b4ba5c4bb30)
- Fail to parse message sets if type_id is zero. (https://github.com/protocolbuffers/protobuf/commit/bc1b1f6e53e9844ed42c796c7246d51aef65ed65)
- Enable the use of [SU]Int32Size and EnumSize templates for AArch64 (#11102) (https://github.com/protocolbuffers/protobuf/commit/e285d3e307512f24576b56d18cb5a5b655e2f393)
- Add a workaround for GCC constexpr bug (https://github.com/protocolbuffers/protobuf/commit/e15326ba807a49365b6c9f5958e969b5aa915f8c)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on Map, RepeatedField and RepeatedPtrField. (https://github.com/protocolbuffers/protobuf/commit/7b7ba2df67199a2c95b21ce6eec9e6d62b71cc60) - Turn on the table-driven parser by default, as it is no longer experimental. (https://github.com/protocolbuffers/protobuf/commit/c3e2efe70bbdfba4dd1f5c570043688fcbe74497)
- Fix: avoid warnings on MSVC (#12697) (https://github.com/protocolbuffers/protobuf/commit/4fcf2c0a0968c88c60570da8fa6d7a18371c4b4b)
- Fix: avoid warnings on Windows (#12701) (https://github.com/protocolbuffers/protobuf/commit/f9108c2dd0921db50bb78e3fc6f0833186f8cf64)
- Shrink code size of generated protocol buffer code via a few (https://github.com/protocolbuffers/protobuf/commit/97c351319ffa9715ed11a883c4adbaadf63a2fcc)
- Fix(libprotoc): export useful symbols from .so (#12619) (https://github.com/protocolbuffers/protobuf/commit/b1ae4fa87a95ee3650a6ad4192176d845e03da52)
- Forbid embedded nulls in
json_name
. (https://github.com/protocolbuffers/protobuf/commit/b478a29bf0945d5b141992885ac9cfde45c66697) - Implement option retention for C# (https://github.com/protocolbuffers/protobuf/commit/5f64444e7b19421c25ae12d3c69acbab3a70a1bb)
- Implement enforcement of target constraints (https://github.com/protocolbuffers/protobuf/commit/e3848c19988e56a20fbd3fab5d181df6de575a69)
- Make RepeatedField and RepeatedPtrField be destructor skippable for proto arenas. (https://github.com/protocolbuffers/protobuf/commit/e4168df564be12984ae836e5e870e634733f42a3)
- Update MessageDifferencer to conditionally force comparing additional fields while doing PARTIAL comparison (compare fields which are not repeated, have no presence and are set to their default value). (https://github.com/protocolbuffers/protobuf/commit/748f57f2b67c56e050b660ffbafb9f3a5795c28a)
- CMake: Use the correct jsoncpp target name in static builds (#12733) (https://github.com/protocolbuffers/protobuf/commit/d372fcded6390d396d116ee984c000983beecabc)
- Fix: missing -DPROTOBUF_USE_DLLS in pkg-config (#12700) (https://github.com/protocolbuffers/protobuf/commit/f86008a548c80021bc6e72de0f992a87d68e7ce4)
- Avoid using string(JOIN..., which requires cmake 3.12 (https://github.com/protocolbuffers/protobuf/commit/adee0a59f914e8bc2982b716afef2ff3b72f67a5)
Java
- Put a 4k limit on preallocation to prevent OOM from malformed inputs. (https://github.com/protocolbuffers/protobuf/commit/173adca21659bfd06ae23f07d48129e7633d1f2e)
- Mark OneofDescriptor.isSynthetic() deprecated. (https://github.com/protocolbuffers/protobuf/commit/b6b86e21fb67e22b762b7230427bce00ee8c9fec)
- Use ProtobufArrayList for repeated bytes field. Presize primitive arrays for fixed-length primitives. (https://github.com/protocolbuffers/protobuf/commit/b0b926a141e261ab1e4d41715c1d51cc31db46dd)
- Add protobuf-kotlin into protobuf-bom (#12936) (https://github.com/protocolbuffers/protobuf/commit/943b696094631cf263c6d9f92811c7a3419ef17c)
- Handle clear for Java proto3 optionals (synthetic oneofs) using field descriptor instead of clear method. (https://github.com/protocolbuffers/protobuf/commit/a5349027e3f0d7503bcab55240f18ec657e2dad7)
- Deps: Update Guava to 32.0.0 (#12953) (https://github.com/protocolbuffers/protobuf/commit/cd615a8c6596de1fc35874561b53d26597c0b65a)
- Migrate repeated numeric fields to use bit field to track presence instead of using it to indicate the field mutability to potentially skip work on the field during build operations. (https://github.com/protocolbuffers/protobuf/commit/f0de774705b43e120c43a545033ed29728351bdc)
- Automated rollback of commit
3e188b7
. (https://github.com/protocolbuffers/protobuf/commit/a1b3ff0ddb33b3535bf415474d2f1a561883a81f)
Csharp
- [C#] Replace regex that validates descriptor names (#12174) (https://github.com/protocolbuffers/protobuf/commit/cfb702a0788f57b6f321cd7a039701f0f53a19c2)
- Implement option retention for C# (https://github.com/protocolbuffers/protobuf/commit/5f64444e7b19421c25ae12d3c69acbab3a70a1bb)
Objective-C
- Release prototype of Protobuf Editions. (https://github.com/protocolbuffers/protobuf/commit/4f9e41767a819abf8108bb29e4910fbc0f37dc6e)
- Check invalid type_id after casting it to uint32_t. (https://github.com/protocolbuffers/protobuf/commit/d8901265c75387851b7b66624b5bcc5bafa9bad9)
- Fix jruby encoding in new thread (#12919) (https://github.com/protocolbuffers/protobuf/commit/6609bea792af9624f460dad0213bb47fd1ccf623)
- Add assertions to reflection methods. (https://github.com/protocolbuffers/protobuf/commit/5866e4575c7e43cfcabb98efd6f36b4ba5c4bb30)
- [C#] Replace regex that validates descriptor names (#12174) (https://github.com/protocolbuffers/protobuf/commit/cfb702a0788f57b6f321cd7a039701f0f53a19c2)
Python
- Raise warinings when extend repeated field with none iterable in OSS. OSS will raise errors soon (https://github.com/protocolbuffers/protobuf/commit/96ca7d96daf6694341843350a162d9940e7552d3)
- Remove RegisterExtension in message class (https://github.com/protocolbuffers/protobuf/commit/3560e2381efc3e01e67cc895383d270cd5492e13)
- Removed message._extensions_by_number (https://github.com/protocolbuffers/protobuf/commit/86fc32cedc7aa01798938d5f860094fc21874b93)
- Removed message._extensions_by_name (https://github.com/protocolbuffers/protobuf/commit/e737c8108a72d26e706f6eb5cbc814736a9d2389)
- Remove RegisterExtension() in python generated code (https://github.com/protocolbuffers/protobuf/commit/e5a7a2eba79f697e2c2823dfbb95659088f994a6)
- Deprecated APIs that add non top descriptors to pool will be removed soon (https://github.com/protocolbuffers/protobuf/commit/3f5d844d9068de034df8db49a3c91f9100bd192d)
Python C-Extension (Default)
- Remove RegisterExtension in message class (https://github.com/protocolbuffers/upb/commit/cbacdf152a04abc7e849b68ba6c4eaeb3c3669e3)
- See also UPB changes below, which may affect Python C-Extension (Default).
PHP
- Adding provide to php composer.json (#13141) (https://github.com/protocolbuffers/protobuf/commit/d603b4199e42d18a6ed433f47bdf8e5042900588)
- Require PHP version >=8.0, Ruby >=2.7, and Python >=3.8 (https://github.com/protocolbuffers/protobuf/commit/a5516ca6cc5e8034344879d1da83c946cff17ccf)
- Enable building PHP extension on Windows (#13097) (https://github.com/protocolbuffers/protobuf/commit/4d9bbac167a651db960c4d334fa1c47ecd5130e2)
- Add support for option retention in PHP (https://github.com/protocolbuffers/protobuf/commit/ba348e2b3bf30f3d6f6c356020ac6999ddcf13b0)
PHP C-Extension
- Release prototype of Protobuf Editions. (https://github.com/protocolbuffers/protobuf/commit/4f9e41767a819abf8108bb29e4910fbc0f37dc6e)
- Enable building PHP extension on Windows (#13097) (https://github.com/protocolbuffers/protobuf/commit/4d9bbac167a651db960c4d334fa1c47ecd5130e2)
- Remove RegisterExtension in message class (https://github.com/protocolbuffers/protobuf/commit/3560e2381efc3e01e67cc895383d270cd5492e13)
- See also UPB changes below, which may affect PHP C-Extension.
Ruby
- Update ruby gemspec required ruby version to >=2.7 (https://github.com/protocolbuffers/protobuf/commit/14ea2cb2966f6ede44b91d5594d46d8ea45b64ef)
- Refactor the object cache to better account for race conditions (#13204) (https://github.com/protocolbuffers/protobuf/commit/a01d047456783b46a4ca675eee881de110a88799)
- Fix jruby encoding in new thread (#12919) (https://github.com/protocolbuffers/protobuf/commit/6609bea792af9624f460dad0213bb47fd1ccf623)
- Implement option retention for Ruby (https://github.com/protocolbuffers/protobuf/commit/d96032d1a501d8d8ee2f581d0a9597d631797c5f)
Ruby C-Extension
- Refactor the object cache to better account for race conditions (#13204) (https://github.com/protocolbuffers/protobuf/commit/a01d047456783b46a4ca675eee881de110a88799)
- Release prototype of Protobuf Editions. (https://github.com/protocolbuffers/protobuf/commit/4f9e41767a819abf8108bb29e4910fbc0f37dc6e)
- Remove RegisterExtension in message class (https://github.com/protocolbuffers/protobuf/commit/3560e2381efc3e01e67cc895383d270cd5492e13)
- See also UPB changes below, which may affect Ruby C-Extension.
UPB (Python/PHP/Ruby C-Extension)
- Fix
upb_MiniTableField_CType()
to work correctly for enums & strings. (https://github.com/protocolbuffers/upb/commit/532b4d0671c806f3f590fb0313b8fc73bd460c6d) - Fixed a bug in
upb_Map_Delete()
that caused crashes in map.delete(k) for Ruby when string-keyed maps were in use. (https://github.com/protocolbuffers/upb/commit/14bad4a5bfd8ff8fced91010edac7dd3747a7bd7)
Other
- Drop Bazel 4 support and add Bazel 6 (https://github.com/protocolbuffers/protobuf/commit/4031712c34084f8c2bb4904e49e8a0d723ea8578)
- Bump Abseil submodule to
2023012
.3 (#12660) (https://github.com/protocolbuffers/protobuf/commit/2a3ce310843056fce9159af643c4785a0f8c85e2) - Added a conformance test for embedded nulls in JSON strings. (https://github.com/protocolbuffers/protobuf/commit/37dfe806f84617390e9779fc237a0a77f5a50d6d)
v23.4
: Protocol Buffers v23.4
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Add dllexport_decl for generated default instance. (#13085) (https://github.com/protocolbuffers/protobuf/commit/0c70d9514090a2e5e5b35eba7e4d23d97592ec49)
Java
- Deps: Update Guava to 32.0.1 (https://github.com/protocolbuffers/protobuf/commit/40d577782b75aa4f3d9149a1eb6b01b2349f13af)
v23.3
: Protocol Buffers v23.3
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Regenerate stale files (#13046) (https://github.com/protocolbuffers/protobuf/commit/58b6ddb03ef8f186c9225d0107213f74750a82f3)
- Use the same ABI for static and shared libraries on non-Windows platforms (#12983) (https://github.com/protocolbuffers/protobuf/commit/efa1ec75cf152991a64cedf9c4a1ec5cb826ee34)
Objective-C
- Regenerate stale files (#13046) (https://github.com/protocolbuffers/protobuf/commit/58b6ddb03ef8f186c9225d0107213f74750a82f3)
UPB (Python/PHP/Ruby C-Extension)
- Fixed a bug in
upb_Map_Delete()
that caused crashes in map.delete(k) for Ruby when string-keyed maps were in use. (https://github.com/protocolbuffers/upb/commit/2de798e976d6c12d75b8b7d40f38da1f0ef53c8b)
v23.2
: Protocol Buffers v23.2
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Add missing header to Objective-c generator
Java
- Rollback of: Simplify protobuf Java message builder by removing methods that calls the super class only. (https://github.com/protocolbuffers/protobuf/commit/b556b8871cd07971b09df7b73ff6a461d78560fb)
v23.1
: Protocol Buffers v23.1
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Add a workaround for GCC constexpr bug (https://github.com/protocolbuffers/protobuf/commit/67ecdde4f257094c4019ebfda62b2ae60facb6fa)
C++
- Add a workaround for GCC constexpr bug (https://github.com/protocolbuffers/protobuf/commit/67ecdde4f257094c4019ebfda62b2ae60facb6fa)
Csharp
- [C#] Replace regex that validates descriptor names (#12174) (https://github.com/protocolbuffers/protobuf/commit/0ced986277be52dcb666e802a4602081df4e7264)
v23.0
: Protocol Buffers v23.0
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Implement a retain_options flag in protoc. (https://github.com/protocolbuffers/protobuf/commit/83507c7f4e8a53cc6e800efac5ce157cd960f657)
- Make protoc --descriptor_set_out respect option retention (https://github.com/protocolbuffers/protobuf/commit/ae2531dcc2492c51554ea36d15540ff816ca6abd)
- Modify release artifacts for protoc to statically link system libraries. (https://github.com/protocolbuffers/protobuf/commit/723bd4c3c1a51ccf7e9726453f0b710223c4b583)
- Extension declaration: Enforce that if the extension range has a declaration then all extensions in that range must be declared. This should prevent non-declared extensions from being added. (https://github.com/protocolbuffers/protobuf/commit/5dc171f71eca66579b06d4400ee5c94bfa68947a)
- Implement "reserved" for extension declaration. (https://github.com/protocolbuffers/protobuf/commit/41287bd5d5373e91277b849e93c7ae2a0238b5c3)
- Open-source extension declaration definition. (https://github.com/protocolbuffers/protobuf/commit/145900f06c732974af996a28a3e2c211ae104888)
C++
- Fix(libprotoc): export useful symbols from .so (https://github.com/protocolbuffers/protobuf/commit/46fb4aa8d2ade5e0067fce271fcb5293c5c70500)
- Turn off clang::musttail on i386 (https://github.com/protocolbuffers/protobuf/commit/b40633ff0bf9b34bf3bec9f3d35eec2d951a98b8)
- Fixes Clang 6 linker bug (https://github.com/protocolbuffers/protobuf/commit/49bb3f20647b914fc52909eec19f260fb9a945f3)
- Remove PROTOBUF_DEPRECATED in favor of [[deprecated]]. (https://github.com/protocolbuffers/protobuf/commit/5c59290022dcbbea71099bc40097a149a2446f21)
- Add
assert
to the list of keywords for C++. (https://github.com/protocolbuffers/protobuf/commit/a75c1a2761e49d8afb7838c03b923b909420f7fd) - Added Reflection::GetCord() method in C++ (https://github.com/protocolbuffers/protobuf/commit/6ecb5d097e8d9bfafeb5ec8d251827f0d444f2ce)
- Support C++ protobuf ctype=CORD for bytes field (generated code). (https://github.com/protocolbuffers/protobuf/commit/714f97502662ae75ed64f8456b43d5536740b022)
- Expand LazySerializerEmitter to cover proto3 cases. (https://github.com/protocolbuffers/protobuf/commit/fab7f928b5375a20fd8d33556632128e936ad436)
- Unconditionally generate unknown field accessors. (https://github.com/protocolbuffers/protobuf/commit/dd8a3cf2b54a06ef0558c004f9fca570278ad4a1)
- Introduce proto filter for inject_field_listener_events. (https://github.com/protocolbuffers/protobuf/commit/2dc5338ea222e1f4e0357e46b702ed6a0e82aaeb)
- Add ParseFromCord to TextFormat (https://github.com/protocolbuffers/protobuf/commit/055a6c669fd1ee67803f71dcc55a3b746376934f)
- Mark proto2::Arena::GetArena as deprecated. (https://github.com/protocolbuffers/protobuf/commit/9f959583da525ba006a6dc6b8b8b733e4d8c619a)
Java
- Adds
Timestamps.now()
. (https://github.com/protocolbuffers/protobuf/commit/295f1125ceff5e07dfb8bfd2d7bada6c28918c0c) - Added Reflection::GetCord() method in C++ (https://github.com/protocolbuffers/protobuf/commit/6ecb5d097e8d9bfafeb5ec8d251827f0d444f2ce)
- Re-attach OSGI headers to lite,core, and util. This information was dropped in the move from maven to bazel. (https://github.com/protocolbuffers/protobuf/commit/4b5652b030eda12fa1c7ea3e1ddd8d0404bd4ac5)
- Add Java FileDescriptor.copyHeadingTo() which copies file-level settings (e.g. syntax, package, file options) to FileDescriptorProto.Builder (https://github.com/protocolbuffers/protobuf/commit/6e6d0bce4a04fd13d50485c22ecc7e96d9a16000)
- Remove unnecessary has bits from proto2 Java. (https://github.com/protocolbuffers/protobuf/commit/c440da9e1389db520b79acb19cb55e5b3266dfba)
- Add casts to make protobuf compatible with Java 1.8 runtime. (https://github.com/protocolbuffers/protobuf/commit/d40aadf823cf7e1e62b65561656f689da8969463)
- Fix mutability bug in Java proto lite: sub-messages inside of oneofs were not (https://github.com/protocolbuffers/protobuf/commit/fa82155c653776304bf6d03c33bea744db1b5eff)
- Document known quirks of EnumDescriptor::is_closed() when importing across files with different syntaxes. (https://github.com/protocolbuffers/protobuf/commit/1de344fcd1c1b2c6ec937151d69634171463370d)
Kotlin
- Remove errorprone dependency from kotlin protos. (https://github.com/protocolbuffers/protobuf/commit/7b6e8282157f0280ecb3fd9fd4c6519a7cd5afbc)
Csharp
- Make json_name take priority over name (fully) in C# parsing (#12262) (https://github.com/protocolbuffers/protobuf/commit/4326e0f852a3cf47c30bf99db66c3e3e77658dfb)
- Add C# presence methods to proto3 oneof fields. (https://github.com/protocolbuffers/protobuf/commit/affadac847370221e2ec0e405d5715b4a22e518f)
Objective-C
- Enforce the max message size when serializing to binary form. (https://github.com/protocolbuffers/protobuf/commit/e6d01b2edcb04fdfb0f3cf79bf9d427f57fa2eac)
- Mark mergeFromData:extensionRegistry: as deprecated. (https://github.com/protocolbuffers/protobuf/commit/e3b00511099838e22f59827bfb7c72e27fcc22fa)
Python
- Fix bug in _internal_copy_files where the rule would fail in downstream repositories. (https://github.com/protocolbuffers/protobuf/commit/b36c39236e43f4ab9c1472064b6161d00aef21c5)
- Make numpy/pip_deps a test-only dependency. (https://github.com/protocolbuffers/protobuf/commit/fe038fc9d2e6a469c3cd2f1a84a6560c0a123481)
- Fix Python bug with required fields (https://github.com/protocolbuffers/protobuf/commit/579f4ab70dc5c37f075a0b3f186fe80dcdf8165d)
- Mark deprecated SupportsUnknownEnumValues on Message reflection. Use FieldDescriptor or EnumDescriptor instead. (https://github.com/protocolbuffers/protobuf/commit/0b9134bb4eb281c3ed1446e8acf1aa354e0fe67e)
- Raise warnings for MessageFactory class usages (https://github.com/protocolbuffers/protobuf/commit/dd9dd86fbca3ab5c1c7f0aa2534dc5da61530711)
- Add Python support for retention attribute (https://github.com/protocolbuffers/protobuf/commit/63389c027f474954e8178e77ac624e8ef952626d)
- Document known quirks of EnumDescriptor::is_closed() when importing across files with different syntaxes. (https://github.com/protocolbuffers/protobuf/commit/1de344fcd1c1b2c6ec937151d69634171463370d)
Python C-Extension (Default)
- Fix Python bug with required fields (https://github.com/protocolbuffers/upb/commit/ea4cb79f669e69342d7ced4d0255050325df41e3)
- See also UPB changes below, which may affect Python C-Extension (Default).
PHP
- RepeatedField: unset by index (#11425) (https://github.com/protocolbuffers/protobuf/commit/363fa89b1f02d4c51028f8c8bcd506f08eaa6b49)
PHP C-Extension
- RepeatedField: unset by index (#11425) (https://github.com/protocolbuffers/protobuf/commit/363fa89b1f02d4c51028f8c8bcd506f08eaa6b49)
- See also UPB changes below, which may affect PHP C-Extension.
Ruby
- Change the Ruby code generator to emit a serialized proto instead of the DSL (#12319) (https://github.com/protocolbuffers/protobuf/commit/bd52d0483987f1a5186fc3daa261d1d76a787bcf)
- Feat(6178): emit ruby enum as integer (#11673) (https://github.com/protocolbuffers/protobuf/commit/8aa2b177f156393ce607b4ffea8c1ac28560c746)
Ruby C-Extension
- Feat(6178): emit ruby enum as integer (#11673) (https://github.com/protocolbuffers/protobuf/commit/8aa2b177f156393ce607b4ffea8c1ac28560c746)
- Ruby: Implement Write Barriers (#11793) (https://github.com/protocolbuffers/protobuf/commit/d82d8a48f6c50ae6c811dbd6b7383e36a691c6b3)
- See also UPB changes below, which may affect Ruby C-Extension.
UPB (Python/PHP/Ruby C-Extension)
- Implements upb_Message_DeepClone. (https://github.com/protocolbuffers/upb/commit/3286f948f888f0c912c4ec483db9a1a50a6782a3)
Other
- Fix: missing -DPROTOBUF_USE_DLLS in pkg-config (#12700) (https://github.com/protocolbuffers/protobuf/commit/1ca4e9c4859a23112684138c78608ddc0b8f1770)
- Avoid using string(JOIN..., which requires cmake 3.12 (https://github.com/protocolbuffers/protobuf/commit/54caf40312b3e7fd7794e267ef17e3be202de83d)
- Bump Abseil submodule to
2023012
.3 (#12660) (https://github.com/protocolbuffers/protobuf/commit/750a6e7d7cbd8c022e18834f0a57fcd76d2c3c58) - Fix btree issue in map tests. (https://github.com/protocolbuffers/protobuf/commit/9898418bd9188b22e9db7f94529df638e65b14f7)
- Fix declared dependencies for pkg-config (#12518) (https://github.com/protocolbuffers/protobuf/commit/f79e35c821a50c6a37ffe365511b892f5409ac44)
- Fix build for newlib (#12501) (https://github.com/protocolbuffers/protobuf/commit/945bf3c48de64eb3c8a96f5dd36c19670c3dbcdd)
- Update usage disclaimer on FieldOptions.ctype (https://github.com/protocolbuffers/protobuf/commit/b8e7192a731a8ece54b11f2caf87c32209559525)
- Add config option to print 64-bit integers in JSON as unquoted ints if they can be losslessly converted into a 64-bit float. (https://github.com/protocolbuffers/protobuf/commit/330e10d53fe1c12757f1cdd7293d0881eac4d01e)
- Version protoc according to the compiler version number. (https://github.com/protocolbuffers/protobuf/commit/e67136d289e6cf4265e2763dd77216940c400ac9)
- Fix shared object ABI exports (#5144) (#11032) (https://github.com/protocolbuffers/protobuf/commit/462964ed322503af52638d54c00a0a67d7133349)
- Ensure VarintParseSlowArm{32,64} are exported with PROTOBUF_EXPORT (https://github.com/protocolbuffers/protobuf/commit/2ce56399e30db62e45869c6fd2d2bbacbb81a7ed)
- Update the min required CMake version to 3.10 (https://github.com/protocolbuffers/protobuf/commit/bcb20bbdfa0cba15c869d413edaaeb8507526a2e)
v22.5
: Protocol Buffers v22.5
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Fix: avoid warnings on MSVC (#12697) (https://github.com/protocolbuffers/protobuf/commit/4483f10a1d7a553b17301d8fce477a12a6777c00)
- Fix: avoid warnings on Windows (#12701) (https://github.com/protocolbuffers/protobuf/commit/a1435ade2aad3ce1171d7bdfcc051df3c97ec71c)
- Add missing cstdint header (https://github.com/protocolbuffers/protobuf/commit/9daf5fb6ca8c8309548059c8f3c3574875036354)
- Fix: missing -DPROTOBUF_USE_DLLS in pkg-config (#12700) (https://github.com/protocolbuffers/protobuf/commit/18fae1c15112efad2080c2b2f726d904fea48b35)
- Avoid using string(JOIN..., which requires cmake 3.12 (https://github.com/protocolbuffers/protobuf/commit/0ce610ef46ce8937306778105a881cd7c28657ec)
- Explicitly include GTest package in examples (https://github.com/protocolbuffers/protobuf/commit/5191c3b26435dd852cd57e9ab5c73f4ea8753183)
- Bump Abseil submodule to
2023012
.3 (#12660) (https://github.com/protocolbuffers/protobuf/commit/2880a20b01af3c955a76f2a1a58342fea8b5f741)
v22.4
: Protocol Buffers v22.4
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Fix libprotoc: export useful symbols from .so (https://github.com/protocolbuffers/protobuf/commit/860fbf10c7347a2ccca2ca27cb1cc80acacc929c)
- Fix btree issue in map tests. (https://github.com/protocolbuffers/protobuf/commit/d379c083cb54ad3d908d7adbc46202b9e8a6f8e3)
Python
- Fix bug in _internal_copy_files where the rule would fail in downstream repositories. (https://github.com/protocolbuffers/protobuf/commit/859410bccc59aeeef1c48e34960fe93827767bac)
Other
- Bump utf8_range to version with working pkg-config (#12584) (https://github.com/protocolbuffers/protobuf/commit/b05ee4f0102e60dbf63c55ff79839879a6ca2a03)
- Fix declared dependencies for pkg-config (https://github.com/protocolbuffers/protobuf/commit/2c55945fc55eddef4f38f5f43b2a7b0c9a45accf)
- Update abseil dependency and reorder dependencies to ensure we use the version specified in protobuf_deps. (https://github.com/protocolbuffers/protobuf/commit/99529a22092fd2b06bfddc3d0af702ff7a1b39bf)
- Turn off clang::musttail on i386 (https://github.com/protocolbuffers/protobuf/commit/5381f405067b28920c7a8dd37b892ce55c654e29)
v22.3
: Protocol Buffers v22.3
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
UPB (Python/PHP/Ruby C-Extension)
- Remove src prefix from proto import (https://github.com/protocolbuffers/upb/commit/e05f22a398cdfd6d760653ff862f290b06940e3b)
Other
- Fix .gitmodules to use the correct absl branch (https://github.com/protocolbuffers/protobuf/commit/f51da1fe664ad4e76a0238b7ddbf78bb72fb0d8b)
- Remove erroneous dependency on googletest (https://github.com/protocolbuffers/protobuf/pull/12276)
v22.2
: Protocol Buffers v22.2
Announcements
- This release was only published for Java and Ruby.
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Java
- Add version to intra proto dependencies and add kotlin stdlib dependency (https://github.com/protocolbuffers/protobuf/commit/99ed01009f14fbfb885f98c3512818af8033ef6a)
- Add $ back for osgi header (https://github.com/protocolbuffers/protobuf/commit/d80c12d3221fd489b779fccf0020a17bd666a311)
- Remove $ in pom files (https://github.com/protocolbuffers/protobuf/commit/8ac23375950e905f54f2523807b68618bd047835)
Kotlin
- Add version to intra proto dependencies and add kotlin stdlib dependency (https://github.com/protocolbuffers/protobuf/commit/99ed01009f14fbfb885f98c3512818af8033ef6a)
- Remove $ in pom files (https://github.com/protocolbuffers/protobuf/commit/8ac23375950e905f54f2523807b68618bd047835)
v22.1
: Protocol Buffers v22.1
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Modify release artifacts for protoc to statically link system libraries. (https://github.com/protocolbuffers/protobuf/commit/8ad6cdd007fe8c09ec95e69cc7a7419264d11655)
- Add visibility of plugin.proto to python directory (https://github.com/protocolbuffers/protobuf/commit/620d21a8ac8ba9b00f4519df6af28f09d184ac3e)
- Strip "src" from file name of plugin.proto (https://github.com/protocolbuffers/protobuf/commit/9c89a70e6b62ec2914fa7ff72570c553e530b9b7)
Java
- Add OSGi headers to pom files. (https://github.com/protocolbuffers/protobuf/commit/e909bfc5174b73d5bcf32199bc0f71dde7325c2f)
Kotlin
- Remove errorprone dependency from kotlin protos. (https://github.com/protocolbuffers/protobuf/commit/66f80c3610b0cd61bedd42c78e78ae2eac002142)
Other
- Version protoc according to the compiler version number. (https://github.com/protocolbuffers/protobuf/commit/b1435864256653b18cb8c1fc40b1c9e0da5f978e)
v22.0
: Protocol Buffers v22.0
Announcements
-
This version includes breaking changes to: Cpp.
- [Cpp] Migrate to Abseil's logging library. (https://github.com/protocolbuffers/protobuf/commit/a9f1ea6371c108876649f27a5940a59cc8594768)
- [Cpp]
proto2::Map::value_type
changes tostd::pair<const K, V>
. (https://github.com/protocolbuffers/protobuf/commit/46656ed080e959af3d0cb5329c063416b5a93ef0) - [Cpp] Mark final ZeroCopyInputStream, ZeroCopyOutputStream, and DefaultFieldComparator classes. (https://github.com/protocolbuffers/protobuf/commit/bf9c22e1008670b497defde335f042ffd5ae25a1)
- [Cpp] Add a dependency on Abseil (#10416)
- [Cpp] Remove all autotools usage (#10132)
- [Cpp] Add C++20 reserved keywords
- [Cpp] Dropped C++11 Support
- [Cpp] Delete Arena::Init
- [Cpp] Replace JSON parser with new implementation
- [Cpp] Make RepeatedField::GetArena non-const in order to support split RepeatedFields.
-
You can refer to our migration guide for details on what C++ code changes will be necessary to be compatible with 22.0.
-
Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Breaking change: Migrate to Abseil's logging library. (https://github.com/protocolbuffers/protobuf/commit/a9f1ea6371c108876649f27a5940a59cc8594768)
- Add debug_redact field option to protobuf. (https://github.com/protocolbuffers/protobuf/commit/9238c4843a1a25c588f11da5101c858f6ae6f7a8)
- Protoc: accept capital X to indicate hex escape in string literals (#10757)
- Gracefully handle weird placement of linebreaks around comments (#10660)
- Open up visibility for some compiler internals (#10608)
- Protoc: validate reserved names are identifiers (#10586)
- Protoc: validate custom json_name configuration (#10581)
- Protoc: fix consistency with parsing very large decimal numbers (#10555)
- Use protoc version for --version (#10386)
- Fix for grpc.tools #17995 & protobuf #7474 (handle UTF-8 paths in argumentfile) (#10200)
- Print full path name of source .proto file on error
- Include proto message type in the annotation comments.
- Maven artifact suffix format has changed to -RCN instead of -rc-N
C++
- Document known quirks of EnumDescriptor::is_closed() when importing across files with different syntaxes. (https://github.com/protocolbuffers/protobuf/commit/a594141cc408b972c9ffe2bcf14958174d0a4fe4)
- Add C++ support for retention attribute (https://github.com/protocolbuffers/protobuf/commit/8f882e7f3d0535760c46f8cdde9f40006e33e02a)
- Breaking change: Migrate to Abseil's logging library. (https://github.com/protocolbuffers/protobuf/commit/a9f1ea6371c108876649f27a5940a59cc8594768)
- No longer define no_threadlocal on OpenBSD (#10610)
- CMake: Enable projects to set the C++ version (#10464)
- Breaking Change: Add a dependency on Abseil (#10416)
- Upgrade third_party/googletest submodule to current main branch (#10393)
- Breaking Change: Remove all autotools usage (#10132)
- CMake: use add_compile_options instead of add_definitions for compile options (#10293)
- Fix #9947: make the ABI identical between debug and non-debug builds (#10271)
- Allow for CMAKE_INSTALL_LIBDIR to be absolute (#10090)
- Add header search paths to protobuf-c++ spec (#10024)
- Cpp_generated_lib_linked support is removed in protoc
- Reduced .pb.o object file size slightly by explicitly instantiating
- Breaking Change: Add C++20 reserved keywords.
- Breaking Change: Dropped C++11 Support
- Fixed crash in ThreadLocalStorage for pre-C++17 compilers on 32-bit ARM.
- Clarified that JSON API non-OK statuses are not a stable API.
- Added a default implementation of MessageDifferencer::Reporter methods.
- Proto2::MapPair is now an alias to std::pair.
- Hide C++ RepeatedField::UnsafeArenaSwap
- Use table-driven parser for reflection based objects.
- Add ARM-optimized Varint decoding functions.
- Minor optimization for parsing groups
- Declare ReflectiveProtoHook class
- Reduce size of VarintParse code in protocol buffers, by calling the shared
- Avoid inlining some large heavily duplicated routines in repeated_ptr_field.h
- Add ReflectiveProtoHook to Reflection.
- Turns on table-driven parser for reflection based objects.
- Save code space by avoiding inlining of large-in-aggregate code-space MessageLite::~MessageLite destructor.
- Undefine the macro
linux
when compiling protobuf - Reduce memory consumption of MessageSet parsing.
- Save code space by avoiding inlining of large-in-aggregate code-space MessageLite::~MessageLite destructor.
- Breaking Change: Delete Arena::Init
- Make a PROTOBUF_POISON/UNPOISON to reduce noise in the source
- Put alignment functions in "arena_align.h"
- Split off
cleanup
arena functions into "arena_cleanup.h" - Fix signed / unsigned match in CHECK_EQ
- Kill Atomic<>. it's not pulling it's weight
- Move AllocationPolicy out of arena_impl, and unify arena_config for bazel
- Fix failure case in table-driven parser.
- Breaking Change: Replace JSON parser with new implementation
- Introduce the Printer::{SetRedactDebugString,SetRandomizeDebugString} private flags.
- Introduce global flags to control Printer::{SetRedactDebugString, SetRandomizeDebugString}.
- Proto3 string fields no longer trigger clang-tidy warning bugprone-branch-clone.
- Fix the API of DescriptorUpgrader::set_allow_unknown_dependencies to set to True always, and to populate into the DescriptorPool as well.
- Report line numbers consistently in text-format deprecated-field warnings.
- Fixed C++ code generation for protos that use int32_t, uint32_t, int64_t, uint64_t, size_t as field names.
- Annotate generated C++ public aliases for enum types.
- Change default arena max block size from 8K to 32K.
- Begin emitting semantic metadata for some C++ proto features. (https://github.com/protocolbuffers/protobuf/commit/2880fef06cb7443ba24dc1264ba9f02115407f2c)
Java
- Document known quirks of EnumDescriptor::is_closed() when importing across files with different syntaxes. (https://github.com/protocolbuffers/protobuf/commit/a594141cc408b972c9ffe2bcf14958174d0a4fe4)
- Use LazyStringArrayList directly in gencode. (https://github.com/protocolbuffers/protobuf/commit/e6dd59e6cdd16664d60f9e2c2ee97cf1effb4fa7)
- Add Java support for retention attribute (https://github.com/protocolbuffers/protobuf/commit/1325913afd65b39c268e5c4101d6b82f32957ae9)
- Expect fail when serialize inf and nan for Value.number_value in json format. fixes #11259 (https://github.com/protocolbuffers/protobuf/commit/ca1cb1ba80ef18f5dccfb5b6ee7fa623ba6caab5)
- Create a helper function that can make a mutable copy of any ProtobufList (https://github.com/protocolbuffers/protobuf/commit/56696066132560c5de9ca888a097ba570cda1910)
- Add debug_redact field option to protobuf. (https://github.com/protocolbuffers/protobuf/commit/9238c4843a1a25c588f11da5101c858f6ae6f7a8)
- Remove unused package private class ProtobufLists. (https://github.com/protocolbuffers/protobuf/commit/b51c551e37b1036bf54ade9911d9a39aed879ab0)
- Mark UnmodifiableLazyStringList deprecated. UnmodifiableLazyStringList is unnecessary and will be removed in a future release. (https://github.com/protocolbuffers/protobuf/commit/9595cbbf9a1dbd03edaf3def50befd99b727642c)
- Make emptyList public and mark the public EMPTY field as deprecated. (https://github.com/protocolbuffers/protobuf/commit/c658e27529ccf4a000724ab3622f1b807c85449b)
- Enable Text format parser to skip unknown short-formed repeated fields. (https://github.com/protocolbuffers/protobuf/commit/6dbd4131fa6b2ad29b2b1b827f21fc61b160aeeb)
- Expose internal setExtension method for Kotlin (https://github.com/protocolbuffers/protobuf/commit/33d1070fc46ecb6189d57095bc483bc8637dc972)
- Mark default instance as immutable first to avoid race during static initialization of default instances. (#10770)
- Add serialVersionUID to ByteString and subclasses (#10718)
- Fix serialization warnings in generated code when compiling with Java 18 and above (#10561)
- Fix Timestamps fromDate for negative 'exact second' java.sql.Timestamps (#10321)
- Fix Timestamps.fromDate to correctly handle java.sql.Timestamps before unix epoch (#10126)
- Performance improvement for repeated use of FieldMaskUtil#merge by caching
- Optimized Java proto serialization gencode for protos having many extension ranges with few fields in between.
- More thoroughly annotate public generated code in Java lite protocol buffers.
- Fixed Bug in proto3 java lite repeated enum fields. Failed to call copyOnWrite before modifying previously built message. Causes modification to already "built" messages that should be immutable.
- Fix Java reflection serialization of empty packed fields.
- Refactoring java full runtime to reuse sub-message builders and prepare to migrate parsing logic from parse constructor to builder.
- Move proto wireformat parsing functionality from the private "parsing constructor" to the Builder class.
- Change the Lite runtime to prefer merging from the wireformat into mutable messages rather than building up a new immutable object before merging. This way results in fewer allocations and copy operations.
- Make message-type extensions merge from wire-format instead of building up instances and merging afterwards. This has much better performance.
- Fix TextFormat parser to build up recurring (but supposedly not repeated) sub-messages directly from text rather than building a new sub-message and merging the fully formed message into the existing field.
- Fix bug in nested builder caching logic where cleared sub-field builders would remain dirty after a clear and build in a parent layer. https://github.com/protocolbuffers/protobuf/issues/10624
- Add exemplar variants of the Java Any.is() and Any.unpack() methods. (https://github.com/protocolbuffers/protobuf/commit/60b71498d70a5645324385269c518b95c8c2feb0)
- Use bit-field int values in buildPartial to skip work on unset groups of fields. (https://github.com/protocolbuffers/protobuf/commit/2326aef1a454a4eea363cc6ed8b8def8b88365f5)
- Maven artifact suffix format has changed to -RCN instead of -rc-N
Kotlin
- Add debug_redact field option to protobuf. (https://github.com/protocolbuffers/protobuf/commit/9238c4843a1a25c588f11da5101c858f6ae6f7a8)
- Expose internal setExtension method for Kotlin (https://github.com/protocolbuffers/protobuf/commit/33d1070fc46ecb6189d57095bc483bc8637dc972)
- Add missing
public
modifier to Kotlin generated code (#10616) - Add "public" modifier to Kotlin generated code (#10599)
- Update rules_kotlin version (#10212)
- Suppress deprecation warnings in Kotlin generated code.
- Kotlin generated code comments now use kdoc format instead of javadoc.
- Escape keywords in package names in proto generated code
- Add Kotlin enum int value getters and setters
Csharp
- Make the MergeFrom method of type ReadOnlySequence public (#11124) (https://github.com/protocolbuffers/protobuf/commit/c4bac67464cfb52f998a2f942a85adedfad04895)
- Fix a bug in which a possibly invalidated swisstable reference is used. (https://github.com/protocolbuffers/protobuf/commit/5c5dcdd11728d62a69e53f7a80ec2db8e16c4230)
- Fix .NET Native AOT warnings in Protobuf reflection (#11128) (https://github.com/protocolbuffers/protobuf/commit/c019a797492791093bccfb8404c90bf83761b3a4)
- Use forward slash instead of backslash in nuspec file (#11449) (https://github.com/protocolbuffers/protobuf/commit/724250d6e34c2734c876cdfa7208716757a6d50d)
- Add debug_redact field option to protobuf. (https://github.com/protocolbuffers/protobuf/commit/9238c4843a1a25c588f11da5101c858f6ae6f7a8)
- Expose internal setExtension method for Kotlin (https://github.com/protocolbuffers/protobuf/commit/33d1070fc46ecb6189d57095bc483bc8637dc972)
- Apply Obsolete attribute to deprecated enums and enum values in C# generated code (#10520)
- Fix 32-bit floating point JSON parsing of maximal values for C# (#10514)
- Retain existing array in RepeatedField.Clear (#10508)
- Implement IComparable for the Duration type (C#) (#10441)
- Implement correct map merging behavior for C# (#10339)
- Support indented JSON formatting in C# (#9391)
- Disambiguate generated properties in C# (#10269)
- Bugfix/issue 8101 (#10268)
- Expose plugin protos for C# (#10244)
- Update to C# 10 and upgrade code style (#10105)
- Fix failing FieldMask.Merge for well-known wrapper field types (#9602)
- Helper method on Any to allow an any to be unpacked more easily (#9695)
Objective-C
- [ObjC] Mark classes that shouldn't be subclassed as such. (https://github.com/protocolbuffers/protobuf/commit/a185a6ea8a5cc1d85f8a91405a0fafd007207ca4)
- [ObjC] Boolean generation options support no value as "true". (https://github.com/protocolbuffers/protobuf/commit/7935932356b405c4f8962e1e5ac19db1afd753aa)
- [ObjC] Put out of range closed enum extension values in unknown fields. (https://github.com/protocolbuffers/protobuf/commit/903639c3287df7235537547d947cbbaf8da01feb)
- [ObjC] Raise the min OS versions (and required Xcode) (#10652)
- [ObjC] Provide a protocol for GPBExtensionRegistry's lookup support. (#10597)
- Mark the
syntax
onGPBFileDescriptor
as deprecated. (https://github.com/protocolbuffers/protobuf/commit/c79832bddc3931d798d31d417238e4377f869c79) - Add the concept of a "closed enum" and expose it from the
GPBEnumDescriptor
. (https://github.com/protocolbuffers/protobuf/commit/7bb699be43e230315cf23808eff28bd694df7c17)
Python
- Document known quirks of EnumDescriptor::is_closed() when importing across files with different syntaxes. (https://github.com/protocolbuffers/protobuf/commit/a594141cc408b972c9ffe2bcf14958174d0a4fe4)
- Soft deprecate python MessageFactory (https://github.com/protocolbuffers/protobuf/commit/c80e7efac72510a2bc3e9365520055f6d6656c1d)
- Add debug_redact field option to protobuf. (https://github.com/protocolbuffers/protobuf/commit/9238c4843a1a25c588f11da5101c858f6ae6f7a8)
- Raise errors when serialize inf and nan for Value.number_value in json format. fixes #11259 (https://github.com/protocolbuffers/protobuf/commit/883ec1c3ef8be0bae01cf9ad74e1adde977afeec)
- Resolve #10949: use raise from in json_format.py (#10966) (https://github.com/protocolbuffers/protobuf/commit/1e6f8761cd11796f8437f198499ef73aa7e8dc96)
- Allow reserved enums to be negative (https://github.com/protocolbuffers/protobuf/commit/1f58f1d7b83ec333ab6076bf2e76797dd8de3e45)
- Make generated python files compatible with Cython (#11011) (https://github.com/protocolbuffers/protobuf/commit/9aa5272420f5c666f2dbaba0892b174004c56257)
- Raise KeyError in Python ServiceDescriptor.FindMethodByName (#9592) (#9998)
- Changes ordering of printed fields in .pyi files from lexicographic to the same ordering found in the proto descriptor.
- Adds GeneratedCodeInfo annotations to python proto .pyi outputs as a base64 encoded docstring in the last line of the .pyi file for code analysis tools.
- Fix message factory's behavior in python cpp extension to return same message classes for same descriptor, even if the factories are different.
- Add type annotation for enum value fields in enum classes.
- Update sphinx 2.3.1 to 3.0.4 (https://github.com/protocolbuffers/protobuf/commit/c1a42b34e56f8b7ac51c56a700c489b24de1c214)
- Added is_closed to EnumDescriptor in protobuf python (https://github.com/protocolbuffers/protobuf/commit/da9de8d4d4cb5d16cfee726e52d06e91846e3578)
Python C-Extension (Default)
- Add license file to pypi wheels. (https://github.com/protocolbuffers/upb/commit/92dbe4b8bbb026282111f4d45d01feed35209803)
- Append "ByDef" to names of message accessors that use reflection (https://github.com/protocolbuffers/upb/commit/b747edb830b0fab524e0063fb2e156c390405dfa)
- Implement upb_Map_Next() as the new upb_Map iterator (https://github.com/protocolbuffers/upb/commit/03b1dee5cc8339fa60d45c2b3038f6141201bd19)
- Move the wire type definitions into upb/wire/ where they belong (https://github.com/protocolbuffers/upb/commit/ff6439fba0ff16b54150a1eb4ef511c080f3cb13)
- Replace and repair the integer hash table iterator: (https://github.com/protocolbuffers/upb/commit/70566461f97d1f03ed32ffe9f03aa126b721ed3a)
- Add Parse/Serialize templates to support shared_ptr/unique_ptr. (https://github.com/protocolbuffers/upb/commit/d3ec4b63c9f5fd6858580f8d19e41eaaaccf9fd7)
- Fixes https://github.com/protocolbuffers/upb/issues/869 (https://github.com/protocolbuffers/upb/commit/41017ef8dc3d03e1ac8c24820ad8ed9aca522bef)
- Silently succeed when adding the same serialized file in Python (https://github.com/protocolbuffers/upb/commit/e779b9d90aa8f8df7117c0f1870a158d54ab8d95)
- Different message factories will return same message class for same descriptor in python. (https://github.com/protocolbuffers/upb/commit/470f06cccbf26f98dd2df7ddecf24a78f140fe11)
- Make upb numpy type checks consistent with pure python and cpp. (https://github.com/protocolbuffers/upb/commit/79b735a7d720bd982d6dd9f0ced287d2e2c91b46)
- Upb: fix NULL pointer bug in Python FFI (https://github.com/protocolbuffers/upb/commit/c2c6427f606b7feb17a1c1f85ecd747a39978b3d)
- See also UPB changes below, which may affect Python C-Extension (Default).
PHP
- Drop support for PHP <7.4
- Fix: php 8.2 dynamic property warning in MapFieldIter (#11485) (https://github.com/protocolbuffers/protobuf/commit/8e636d53e9aee98bc775e44bb38f1a103624816a)
- Chore: fix php lint (#11417) (https://github.com/protocolbuffers/protobuf/commit/ade256e153ea7bfff85987a7f1bf2e9c9632cb10)
- Add debug_redact field option to protobuf. (https://github.com/protocolbuffers/protobuf/commit/9238c4843a1a25c588f11da5101c858f6ae6f7a8)
- [PHP]Added missing files and fix phpext_protobuf_ptr export in pecl version (#10689)
- [PHP] Fix empty message serialization for Any (#10595)
- [PHP] allow dynamic properties in Message (#10594)
- [PHP] Added getContainingOneof and getRealContainingOneof to descriptor. (#10356)
- Fix: PHP readonly legacy files for nested messages (#10320)
- Migrating macos php builds from 7.0/7.3 to 7.4/8.0 (#10274)
- Exposed more functions in FieldDescriptor and OneofDescriptor. (#10102)
- Fixed PHP SEGV by not writing to shared memory for zend_class_entry. (#9995)
- Feat: [PHP] remove legacy generate class file (#9621)
PHP C-Extension
- Add debug_redact field option to protobuf. (https://github.com/protocolbuffers/protobuf/commit/9238c4843a1a25c588f11da5101c858f6ae6f7a8)
- Update PHP and Ruby to use the new accessors, delete the old ones (https://github.com/protocolbuffers/protobuf/commit/3f36a914427aecaa620f777c9aa5d49bd23592ee)
- Update Ruby to use the newer upb_Map_Next() iterator (https://github.com/protocolbuffers/protobuf/commit/8809a113bc0a00b685b787a03d0698aa8c3e10e8)
- Fix the ruby and php builds which were broken by a recent upb change (https://github.com/protocolbuffers/protobuf/commit/9cdf347d1977d328754c1e03f43f06dfa7887d51)
- See also UPB changes below, which may affect PHP C-Extension.
Ruby
- For Ruby oneof fields, generate hazzers for members (#11655) (https://github.com/protocolbuffers/protobuf/commit/d1a3c6d08b3238415cb5c08609f42d88d9b227d3)
- Migrate ruby release targets to genrule to work around Bazel 5 bug (#11619) (https://github.com/protocolbuffers/protobuf/commit/e207bcd940400fd8b99b838aae1117f1860ff495)
- Add ruby release targets (#11468) (https://github.com/protocolbuffers/protobuf/commit/5b27b4f300c9c8fdb1f178151ef29a22a674d184)
- Remove support for ruby 2.5. (https://github.com/protocolbuffers/protobuf/commit/49589719e241a83d82ce67139006d2a9be391fce)
- Add debug_redact field option to protobuf. (https://github.com/protocolbuffers/protobuf/commit/9238c4843a1a25c588f11da5101c858f6ae6f7a8)
- Update PHP and Ruby to use the new accessors, delete the old ones (https://github.com/protocolbuffers/protobuf/commit/3f36a914427aecaa620f777c9aa5d49bd23592ee)
- Replace libc strdup usage with internal impl to restore musl compat. (#10811)
- Auto capitalize enums name in Ruby (#10454)
- Ruby: Use class inheritance to save memory (#10281)
- Ruby: use a valid instance variable name for
descriptor
(#10282)
Ruby C-Extension
- For Ruby oneof fields, generate hazzers for members (#11655) (https://github.com/protocolbuffers/protobuf/commit/d1a3c6d08b3238415cb5c08609f42d88d9b227d3)
- Add retention and target field options in descriptor.proto (https://github.com/protocolbuffers/protobuf/commit/5a5683781003c399a00d2ed210d4a5102ca65696)
- Add ruby release targets (#11468) (https://github.com/protocolbuffers/protobuf/commit/5b27b4f300c9c8fdb1f178151ef29a22a674d184)
- Add debug_redact field option to protobuf. (https://github.com/protocolbuffers/protobuf/commit/9238c4843a1a25c588f11da5101c858f6ae6f7a8)
- Update PHP and Ruby to use the new accessors, delete the old ones (https://github.com/protocolbuffers/protobuf/commit/3f36a914427aecaa620f777c9aa5d49bd23592ee)
- Hide ruby native extension symbols on FreeBSD (#10832) (https://github.com/protocolbuffers/protobuf/commit/2a73e3bdfbad01be6b88c5cfaa84f5cfcb072126)
- Update Ruby to use the newer upb_Map_Next() iterator (https://github.com/protocolbuffers/protobuf/commit/8809a113bc0a00b685b787a03d0698aa8c3e10e8)
- See also UPB changes below, which may affect Ruby C-Extension.
UPB (Python/PHP/Ruby C-Extension)
- Update protobuf commit (https://github.com/protocolbuffers/upb/commit/1fb480bc76bc0e331564d672e60b97a388aa3f76)
- Ensure that extensions respect deterministic serialization. (https://github.com/protocolbuffers/upb/commit/57a79de7cc34cc2ca4436483834aebd44e8f4f4b)
- Add ExtensionRegistry version of Parse to message templates. (https://github.com/protocolbuffers/upb/commit/28de62f4636ec6c271bf238a205684b8542b8f13)
- Fix Upb PromotoUnknownToMessage for OneOf fields. (https://github.com/protocolbuffers/upb/commit/10e57c038aef9154a4ddc03b627c4e5cbef9da04)
- Implement UPB OneOf MiniTable apis. (https://github.com/protocolbuffers/upb/commit/067dfeacfd02a9dedfa7fcfb1b1c2e8566cc8325)
- Remove reflection dependency for UPB compare utility. (https://github.com/protocolbuffers/upb/commit/84a3fd2d2d943c8ff37f09feadb1dd3f60f954ee)
- Expect fail when serialize inf and nan for Value.number_value in json format. fixes #11259 (https://github.com/protocolbuffers/upb/commit/651550cece034b8e3a6667e817ca654ab63dd694)
- Add ::protos::Parse template for Ptr. (https://github.com/protocolbuffers/upb/commit/b5384af913af9f96784a4c5b8a166e23f507c0c4)
- Upb_Array_Resize() now correctly clears new values (https://github.com/protocolbuffers/upb/commit/02cf7aaa1d97bc5268639e56f735d2ec30e7c4ed)
- Fix unset mini table field presence bug (https://github.com/protocolbuffers/upb/commit/9ab09b47fad2d0673689236bbb2d6ee9dfee1fbd)
- Allow reserved enums to be negative (https://github.com/protocolbuffers/upb/commit/1b0b06f082508f1d6856550e8ddb9b8112922984)
- Fix UPB_LIKELY() for 32-bit Windows builds (https://github.com/protocolbuffers/upb/commit/9582dc2058e2f8a9d789c6184e5e32602758ed0d)
- Fix C compiler failure when there are fields names prefixed with accessor prefixes such as set_ and clear_. (https://github.com/protocolbuffers/upb/commit/d76e286631eb89b621be)
- Make upb backwards and forwards compatible with Bazel 4.x, 3.5.x and LTS (https://github.com/protocolbuffers/upb/commit/04957b106174080e839b60c07c3a4c052646102b)
Other
- Rename Maven artifacts to use “RC” instead of “rc-” as the release candidate prefix.
- Remove unused headers, include missing headers, match args, etc. (https://github.com/protocolbuffers/protobuf/commit/21a6a26d6736dfc2bf8e638e5054a3dc5f7fc2a5)
- Add a non-const overload of RepeatedPtrField::GetArena and deprecate the const overload. (https://github.com/protocolbuffers/protobuf/commit/4bf33da229156c60794c63bbd129cbae542d450b)
- Optimize Varint Parsing for 32 and 64 bits (https://github.com/protocolbuffers/protobuf/commit/ac76ae9a6b76104da66cd550acd9d04cc817a64a)
- Fix reflection based parser for map entries with closed enum values. (https://github.com/protocolbuffers/protobuf/commit/55d21239e950164f810f3e8c348ce5bf0d7537d6)
- Upgrade to Abseil LTS
2023011
(#11622) (https://github.com/protocolbuffers/protobuf/commit/7930cd1f9d1ec9c6632ed29e9aede3c6ab362960) - Fixed Visual Studio 2022: protobuf\src\google\protobuf\arena.cc(457,51): error C2127: 'thread_cache_': illegal initialization of 'constinit' entity with a non-constant expression #11672 (#11674) (https://github.com/protocolbuffers/protobuf/commit/c2e99a1ee4df28261c2e3229b77b5d881b5db5db)
- Clean up a few issues with ARM-optimized varint decoding. (https://github.com/protocolbuffers/protobuf/commit/bbe2e68686d8517185f7bb67596f925b27058d34)
- Fix bool parser for map entries to look at the whole 64-bit varint and not just (https://github.com/protocolbuffers/protobuf/commit/43e5937bf65968f5cb4b17f2994dd65df849a7f3)
- Breaking Change:
proto2::Map::value_type
changes tostd::pair<const K, V>
. (https://github.com/protocolbuffers/protobuf/commit/46656ed080e959af3d0cb5329c063416b5a93ef0) - Breaking Change: Mark final ZeroCopyInputStream, ZeroCopyOutputStream, and DefaultFieldComparator classes. (https://github.com/protocolbuffers/protobuf/commit/bf9c22e1008670b497defde335f042ffd5ae25a1)
- Deprecate repeated field cleared elements API. (https://github.com/protocolbuffers/protobuf/commit/84d8b0037ba2a7ade615221175571c7a9c4c6f90)
- Breaking change: Make RepeatedField::GetArena non-const in order to support split RepeatedFields. (https://github.com/protocolbuffers/protobuf/commit/514c9a8e2ac85ad4c29e2394f3480341f0df27dc)
- Add EpsCopyInputStream::ReadCord() providing an efficient direct Cord API (https://github.com/protocolbuffers/protobuf/commit/bc4c156eb2310859d8b8002da050aab9cd78dd34)
- Add static asserts to container classes. (https://github.com/protocolbuffers/protobuf/commit/5a8abe1c2027d7595becdeb948340c97e85e7aa7)
- Fix proto deserialization issue when parsing a packed repeated enum field whose (https://github.com/protocolbuffers/protobuf/commit/afdf6dafc224258c450b47c5c7fcbc9365bbc302)
- Use the "shldq" decoder for the specialized 64-bit Varint parsers, rather than (https://github.com/protocolbuffers/protobuf/commit/0ca97a1d7de4c8f59b4a808541ce7c555cc17f33)
- Use @utf8_range to reference //third_party/utf8_range (#11352) (https://github.com/protocolbuffers/protobuf/commit/2dcd7d8f70c9a9b5bed07b614eaf006c79a99134)
- Place alignas() before lifetime specifiers (#11248) (https://github.com/protocolbuffers/protobuf/commit/5712e1a746abe0786a62014a24840dd44533422a)
- Add UnknownFieldSet::SerializeToCord() (https://github.com/protocolbuffers/protobuf/commit/8661e45075427162a962998279959bbabd11e0c8)
- Add support for repeated Cord fields. (https://github.com/protocolbuffers/protobuf/commit/b97005bda54f7f2a4e9791e0a5750bf39338ce89)
- Add Cord based Parse and Serialize logic to MessageLite (https://github.com/protocolbuffers/protobuf/commit/ddde013bd899702a1e78dd9e31a3e703bbb173b7)
- Add 'ReadCord
and 'WriteCord
functions to CodedStream (https://github.com/protocolbuffers/protobuf/commit/e5e2ad866c01804a56a11da97555a023eaf07a52) - Add CordInputStream and CordOutputStream providing stream support directly from/to Cord data (https://github.com/protocolbuffers/protobuf/commit/8afd1b670a19e6af9af7a9830e365178b969bf57)
- Add a
WriteCord()
method toZeroCopyInputStream
(https://github.com/protocolbuffers/protobuf/commit/192cd096b18619d5ccd2d3b01b086106ec428d04) - Unify string and cord cleanup nodes in TaggedNode (https://github.com/protocolbuffers/protobuf/commit/0783c82bb48fc60edc4d1d5b179b5ebdf8a36424)
- Open source google/protobuf/bridge/message_set.proto (https://github.com/protocolbuffers/protobuf/commit/c04f84261327bf1a2bd02c0db3c8538fd403d7e7)
- FileOutputStream: Properly pass block_size to CopyingOutputStreamAdaptor (https://github.com/protocolbuffers/protobuf/commit/1b1e399e2ec720cd93785ece148ec081255bd908)
- Implement ZeroCopyInputStream::ReadCord() in terms of absl::CordBuffer (https://github.com/protocolbuffers/protobuf/commit/75d31befc6475178d6c4cd920602c9709e714519)
- Changing bazel skylib version from 1.2.1 to 1.3.0 (#10979) (https://github.com/protocolbuffers/protobuf/commit/1489e8d224741ca4b1455b02257c3537efe9f1c9)
- Update zlib to 1.2.13. (#10786)
- Make jsoncpp a formal dependency (#10739)
- Upgrade to MSVC 2017, since 2015 is no longer supported (#10437)
- Update CMake configuration to add a dependency on Abseil (#10401)
- Use release version instead of libtool version in Makefile (#10355)
- Fix missing
google::protobuf::RepeatedPtrField<std::string>
issue in GCC (https://github.com/protocolbuffers/protobuf/commit/225b936c0183e98b7c5e072d9979c01f952c2d5a)
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.
Edited by renovate-bot