protocolbuffers/protobuf (com_google_protobuf)
### [`v23.4`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v23.4): Protocol Buffers v23.4
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v23.3...v23.4)
### Announcements
- [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes.
### Compiler
- Add dllexport_decl for generated default instance. ([#13085](https://togithub.com/protocolbuffers/protobuf/issues/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v23.3): Protocol Buffers v23.3
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v23.2...v23.3)
### Announcements
- [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes.
### C++
- Regenerate stale files ([#13046](https://togithub.com/protocolbuffers/protobuf/issues/13046)) (https://github.com/protocolbuffers/protobuf/commit/58b6ddb03ef8f186c9225d0107213f74750a82f3)
- Use the same ABI for static and shared libraries on non-Windows platforms ([#12983](https://togithub.com/protocolbuffers/protobuf/issues/12983)) (https://github.com/protocolbuffers/protobuf/commit/efa1ec75cf152991a64cedf9c4a1ec5cb826ee34)
### Objective-C
- Regenerate stale files ([#13046](https://togithub.com/protocolbuffers/protobuf/issues/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v23.2): Protocol Buffers v23.2
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v23.1...v23.2)
### Announcements
- [Protobuf News](https://protobuf.dev/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v23.1): Protocol Buffers v23.1
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v23.0...v23.1)
### Announcements
- [Protobuf News](https://protobuf.dev/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://togithub.com/protocolbuffers/protobuf/issues/12174)) (https://github.com/protocolbuffers/protobuf/commit/0ced986277be52dcb666e802a4602081df4e7264)
### [`v23.0`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v23.0): Protocol Buffers v23.0
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v22.5...v23.0)
### Announcements
- [Protobuf News](https://protobuf.dev/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://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/11425)) (https://github.com/protocolbuffers/protobuf/commit/363fa89b1f02d4c51028f8c8bcd506f08eaa6b49)
##### PHP C-Extension
- RepeatedField: unset by index ([#11425](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/12319)) (https://github.com/protocolbuffers/protobuf/commit/bd52d0483987f1a5186fc3daa261d1d76a787bcf)
- Feat(6178): emit ruby enum as integer ([#11673](https://togithub.com/protocolbuffers/protobuf/issues/11673)) (https://github.com/protocolbuffers/protobuf/commit/8aa2b177f156393ce607b4ffea8c1ac28560c746)
##### Ruby C-Extension
- Feat(6178): emit ruby enum as integer ([#11673](https://togithub.com/protocolbuffers/protobuf/issues/11673)) (https://github.com/protocolbuffers/protobuf/commit/8aa2b177f156393ce607b4ffea8c1ac28560c746)
- Ruby: Implement Write Barriers ([#11793](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/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`](https://togithub.com/protocolbuffers/protobuf/commit/20230125).3 ([#12660](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/12518)) (https://github.com/protocolbuffers/protobuf/commit/f79e35c821a50c6a37ffe365511b892f5409ac44)
- Fix build for newlib ([#12501](https://togithub.com/protocolbuffers/protobuf/issues/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](https://togithub.com/protocolbuffers/protobuf/issues/5144)) ([#11032](https://togithub.com/protocolbuffers/protobuf/issues/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v22.5): Protocol Buffers v22.5
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v22.4...v22.5)
### Announcements
- [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes.
### C++
- Fix: avoid warnings on MSVC ([#12697](https://togithub.com/protocolbuffers/protobuf/issues/12697)) (https://github.com/protocolbuffers/protobuf/commit/4483f10a1d7a553b17301d8fce477a12a6777c00)
- Fix: avoid warnings on Windows ([#12701](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/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`](https://togithub.com/protocolbuffers/protobuf/commit/20230125).3 ([#12660](https://togithub.com/protocolbuffers/protobuf/issues/12660)) (https://github.com/protocolbuffers/protobuf/commit/2880a20b01af3c955a76f2a1a58342fea8b5f741)
### [`v22.4`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v22.4): Protocol Buffers v22.4
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v22.3...v22.4)
### Announcements
- [Protobuf News](https://protobuf.dev/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://togithub.com/protocolbuffers/protobuf/issues/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v22.3): Protocol Buffers v22.3
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v22.2...v22.3)
### Announcements
- [Protobuf News](https://protobuf.dev/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](https://togithub.com/protocolbuffers/protobuf/pull/12276))
### [`v22.2`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v22.2): Protocol Buffers v22.2
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v22.1...v22.2)
### Announcements
- **This release was only published for Java and Ruby.**
- [Protobuf News](https://protobuf.dev/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v22.1): Protocol Buffers v22.1
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v22.0...v22.1)
### Announcements
- [Protobuf News](https://protobuf.dev/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v22.0): Protocol Buffers v22.0
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v21.12...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 to `std::pair`. (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](https://togithub.com/protocolbuffers/protobuf/issues/10416))
- \[Cpp] Remove all autotools usage ([#10132](https://togithub.com/protocolbuffers/protobuf/issues/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](https://protobuf.dev/programming-guides/migration/) for details on what C++ code changes will be necessary to be compatible with 22.0.
- [Protobuf News](https://protobuf.dev/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](https://togithub.com/protocolbuffers/protobuf/issues/10757))
- Gracefully handle weird placement of linebreaks around comments ([#10660](https://togithub.com/protocolbuffers/protobuf/issues/10660))
- Open up visibility for some compiler internals ([#10608](https://togithub.com/protocolbuffers/protobuf/issues/10608))
- Protoc: validate reserved names are identifiers ([#10586](https://togithub.com/protocolbuffers/protobuf/issues/10586))
- Protoc: validate custom json_name configuration ([#10581](https://togithub.com/protocolbuffers/protobuf/issues/10581))
- Protoc: fix consistency with parsing very large decimal numbers ([#10555](https://togithub.com/protocolbuffers/protobuf/issues/10555))
- Use protoc version for --version ([#10386](https://togithub.com/protocolbuffers/protobuf/issues/10386))
- Fix for grpc.tools [#17995](https://togithub.com/protocolbuffers/protobuf/issues/17995) & protobuf [#7474](https://togithub.com/protocolbuffers/protobuf/issues/7474) (handle UTF-8 paths in argumentfile) ([#10200](https://togithub.com/protocolbuffers/protobuf/issues/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](https://togithub.com/protocolbuffers/protobuf/issues/10610))
- CMake: Enable projects to set the C++ version ([#10464](https://togithub.com/protocolbuffers/protobuf/issues/10464))
- Breaking Change: Add a dependency on Abseil ([#10416](https://togithub.com/protocolbuffers/protobuf/issues/10416))
- Upgrade third_party/googletest submodule to current main branch ([#10393](https://togithub.com/protocolbuffers/protobuf/issues/10393))
- Breaking Change: Remove all autotools usage ([#10132](https://togithub.com/protocolbuffers/protobuf/issues/10132))
- CMake: use add_compile_options instead of add_definitions for compile options ([#10293](https://togithub.com/protocolbuffers/protobuf/issues/10293))
- Fix [#9947](https://togithub.com/protocolbuffers/protobuf/issues/9947): make the ABI identical between debug and non-debug builds ([#10271](https://togithub.com/protocolbuffers/protobuf/issues/10271))
- Allow for CMAKE_INSTALL_LIBDIR to be absolute ([#10090](https://togithub.com/protocolbuffers/protobuf/issues/10090))
- Add header search paths to protobuf-c++ spec ([#10024](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/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](https://togithub.com/protocolbuffers/protobuf/issues/10770))
- Add serialVersionUID to ByteString and subclasses ([#10718](https://togithub.com/protocolbuffers/protobuf/issues/10718))
- Fix serialization warnings in generated code when compiling with Java 18 and above ([#10561](https://togithub.com/protocolbuffers/protobuf/issues/10561))
- Fix Timestamps fromDate for negative 'exact second' java.sql.Timestamps ([#10321](https://togithub.com/protocolbuffers/protobuf/issues/10321))
- Fix Timestamps.fromDate to correctly handle java.sql.Timestamps before unix epoch ([#10126](https://togithub.com/protocolbuffers/protobuf/issues/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](https://togithub.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](https://togithub.com/protocolbuffers/protobuf/issues/10616))
- Add "public" modifier to Kotlin generated code ([#10599](https://togithub.com/protocolbuffers/protobuf/issues/10599))
- Update rules_kotlin version ([#10212](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/11128)) (https://github.com/protocolbuffers/protobuf/commit/c019a797492791093bccfb8404c90bf83761b3a4)
- Use forward slash instead of backslash in nuspec file ([#11449](https://togithub.com/protocolbuffers/protobuf/issues/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](https://togithub.com/protocolbuffers/protobuf/issues/10520))
- Fix 32-bit floating point JSON parsing of maximal values for C# ([#10514](https://togithub.com/protocolbuffers/protobuf/issues/10514))
- Retain existing array in RepeatedField.Clear ([#10508](https://togithub.com/protocolbuffers/protobuf/issues/10508))
- Implement IComparable for the Duration type (C#) ([#10441](https://togithub.com/protocolbuffers/protobuf/issues/10441))
- Implement correct map merging behavior for C# ([#10339](https://togithub.com/protocolbuffers/protobuf/issues/10339))
- Support indented JSON formatting in C# ([#9391](https://togithub.com/protocolbuffers/protobuf/issues/9391))
- Disambiguate generated properties in C# ([#10269](https://togithub.com/protocolbuffers/protobuf/issues/10269))
- Bugfix/issue 8101 ([#10268](https://togithub.com/protocolbuffers/protobuf/issues/10268))
- Expose plugin protos for C# ([#10244](https://togithub.com/protocolbuffers/protobuf/issues/10244))
- Update to C# 10 and upgrade code style ([#10105](https://togithub.com/protocolbuffers/protobuf/issues/10105))
- Fix failing FieldMask.Merge for well-known wrapper field types ([#9602](https://togithub.com/protocolbuffers/protobuf/issues/9602))
- Helper method on Any to allow an any to be unpacked more easily ([#9695](https://togithub.com/protocolbuffers/protobuf/issues/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](https://togithub.com/protocolbuffers/protobuf/issues/10652))
- \[ObjC] Provide a protocol for GPBExtensionRegistry's lookup support. ([#10597](https://togithub.com/protocolbuffers/protobuf/issues/10597))
- Mark the `syntax` on `GPBFileDescriptor` 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://togithub.com/protocolbuffers/protobuf/issues/11259) (https://github.com/protocolbuffers/protobuf/commit/883ec1c3ef8be0bae01cf9ad74e1adde977afeec)
- Resolve [#10949](https://togithub.com/protocolbuffers/protobuf/issues/10949): use raise from in json_format.py ([#10966](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/11011)) (https://github.com/protocolbuffers/protobuf/commit/9aa5272420f5c666f2dbaba0892b174004c56257)
- Raise KeyError in Python ServiceDescriptor.FindMethodByName ([#9592](https://togithub.com/protocolbuffers/protobuf/issues/9592)) ([#9998](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.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://togithub.com/protocolbuffers/protobuf/issues/11485)) (https://github.com/protocolbuffers/protobuf/commit/8e636d53e9aee98bc775e44bb38f1a103624816a)
- Chore: fix php lint ([#11417](https://togithub.com/protocolbuffers/protobuf/issues/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](https://togithub.com/protocolbuffers/protobuf/issues/10689))
- \[PHP] Fix empty message serialization for Any ([#10595](https://togithub.com/protocolbuffers/protobuf/issues/10595))
- \[PHP] allow dynamic properties in Message ([#10594](https://togithub.com/protocolbuffers/protobuf/issues/10594))
- \[PHP] Added getContainingOneof and getRealContainingOneof to descriptor. ([#10356](https://togithub.com/protocolbuffers/protobuf/issues/10356))
- Fix: PHP readonly legacy files for nested messages ([#10320](https://togithub.com/protocolbuffers/protobuf/issues/10320))
- Migrating macos php builds from 7.0/7.3 to 7.4/8.0 ([#10274](https://togithub.com/protocolbuffers/protobuf/issues/10274))
- Exposed more functions in FieldDescriptor and OneofDescriptor. ([#10102](https://togithub.com/protocolbuffers/protobuf/issues/10102))
- Fixed PHP SEGV by not writing to shared memory for zend_class_entry. ([#9995](https://togithub.com/protocolbuffers/protobuf/issues/9995))
- Feat: \[PHP] remove legacy generate class file ([#9621](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/11655)) (https://github.com/protocolbuffers/protobuf/commit/d1a3c6d08b3238415cb5c08609f42d88d9b227d3)
- Migrate ruby release targets to genrule to work around Bazel 5 bug ([#11619](https://togithub.com/protocolbuffers/protobuf/issues/11619)) (https://github.com/protocolbuffers/protobuf/commit/e207bcd940400fd8b99b838aae1117f1860ff495)
- Add ruby release targets ([#11468](https://togithub.com/protocolbuffers/protobuf/issues/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](https://togithub.com/protocolbuffers/protobuf/issues/10811))
- Auto capitalize enums name in Ruby ([#10454](https://togithub.com/protocolbuffers/protobuf/issues/10454))
- Ruby: Use class inheritance to save memory ([#10281](https://togithub.com/protocolbuffers/protobuf/issues/10281))
- Ruby: use a valid instance variable name for `descriptor` ([#10282](https://togithub.com/protocolbuffers/protobuf/issues/10282))
##### Ruby C-Extension
- For Ruby oneof fields, generate hazzers for members ([#11655](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/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`](https://togithub.com/protocolbuffers/protobuf/commit/20230117) ([#11622](https://togithub.com/protocolbuffers/protobuf/issues/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](https://togithub.com/protocolbuffers/protobuf/issues/11672) ([#11674](https://togithub.com/protocolbuffers/protobuf/issues/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 to `std::pair`. (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://togithub.com/protocolbuffers/protobuf/issues/11352)) (https://github.com/protocolbuffers/protobuf/commit/2dcd7d8f70c9a9b5bed07b614eaf006c79a99134)
- Place alignas() before lifetime specifiers ([#11248](https://togithub.com/protocolbuffers/protobuf/issues/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 to `ZeroCopyInputStream` (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://togithub.com/protocolbuffers/protobuf/issues/10979)) (https://github.com/protocolbuffers/protobuf/commit/1489e8d224741ca4b1455b02257c3537efe9f1c9)
- Update zlib to 1.2.13. ([#10786](https://togithub.com/protocolbuffers/protobuf/issues/10786))
- Make jsoncpp a formal dependency ([#10739](https://togithub.com/protocolbuffers/protobuf/issues/10739))
- Upgrade to MSVC 2017, since 2015 is no longer supported ([#10437](https://togithub.com/protocolbuffers/protobuf/issues/10437))
- Update CMake configuration to add a dependency on Abseil ([#10401](https://togithub.com/protocolbuffers/protobuf/issues/10401))
- Use release version instead of libtool version in Makefile ([#10355](https://togithub.com/protocolbuffers/protobuf/issues/10355))
- Fix missing `google::protobuf::RepeatedPtrField` issue in GCC (https://github.com/protocolbuffers/protobuf/commit/225b936c0183e98b7c5e072d9979c01f952c2d5a)
### [`v21.12`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v21.12): Protocol Buffers v21.12
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v21.11...v21.12)
### Python
- Fix broken enum ranges ([#11171](https://togithub.com/protocolbuffers/protobuf/issues/11171))
- Stop requiring extension fields to have a sythetic oneof ([#11091](https://togithub.com/protocolbuffers/protobuf/issues/11091))
- Python runtime 4.21.10 not works generated code can not load valid proto.
([#11171](https://togithub.com/protocolbuffers/protobuf/issues/11171))
### [`v21.11`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v21.11): Protocol Buffers v21.11
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v21.10...v21.11)
### Python
- Add license file to pypi wheels ([#10936](https://togithub.com/protocolbuffers/protobuf/issues/10936))
- Fix round-trip bug ([#10158](https://togithub.com/protocolbuffers/protobuf/issues/10158))
### [`v21.10`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v21.10): Protocol Buffers v21.10
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v21.9...v21.10)
### Java
- Use bit-field int values in buildPartial to skip work on unset groups of fields. ([#10960](https://togithub.com/protocolbuffers/protobuf/issues/10960))
- Mark nested builder as clean after clear is called ([#10984](https://togithub.com/protocolbuffers/protobuf/issues/10984))
### UPB
- Fix UPB_LIKELY() for 32-bit Windows builds; update protobuf_deps to point to the current upb 21.x ([#11028](https://togithub.com/protocolbuffers/protobuf/issues/11028))
### Other
- Add public modifiers to kotlin code ([#11068](https://togithub.com/protocolbuffers/protobuf/issues/11068))
### [`v21.9`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v21.9): Protocol Buffers v21.9
[Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v21.8...v21.9)
### C++
- Update zlib to 1.2.13 ([#10819](https://togithub.com/protocolbuffers/protobuf/issues/10819))
### Python
- Target MacOS 10.9 to fix [#10799](https://togithub.com/protocolbuffers/protobuf/issues/10799) ([#10807](https://togithub.com/protocolbuffers/protobuf/issues/10807))
### Ruby
- Replace libc strdup
Configuration
📅 Schedule: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
v3.21.12
->v23.4
Release Notes
protocolbuffers/protobuf (com_google_protobuf)
### [`v23.4`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v23.4): Protocol Buffers v23.4 [Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v23.3...v23.4) ### Announcements - [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. ### Compiler - Add dllexport_decl for generated default instance. ([#13085](https://togithub.com/protocolbuffers/protobuf/issues/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v23.3): Protocol Buffers v23.3 [Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v23.2...v23.3) ### Announcements - [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. ### C++ - Regenerate stale files ([#13046](https://togithub.com/protocolbuffers/protobuf/issues/13046)) (https://github.com/protocolbuffers/protobuf/commit/58b6ddb03ef8f186c9225d0107213f74750a82f3) - Use the same ABI for static and shared libraries on non-Windows platforms ([#12983](https://togithub.com/protocolbuffers/protobuf/issues/12983)) (https://github.com/protocolbuffers/protobuf/commit/efa1ec75cf152991a64cedf9c4a1ec5cb826ee34) ### Objective-C - Regenerate stale files ([#13046](https://togithub.com/protocolbuffers/protobuf/issues/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v23.2): Protocol Buffers v23.2 [Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v23.1...v23.2) ### Announcements - [Protobuf News](https://protobuf.dev/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v23.1): Protocol Buffers v23.1 [Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v23.0...v23.1) ### Announcements - [Protobuf News](https://protobuf.dev/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://togithub.com/protocolbuffers/protobuf/issues/12174)) (https://github.com/protocolbuffers/protobuf/commit/0ced986277be52dcb666e802a4602081df4e7264) ### [`v23.0`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v23.0): Protocol Buffers v23.0 [Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v22.5...v23.0) ### Announcements - [Protobuf News](https://protobuf.dev/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://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/11425)) (https://github.com/protocolbuffers/protobuf/commit/363fa89b1f02d4c51028f8c8bcd506f08eaa6b49) ##### PHP C-Extension - RepeatedField: unset by index ([#11425](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/12319)) (https://github.com/protocolbuffers/protobuf/commit/bd52d0483987f1a5186fc3daa261d1d76a787bcf) - Feat(6178): emit ruby enum as integer ([#11673](https://togithub.com/protocolbuffers/protobuf/issues/11673)) (https://github.com/protocolbuffers/protobuf/commit/8aa2b177f156393ce607b4ffea8c1ac28560c746) ##### Ruby C-Extension - Feat(6178): emit ruby enum as integer ([#11673](https://togithub.com/protocolbuffers/protobuf/issues/11673)) (https://github.com/protocolbuffers/protobuf/commit/8aa2b177f156393ce607b4ffea8c1ac28560c746) - Ruby: Implement Write Barriers ([#11793](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/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`](https://togithub.com/protocolbuffers/protobuf/commit/20230125).3 ([#12660](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/12518)) (https://github.com/protocolbuffers/protobuf/commit/f79e35c821a50c6a37ffe365511b892f5409ac44) - Fix build for newlib ([#12501](https://togithub.com/protocolbuffers/protobuf/issues/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](https://togithub.com/protocolbuffers/protobuf/issues/5144)) ([#11032](https://togithub.com/protocolbuffers/protobuf/issues/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v22.5): Protocol Buffers v22.5 [Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v22.4...v22.5) ### Announcements - [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. ### C++ - Fix: avoid warnings on MSVC ([#12697](https://togithub.com/protocolbuffers/protobuf/issues/12697)) (https://github.com/protocolbuffers/protobuf/commit/4483f10a1d7a553b17301d8fce477a12a6777c00) - Fix: avoid warnings on Windows ([#12701](https://togithub.com/protocolbuffers/protobuf/issues/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://togithub.com/protocolbuffers/protobuf/issues/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`](https://togithub.com/protocolbuffers/protobuf/commit/20230125).3 ([#12660](https://togithub.com/protocolbuffers/protobuf/issues/12660)) (https://github.com/protocolbuffers/protobuf/commit/2880a20b01af3c955a76f2a1a58342fea8b5f741) ### [`v22.4`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v22.4): Protocol Buffers v22.4 [Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v22.3...v22.4) ### Announcements - [Protobuf News](https://protobuf.dev/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://togithub.com/protocolbuffers/protobuf/issues/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v22.3): Protocol Buffers v22.3 [Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v22.2...v22.3) ### Announcements - [Protobuf News](https://protobuf.dev/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](https://togithub.com/protocolbuffers/protobuf/pull/12276)) ### [`v22.2`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v22.2): Protocol Buffers v22.2 [Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v22.1...v22.2) ### Announcements - **This release was only published for Java and Ruby.** - [Protobuf News](https://protobuf.dev/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v22.1): Protocol Buffers v22.1 [Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v22.0...v22.1) ### Announcements - [Protobuf News](https://protobuf.dev/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`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v22.0): Protocol Buffers v22.0 [Compare Source](https://togithub.com/protocolbuffers/protobuf/compare/v21.12...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 to `std::pairConfiguration
📅 Schedule: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.