Test plan: CI should pass with updated dependencies. No review required: this is an automated dependency update PR.
Release Notes
protocolbuffers/protobuf (com.google.protobuf:protoc)
### [`v3.25.5`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.25.4...v3.25.5)
### [`v3.25.4`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.25.3...v3.25.4)
### [`v3.25.3`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.25.2...v3.25.3)
### [`v3.25.2`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.25.1...v3.25.2)
### [`v3.25.1`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.25.0...v3.25.1)
### [`v3.25.0`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.24.4...v3.25.0)
### [`v3.24.4`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.24.3...v3.24.4)
### [`v3.24.3`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.24.2...v3.24.3)
### [`v3.24.2`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.24.1...v3.24.2)
### [`v3.24.1`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.24.0...v3.24.1)
### [`v3.24.0`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.23.4...v3.24.0)
### [`v3.23.4`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.23.3...v3.23.4)
### [`v3.23.3`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.23.2...v3.23.3)
### [`v3.23.2`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.23.1...v3.23.2)
### [`v3.23.1`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.23.0...v3.23.1)
### [`v3.23.0`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.22.5...v3.23.0)
### [`v3.22.5`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.22.4...v3.22.5)
### [`v3.22.4`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.22.3...v3.22.4)
### [`v3.22.3`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.22.2...v3.22.3)
### [`v3.22.2`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.22.1...v3.22.2)
### [`v3.22.1`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.22.0...v3.22.1)
### [`v3.22.0`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.12...v3.22.0)
### [`v3.21.12`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.11...v3.21.12)
### [`v3.21.11`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.10...v3.21.11)
### [`v3.21.10`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.9...v3.21.10)
### [`v3.21.9`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.8...v3.21.9)
### [`v3.21.8`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.7...v3.21.8)
### [`v3.21.7`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.6...v3.21.7)
### [`v3.21.6`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.5...v3.21.6)
### [`v3.21.5`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.4...v3.21.5)
### [`v3.21.4`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.3...v3.21.4)
### [`v3.21.3`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.2...v3.21.3)
### [`v3.21.2`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.1...v3.21.2)
### [`v3.21.1`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.0...v3.21.1)
### [`v3.21.0`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.20.3...v3.21.0)
### [`v3.20.3`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.20.3): Protocol Buffers v3.20.3
### Java
- 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.
- This release addresses a [Security Advisory for Java users](https://redirect.github.com/protocolbuffers/protobuf/security/advisories/GHSA-h4h5-3hr4-j3g2)
### [`v3.20.2`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.20.2): Protocol Buffers v3.20.2
### C++
- Reduce memory consumption of MessageSet parsing
- This release addresses a [Security Advisory for C++ and Python users](https://redirect.github.com/protocolbuffers/protobuf/security/advisories/GHSA-8gq9-2x98-w8hf)
### [`v3.20.1`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.20.1): Protocol Buffers v3.20.1
### PHP
- Fix building packaged PHP extension ([#9727](https://redirect.github.com/protocolbuffers/protobuf/issues/9727))
- Fixed composer.json to only advertise compatibility with PHP 7.0+. ([#9819](https://redirect.github.com/protocolbuffers/protobuf/issues/9819))
### Ruby
- Disable the aarch64 build on macOS until it can be fixed. ([#9816](https://redirect.github.com/protocolbuffers/protobuf/issues/9816))
### Other
- Fix versioning issues in 3.20.0
### [`v3.20.0`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.20.0): Protocol Buffers v3.20.0
2022-03-25 version 3.20.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
### Ruby
- Dropped Ruby 2.3 and 2.4 support for CI and releases. ([#9311](https://redirect.github.com/protocolbuffers/protobuf/issues/9311))
- Added Ruby 3.1 support for CI and releases ([#9566](https://redirect.github.com/protocolbuffers/protobuf/issues/9566)).
- Message.decode/encode: Add recursion_limit option ([#9218](https://redirect.github.com/protocolbuffers/protobuf/issues/9218)/[#9486](https://redirect.github.com/protocolbuffers/protobuf/issues/9486))
- Allocate with xrealloc()/xfree() so message allocation is visible to the
Ruby GC. In certain tests this leads to much lower memory usage due to more
frequent GC runs ([#9586](https://redirect.github.com/protocolbuffers/protobuf/issues/9586)).
- Fix conversion of singleton classes in Ruby ([#9342](https://redirect.github.com/protocolbuffers/protobuf/issues/9342))
- Suppress warning for intentional circular require ([#9556](https://redirect.github.com/protocolbuffers/protobuf/issues/9556))
- JSON will now output shorter strings for double and float fields when possible
without losing precision.
- Encoding and decoding of binary format will now work properly on big-endian
systems.
- UTF-8 verification was fixed to properly reject surrogate code points.
- Unknown enums for proto2 protos now properly implement proto2's behavior of
putting such values in unknown fields.
### Java
- Revert "Standardize on Array copyOf" ([#9400](https://redirect.github.com/protocolbuffers/protobuf/issues/9400))
- Resolve more java field accessor name conflicts ([#8198](https://redirect.github.com/protocolbuffers/protobuf/issues/8198))
- Don't support map fields in DynamicMessage.Builder.{getFieldBuilder,getRepeatedFieldBuilder}
- Fix parseFrom to only throw InvalidProtocolBufferException
- InvalidProtocolBufferException now allows arbitrary wrapped Exception types.
- Fix bug in `FieldSet.Builder.mergeFrom`
- Flush CodedOutputStream also flushes underlying OutputStream
- When oneof case is the same and the field type is Message, merge the
subfield. (previously it was replaced.)’
- Add [@CheckReturnValue](https://redirect.github.com/CheckReturnValue) to some protobuf types
- Report original exceptions when parsing JSON
- Add more info to [@deprecated](https://redirect.github.com/deprecated) javadoc for set/get/has methods
- Fix initialization bug in doc comment line numbers
- Fix comments for message set wire format.
### Kotlin
- Add test scope to kotlin-test for protobuf-kotlin-lite ([#9518](https://redirect.github.com/protocolbuffers/protobuf/issues/9518))
- Add orNull extensions for optional message fields.
- Add orNull extensions to all proto3 message fields.
### Python
- Dropped support for Python < 3.7 ([#9480](https://redirect.github.com/protocolbuffers/protobuf/issues/9480))
- Protoc is now able to generate python stubs (.pyi) with --pyi_out
- Pin multibuild scripts to get manylinux1 wheels back ([#9216](https://redirect.github.com/protocolbuffers/protobuf/issues/9216))
- Fix type annotations of some Duration and Timestamp methods.
- Repeated field containers are now generic in field types and could be used
in type annotations.
\*\[Breaking change] Protobuf python generated codes are simplified. Descriptors and message
classes' definitions are now dynamic created in internal/builder.py.
Insertion Points for messages classes are discarded.
- has_presence is added for FieldDescriptor in python
- Loosen indexing type requirements to allow valid **index**() implementations
rather than only PyLongObjects.
- Fix the deepcopy bug caused by not copying message_listener.
- Added python JSON parse recursion limit (default 100)
- Path info is added for python JSON parse errors
- Pure python repeated scalar fields will not able to pickle. Convert to list
first.
- Timestamp.ToDatetime() now accepts an optional tzinfo parameter. If
specified, the function returns a timezone-aware datetime in the given time
zone. If omitted or None, the function returns a timezone-naive UTC datetime
(as previously).
- Adds client_streaming and server_streaming fields to MethodDescriptor.
- Add "ensure_ascii" parameter to json_format.MessageToJson. This allows smaller
JSON serializations with UTF-8 or other non-ASCII encodings.
- Added experimental support for directly assigning numpy scalars and array.
- Improve the calculation of public_dependencies in DescriptorPool.
- \[Breaking Change] Disallow setting fields to numpy singleton arrays or repeated fields to numpy
multi-dimensional arrays. Numpy arrays should be indexed or flattened explicitly before assignment.
### Compiler
- Migrate IsDefault(const std::string\*) and UnsafeSetDefault(const std::string\*)
- Implement strong qualified tags for TaggedPtr
- Rework allocations to power-of-two byte sizes.
- Migrate IsDefault(const std::string\*) and UnsafeSetDefault(const std::string\*)
- Implement strong qualified tags for TaggedPtr
- Make TaggedPtr Set...() calls explicitly spell out the content type.
- Check for parsing error before verifying UTF8.
- Enforce a maximum message nesting limit of 32 in the descriptor builder to
guard against stack overflows
- Fixed bugs in operators for RepeatedPtrIterator
- Assert a maximum map alignment for allocated values
- Fix proto1 group extension protodb parsing error
- Do not log/report the same descriptor symbol multiple times if it contains
more than one invalid character.
- Add UnknownFieldSet::SerializeToString and SerializeToCodedStream.
- Remove explicit default pointers and deprecated API from protocol compiler
### Arenas
- Change Repeated\*Field to reuse memory when using arenas.
- Implements pbarenaz for profiling proto arenas
- Introduce CreateString() and CreateArenaString() for cleaner semantics
- Fix unreferenced parameter for MSVC builds
- Add UnsafeSetAllocated to be used for one-of string fields.
- Make Arena::AllocateAligned() a public function.
- Determine if ArenaDtor related code generation is necessary in one place.
- Implement on demand register ArenaDtor for InlinedStringField
### C++
- Enable testing via CTest ([#8737](https://redirect.github.com/protocolbuffers/protobuf/issues/8737))
- Add option to use external GTest in CMake ([#8736](https://redirect.github.com/protocolbuffers/protobuf/issues/8736))
- CMake: Set correct sonames for libprotobuf-lite.so and libprotoc.so ([#8635](https://redirect.github.com/protocolbuffers/protobuf/issues/8635)) ([#9529](https://redirect.github.com/protocolbuffers/protobuf/issues/9529))
- Add cmake option `protobuf_INSTALL` to not install files ([#7123](https://redirect.github.com/protocolbuffers/protobuf/issues/7123))
- CMake: Allow custom plugin options e.g. to generate mocks ([#9105](https://redirect.github.com/protocolbuffers/protobuf/issues/9105))
- CMake: Use linker version scripts ([#9545](https://redirect.github.com/protocolbuffers/protobuf/issues/9545))
- Manually \*struct Cord fields to work better with arenas.
- Manually destruct map fields.
- Generate narrower code
- Fix [https://github.com/protocolbuffers/protobuf/issues/9378](https://redirect.github.com/protocolbuffers/protobuf/issues/9378) by removing
shadowed *cached_size* field
- Remove GetPointer() and explicit nullptr defaults.
- Add proto_h flag for speeding up large builds
- Add missing overload for reference wrapped fields.
- Add MergedDescriptorDatabase::FindAllFileNames()
- RepeatedField now defines an iterator type instead of using a pointer.
- Remove obsolete macros GOOGLE_PROTOBUF_HAS_ONEOF and GOOGLE_PROTOBUF_HAS_ARENAS.
### PHP
- Fix: add missing reserved classnames ([#9458](https://redirect.github.com/protocolbuffers/protobuf/issues/9458))
- PHP 8.1 compatibility ([#9370](https://redirect.github.com/protocolbuffers/protobuf/issues/9370))
### C\#
- Fix trim warnings ([#9182](https://redirect.github.com/protocolbuffers/protobuf/issues/9182))
- Fixes NullReferenceException when accessing FieldDescriptor.IsPacked ([#9430](https://redirect.github.com/protocolbuffers/protobuf/issues/9430))
- Add ToProto() method to all descriptor classes ([#9426](https://redirect.github.com/protocolbuffers/protobuf/issues/9426))
- Add an option to preserve proto names in JsonFormatter ([#6307](https://redirect.github.com/protocolbuffers/protobuf/issues/6307))
### Objective-C
- Add prefix_to_proto_package_mappings_path option. ([#9498](https://redirect.github.com/protocolbuffers/protobuf/issues/9498))
- Rename `proto_package_to_prefix_mappings_path` to `package_to_prefix_mappings_path`. ([#9552](https://redirect.github.com/protocolbuffers/protobuf/issues/9552))
- Add a generation option to control use of forward declarations in headers. ([#9568](https://redirect.github.com/protocolbuffers/protobuf/issues/9568))
### [`v3.19.6`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.6): Protocol Buffers v3.19.6
### Java
- 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.
- This release addresses a [Security Advisory for Java users](https://redirect.github.com/protocolbuffers/protobuf/security/advisories/GHSA-h4h5-3hr4-j3g2)
### [`v3.19.5`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.5): Protocol Buffers v3.19.5
### C++
- Reduce memory consumption of MessageSet parsing
- This release addresses a [Security Advisory for C++ and Python users](https://redirect.github.com/protocolbuffers/protobuf/security/advisories/GHSA-8gq9-2x98-w8hf)
### [`v3.19.4`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.4): Protocol Buffers v3.19.4
### Python
- Make libprotobuf symbols local on OSX to fix issue [#9395](https://redirect.github.com/protocolbuffers/protobuf/issues/9395) ([#9435](https://redirect.github.com/protocolbuffers/protobuf/issues/9435))
### Ruby
- Fixed a data loss bug that could occur when the number of `optional` fields in a message is an exact multiple of 32. ([#9440](https://redirect.github.com/protocolbuffers/protobuf/issues/9440)).
### PHP
- Fixed a data loss bug that could occur when the number of `optional` fields in a message is an exact multiple of 32. ([#9440](https://redirect.github.com/protocolbuffers/protobuf/issues/9440)).
### [`v3.19.3`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.3): Protocol Buffers v3.19.3
### Python
- Fix missing Windows wheel for Python 3.10 on PyPI
### [`v3.19.2`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.2): Protocol Buffers v3.19.2
### Java
- Improve performance characteristics of UnknownFieldSet parsing ([#9371](https://redirect.github.com/protocolbuffers/protobuf/issues/9371))
- This release addresses a [Security Advisory for Java users](https://redirect.github.com/protocolbuffers/protobuf/security/advisories/GHSA-wrvw-hg22-4m67)
### [`v3.19.1`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.1): Protocol Buffers v3.19.1
### Bazel
- Ensure that release archives contain everything needed for Bazel ([#9131](https://redirect.github.com/protocolbuffers/protobuf/issues/9131))
- Align dependency handling with Bazel best practices ([#9165](https://redirect.github.com/protocolbuffers/protobuf/issues/9165))
### JavaScript
- Fix `ReferenceError: window is not defined` when getting the global object ([#9156](https://redirect.github.com/protocolbuffers/protobuf/issues/9156))
### Ruby
- Fix memory leak in MessageClass.encode ([#9150](https://redirect.github.com/protocolbuffers/protobuf/issues/9150))
### [`v3.19.0`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.0): Protocol Buffers v3.19.0
### C++
- Make proto2::Message::DiscardUnknownFields() non-virtual
- Separate RepeatedPtrField into its own header file
- For default floating point values of 0, consider all bits significant
- cmake: support `MSVC_RUNTIME_LIBRARY` property ([#8851](https://redirect.github.com/protocolbuffers/protobuf/issues/8851))
- Fix shadowing warnings ([#8926](https://redirect.github.com/protocolbuffers/protobuf/issues/8926))
- Fix for issue [#8484](https://redirect.github.com/protocolbuffers/protobuf/issues/8484), constant initialization doesn't compile in msvc clang-cl environment ([#8993](https://redirect.github.com/protocolbuffers/protobuf/issues/8993))
- Fix build on AIX and SunOS ([#8373](https://redirect.github.com/protocolbuffers/protobuf/issues/8373)) ([#9065](https://redirect.github.com/protocolbuffers/protobuf/issues/9065))
- Add Android stlport and default toolchains to BUILD. ([#8290](https://redirect.github.com/protocolbuffers/protobuf/issues/8290))
### Java
- For default floating point values of 0, consider all bits significant
- Annotate `//java/com/google/protobuf/util/...` with nullness annotations
- Use ArrayList copy constructor ([#7853](https://redirect.github.com/protocolbuffers/protobuf/issues/7853))
### Kotlin
- Switch Kotlin proto DSLs to be implemented with inline value classes
- Fixing inlining and deprecation for repeated string fields ([#9120](https://redirect.github.com/protocolbuffers/protobuf/issues/9120))
### Python
- Proto2 DecodeError now includes message name in error message
- Make MessageToDict convert map keys to strings ([#8122](https://redirect.github.com/protocolbuffers/protobuf/issues/8122))
- Add python-requires in setup.py ([#8989](https://redirect.github.com/protocolbuffers/protobuf/issues/8989))
- Add python 3.10 ([#9034](https://redirect.github.com/protocolbuffers/protobuf/issues/9034))
### JavaScript
- Skip exports if not available by CommonJS ([#8856](https://redirect.github.com/protocolbuffers/protobuf/issues/8856))
- JS: Comply with CSP no-unsafe-eval. ([#8864](https://redirect.github.com/protocolbuffers/protobuf/issues/8864))
### PHP
- Added "object" as a reserved name for PHP ([#8962](https://redirect.github.com/protocolbuffers/protobuf/issues/8962))
### Ruby
- Override Map.clone to use Map's dup method ([#7938](https://redirect.github.com/protocolbuffers/protobuf/issues/7938))
- Ruby: build extensions for arm64-darwin ([#8232](https://redirect.github.com/protocolbuffers/protobuf/issues/8232))
- Add class method Timestamp.from_time to ruby well known types ([#8562](https://redirect.github.com/protocolbuffers/protobuf/issues/8562))
- Adopt pure ruby DSL implementation for JRuby ([#9047](https://redirect.github.com/protocolbuffers/protobuf/issues/9047))
- Add size to Map class ([#8068](https://redirect.github.com/protocolbuffers/protobuf/issues/8068))
- Fix for descriptor_pb.rb: google/protobuf should be required first ([#9121](https://redirect.github.com/protocolbuffers/protobuf/issues/9121))
### C\#
- Correctly set ExtensionRegistry when parsing with MessageParser, but using an already existing CodedInputStream ([#7246](https://redirect.github.com/protocolbuffers/protobuf/issues/7246))
- \[C#] Make FieldDescriptor propertyName public ([#7642](https://redirect.github.com/protocolbuffers/protobuf/issues/7642))
### [`v3.18.3`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.18.3): Protocol Buffers v3.18.3
### C++
- Reduce memory consumption of MessageSet parsing
- This release addresses a [Security Advisory for C++ and Python users](https://redirect.github.com/protocolbuffers/protobuf/security/advisories/GHSA-8gq9-2x98-w8hf)
### [`v3.18.2`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.18.2): Protocol Buffers v3.18.2
### Java
- Improve performance characteristics of UnknownFieldSet parsing ([#9371](https://redirect.github.com/protocolbuffers/protobuf/issues/9371))
### [`v3.18.1`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.18.1): Protocol Buffers v3.18.1
### Python
- Update setup.py to reflect that we now require at least Python 3.5 ([#8989](https://redirect.github.com/protocolbuffers/protobuf/issues/8989))
- Performance fix for DynamicMessage: force GetRaw() to be inlined ([#9023](https://redirect.github.com/protocolbuffers/protobuf/issues/9023))
### Ruby
- Update ruby_generator.cc to allow proto2 imports in proto3 ([#9003](https://redirect.github.com/protocolbuffers/protobuf/issues/9003))
### [`v3.18.0`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.18.0): Protocol Buffers v3.18.0
### C++
- Fix warnings raised by clang 11 ([#8664](https://redirect.github.com/protocolbuffers/protobuf/issues/8664))
- Make StringPiece constructible from std::string_view ([#8707](https://redirect.github.com/protocolbuffers/protobuf/issues/8707))
- Add missing capability attributes for LLVM 12 ([#8714](https://redirect.github.com/protocolbuffers/protobuf/issues/8714))
- Stop using std::iterator (deprecated in C++17). ([#8741](https://redirect.github.com/protocolbuffers/protobuf/issues/8741))
- Move field_access_listener from libprotobuf-lite to libprotobuf ([#8775](https://redirect.github.com/protocolbuffers/protobuf/issues/8775))
- Fix [#7047](https://redirect.github.com/protocolbuffers/protobuf/issues/7047) Safely handle setlocale ([#8735](https://redirect.github.com/protocolbuffers/protobuf/issues/8735))
- Remove deprecated version of SetTotalBytesLimit() ([#8794](https://redirect.github.com/protocolbuffers/protobuf/issues/8794))
- Support arena allocation of google::protobuf::AnyMetadata ([#8758](https://redirect.github.com/protocolbuffers/protobuf/issues/8758))
- Fix undefined symbol error around SharedCtor() ([#8827](https://redirect.github.com/protocolbuffers/protobuf/issues/8827))
- Fix default value of enum(int) in json_util with proto2 ([#8835](https://redirect.github.com/protocolbuffers/protobuf/issues/8835))
- Better Smaller ByteSizeLong
- Introduce event filters for inject_field_listener_events
- Reduce memory usage of DescriptorPool
- For lazy fields copy serialized form when allowed.
- Re-introduce the InlinedStringField class
- v2 access listener
- Reduce padding in the proto's ExtensionRegistry map.
- GetExtension performance optimizations
- Make tracker a static variable rather than call static functions
- Support extensions in field access listener
- Annotate MergeFrom for field access listener
- Fix incomplete types for field access listener
- Add map_entry/new_map_entry to SpecificField in MessageDifferencer. They
record the map items which are different in MessageDifferencer's reporter.
- Reduce binary size due to fieldless proto messages
- TextFormat: ParseInfoTree supports getting field end location in addition to
start.
- Fix repeated enum extension size in field listener
- Enable Any Text Expansion for Descriptors::DebugString()
- Switch from int{8,16,32,64} to int{8,16,32,64}\_t
### Java
- Fix errorprone conflict ([#8723](https://redirect.github.com/protocolbuffers/protobuf/issues/8723))
- Removing deprecated TimeUtil class. ([#8749](https://redirect.github.com/protocolbuffers/protobuf/issues/8749))
- Optimized FieldDescriptor.valueOf() to avoid array copying.
- Removing deprecated TimeUtil class.
- Add Durations.parseUnchecked(String) and Timestamps.parseUnchecked(String)
- FieldMaskUtil: Add convenience method to mask the fields out of a given proto.
### JavaScript
- Optimize binary parsing of repeated float64
- Fix for optimization when reading doubles from binary wire format
- Replace toArray implementation with toJSON.
### PHP
- Migrate PHP & Ruby to ABSL wyhash ([#8854](https://redirect.github.com/protocolbuffers/protobuf/issues/8854))
- Added support for PHP 8.1 (currently in RC1) to the C extension ([#8964](https://redirect.github.com/protocolbuffers/protobuf/issues/8964))
- Fixed PHP SEGV when constructing messages from a destructor. ([#8969](https://redirect.github.com/protocolbuffers/protobuf/issues/8969))
### Ruby
- Move DSL implementation from C to pure Ruby ([#8850](https://redirect.github.com/protocolbuffers/protobuf/issues/8850))
- Fixed a memory bug with RepeatedField#+. ([#8970](https://redirect.github.com/protocolbuffers/protobuf/issues/8970))
### Python
- Drops support for 2.7 and 3.5.
### Other
- \[csharp] ByteString.CreateCodedInput should use ArraySegment offset and count ([#8740](https://redirect.github.com/protocolbuffers/protobuf/issues/8740))
- \[ObjC] Add support for using the proto package to prefix symbols. ([#8760](https://redirect.github.com/protocolbuffers/protobuf/issues/8760))
- field_presence.md: fix Go example ([#8788](https://redirect.github.com/protocolbuffers/protobuf/issues/8788))
Configuration
📅 Schedule: Branch creation - "on the 1st through 7th day of the month" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, 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 contains the following updates:
3.17.3
->4.29.0
Test plan: CI should pass with updated dependencies. No review required: this is an automated dependency update PR.
Release Notes
protocolbuffers/protobuf (com.google.protobuf:protoc)
### [`v3.25.5`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.25.4...v3.25.5) ### [`v3.25.4`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.25.3...v3.25.4) ### [`v3.25.3`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.25.2...v3.25.3) ### [`v3.25.2`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.25.1...v3.25.2) ### [`v3.25.1`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.25.0...v3.25.1) ### [`v3.25.0`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.24.4...v3.25.0) ### [`v3.24.4`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.24.3...v3.24.4) ### [`v3.24.3`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.24.2...v3.24.3) ### [`v3.24.2`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.24.1...v3.24.2) ### [`v3.24.1`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.24.0...v3.24.1) ### [`v3.24.0`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.23.4...v3.24.0) ### [`v3.23.4`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.23.3...v3.23.4) ### [`v3.23.3`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.23.2...v3.23.3) ### [`v3.23.2`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.23.1...v3.23.2) ### [`v3.23.1`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.23.0...v3.23.1) ### [`v3.23.0`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.22.5...v3.23.0) ### [`v3.22.5`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.22.4...v3.22.5) ### [`v3.22.4`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.22.3...v3.22.4) ### [`v3.22.3`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.22.2...v3.22.3) ### [`v3.22.2`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.22.1...v3.22.2) ### [`v3.22.1`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.22.0...v3.22.1) ### [`v3.22.0`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.12...v3.22.0) ### [`v3.21.12`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.11...v3.21.12) ### [`v3.21.11`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.10...v3.21.11) ### [`v3.21.10`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.9...v3.21.10) ### [`v3.21.9`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.8...v3.21.9) ### [`v3.21.8`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.7...v3.21.8) ### [`v3.21.7`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.6...v3.21.7) ### [`v3.21.6`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.5...v3.21.6) ### [`v3.21.5`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.4...v3.21.5) ### [`v3.21.4`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.3...v3.21.4) ### [`v3.21.3`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.2...v3.21.3) ### [`v3.21.2`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.1...v3.21.2) ### [`v3.21.1`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.21.0...v3.21.1) ### [`v3.21.0`](https://redirect.github.com/protocolbuffers/protobuf/compare/v3.20.3...v3.21.0) ### [`v3.20.3`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.20.3): Protocol Buffers v3.20.3 ### Java - 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. - This release addresses a [Security Advisory for Java users](https://redirect.github.com/protocolbuffers/protobuf/security/advisories/GHSA-h4h5-3hr4-j3g2) ### [`v3.20.2`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.20.2): Protocol Buffers v3.20.2 ### C++ - Reduce memory consumption of MessageSet parsing - This release addresses a [Security Advisory for C++ and Python users](https://redirect.github.com/protocolbuffers/protobuf/security/advisories/GHSA-8gq9-2x98-w8hf) ### [`v3.20.1`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.20.1): Protocol Buffers v3.20.1 ### PHP - Fix building packaged PHP extension ([#9727](https://redirect.github.com/protocolbuffers/protobuf/issues/9727)) - Fixed composer.json to only advertise compatibility with PHP 7.0+. ([#9819](https://redirect.github.com/protocolbuffers/protobuf/issues/9819)) ### Ruby - Disable the aarch64 build on macOS until it can be fixed. ([#9816](https://redirect.github.com/protocolbuffers/protobuf/issues/9816)) ### Other - Fix versioning issues in 3.20.0 ### [`v3.20.0`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.20.0): Protocol Buffers v3.20.0 2022-03-25 version 3.20.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript) ### Ruby - Dropped Ruby 2.3 and 2.4 support for CI and releases. ([#9311](https://redirect.github.com/protocolbuffers/protobuf/issues/9311)) - Added Ruby 3.1 support for CI and releases ([#9566](https://redirect.github.com/protocolbuffers/protobuf/issues/9566)). - Message.decode/encode: Add recursion_limit option ([#9218](https://redirect.github.com/protocolbuffers/protobuf/issues/9218)/[#9486](https://redirect.github.com/protocolbuffers/protobuf/issues/9486)) - Allocate with xrealloc()/xfree() so message allocation is visible to the Ruby GC. In certain tests this leads to much lower memory usage due to more frequent GC runs ([#9586](https://redirect.github.com/protocolbuffers/protobuf/issues/9586)). - Fix conversion of singleton classes in Ruby ([#9342](https://redirect.github.com/protocolbuffers/protobuf/issues/9342)) - Suppress warning for intentional circular require ([#9556](https://redirect.github.com/protocolbuffers/protobuf/issues/9556)) - JSON will now output shorter strings for double and float fields when possible without losing precision. - Encoding and decoding of binary format will now work properly on big-endian systems. - UTF-8 verification was fixed to properly reject surrogate code points. - Unknown enums for proto2 protos now properly implement proto2's behavior of putting such values in unknown fields. ### Java - Revert "Standardize on Array copyOf" ([#9400](https://redirect.github.com/protocolbuffers/protobuf/issues/9400)) - Resolve more java field accessor name conflicts ([#8198](https://redirect.github.com/protocolbuffers/protobuf/issues/8198)) - Don't support map fields in DynamicMessage.Builder.{getFieldBuilder,getRepeatedFieldBuilder} - Fix parseFrom to only throw InvalidProtocolBufferException - InvalidProtocolBufferException now allows arbitrary wrapped Exception types. - Fix bug in `FieldSet.Builder.mergeFrom` - Flush CodedOutputStream also flushes underlying OutputStream - When oneof case is the same and the field type is Message, merge the subfield. (previously it was replaced.)’ - Add [@CheckReturnValue](https://redirect.github.com/CheckReturnValue) to some protobuf types - Report original exceptions when parsing JSON - Add more info to [@deprecated](https://redirect.github.com/deprecated) javadoc for set/get/has methods - Fix initialization bug in doc comment line numbers - Fix comments for message set wire format. ### Kotlin - Add test scope to kotlin-test for protobuf-kotlin-lite ([#9518](https://redirect.github.com/protocolbuffers/protobuf/issues/9518)) - Add orNull extensions for optional message fields. - Add orNull extensions to all proto3 message fields. ### Python - Dropped support for Python < 3.7 ([#9480](https://redirect.github.com/protocolbuffers/protobuf/issues/9480)) - Protoc is now able to generate python stubs (.pyi) with --pyi_out - Pin multibuild scripts to get manylinux1 wheels back ([#9216](https://redirect.github.com/protocolbuffers/protobuf/issues/9216)) - Fix type annotations of some Duration and Timestamp methods. - Repeated field containers are now generic in field types and could be used in type annotations. \*\[Breaking change] Protobuf python generated codes are simplified. Descriptors and message classes' definitions are now dynamic created in internal/builder.py. Insertion Points for messages classes are discarded. - has_presence is added for FieldDescriptor in python - Loosen indexing type requirements to allow valid **index**() implementations rather than only PyLongObjects. - Fix the deepcopy bug caused by not copying message_listener. - Added python JSON parse recursion limit (default 100) - Path info is added for python JSON parse errors - Pure python repeated scalar fields will not able to pickle. Convert to list first. - Timestamp.ToDatetime() now accepts an optional tzinfo parameter. If specified, the function returns a timezone-aware datetime in the given time zone. If omitted or None, the function returns a timezone-naive UTC datetime (as previously). - Adds client_streaming and server_streaming fields to MethodDescriptor. - Add "ensure_ascii" parameter to json_format.MessageToJson. This allows smaller JSON serializations with UTF-8 or other non-ASCII encodings. - Added experimental support for directly assigning numpy scalars and array. - Improve the calculation of public_dependencies in DescriptorPool. - \[Breaking Change] Disallow setting fields to numpy singleton arrays or repeated fields to numpy multi-dimensional arrays. Numpy arrays should be indexed or flattened explicitly before assignment. ### Compiler - Migrate IsDefault(const std::string\*) and UnsafeSetDefault(const std::string\*) - Implement strong qualified tags for TaggedPtr - Rework allocations to power-of-two byte sizes. - Migrate IsDefault(const std::string\*) and UnsafeSetDefault(const std::string\*) - Implement strong qualified tags for TaggedPtr - Make TaggedPtr Set...() calls explicitly spell out the content type. - Check for parsing error before verifying UTF8. - Enforce a maximum message nesting limit of 32 in the descriptor builder to guard against stack overflows - Fixed bugs in operators for RepeatedPtrIterator - Assert a maximum map alignment for allocated values - Fix proto1 group extension protodb parsing error - Do not log/report the same descriptor symbol multiple times if it contains more than one invalid character. - Add UnknownFieldSet::SerializeToString and SerializeToCodedStream. - Remove explicit default pointers and deprecated API from protocol compiler ### Arenas - Change Repeated\*Field to reuse memory when using arenas. - Implements pbarenaz for profiling proto arenas - Introduce CreateString() and CreateArenaString() for cleaner semantics - Fix unreferenced parameter for MSVC builds - Add UnsafeSetAllocated to be used for one-of string fields. - Make Arena::AllocateAligned() a public function. - Determine if ArenaDtor related code generation is necessary in one place. - Implement on demand register ArenaDtor for InlinedStringField ### C++ - Enable testing via CTest ([#8737](https://redirect.github.com/protocolbuffers/protobuf/issues/8737)) - Add option to use external GTest in CMake ([#8736](https://redirect.github.com/protocolbuffers/protobuf/issues/8736)) - CMake: Set correct sonames for libprotobuf-lite.so and libprotoc.so ([#8635](https://redirect.github.com/protocolbuffers/protobuf/issues/8635)) ([#9529](https://redirect.github.com/protocolbuffers/protobuf/issues/9529)) - Add cmake option `protobuf_INSTALL` to not install files ([#7123](https://redirect.github.com/protocolbuffers/protobuf/issues/7123)) - CMake: Allow custom plugin options e.g. to generate mocks ([#9105](https://redirect.github.com/protocolbuffers/protobuf/issues/9105)) - CMake: Use linker version scripts ([#9545](https://redirect.github.com/protocolbuffers/protobuf/issues/9545)) - Manually \*struct Cord fields to work better with arenas. - Manually destruct map fields. - Generate narrower code - Fix [https://github.com/protocolbuffers/protobuf/issues/9378](https://redirect.github.com/protocolbuffers/protobuf/issues/9378) by removing shadowed *cached_size* field - Remove GetPointer() and explicit nullptr defaults. - Add proto_h flag for speeding up large builds - Add missing overload for reference wrapped fields. - Add MergedDescriptorDatabase::FindAllFileNames() - RepeatedField now defines an iterator type instead of using a pointer. - Remove obsolete macros GOOGLE_PROTOBUF_HAS_ONEOF and GOOGLE_PROTOBUF_HAS_ARENAS. ### PHP - Fix: add missing reserved classnames ([#9458](https://redirect.github.com/protocolbuffers/protobuf/issues/9458)) - PHP 8.1 compatibility ([#9370](https://redirect.github.com/protocolbuffers/protobuf/issues/9370)) ### C\# - Fix trim warnings ([#9182](https://redirect.github.com/protocolbuffers/protobuf/issues/9182)) - Fixes NullReferenceException when accessing FieldDescriptor.IsPacked ([#9430](https://redirect.github.com/protocolbuffers/protobuf/issues/9430)) - Add ToProto() method to all descriptor classes ([#9426](https://redirect.github.com/protocolbuffers/protobuf/issues/9426)) - Add an option to preserve proto names in JsonFormatter ([#6307](https://redirect.github.com/protocolbuffers/protobuf/issues/6307)) ### Objective-C - Add prefix_to_proto_package_mappings_path option. ([#9498](https://redirect.github.com/protocolbuffers/protobuf/issues/9498)) - Rename `proto_package_to_prefix_mappings_path` to `package_to_prefix_mappings_path`. ([#9552](https://redirect.github.com/protocolbuffers/protobuf/issues/9552)) - Add a generation option to control use of forward declarations in headers. ([#9568](https://redirect.github.com/protocolbuffers/protobuf/issues/9568)) ### [`v3.19.6`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.6): Protocol Buffers v3.19.6 ### Java - 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. - This release addresses a [Security Advisory for Java users](https://redirect.github.com/protocolbuffers/protobuf/security/advisories/GHSA-h4h5-3hr4-j3g2) ### [`v3.19.5`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.5): Protocol Buffers v3.19.5 ### C++ - Reduce memory consumption of MessageSet parsing - This release addresses a [Security Advisory for C++ and Python users](https://redirect.github.com/protocolbuffers/protobuf/security/advisories/GHSA-8gq9-2x98-w8hf) ### [`v3.19.4`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.4): Protocol Buffers v3.19.4 ### Python - Make libprotobuf symbols local on OSX to fix issue [#9395](https://redirect.github.com/protocolbuffers/protobuf/issues/9395) ([#9435](https://redirect.github.com/protocolbuffers/protobuf/issues/9435)) ### Ruby - Fixed a data loss bug that could occur when the number of `optional` fields in a message is an exact multiple of 32. ([#9440](https://redirect.github.com/protocolbuffers/protobuf/issues/9440)). ### PHP - Fixed a data loss bug that could occur when the number of `optional` fields in a message is an exact multiple of 32. ([#9440](https://redirect.github.com/protocolbuffers/protobuf/issues/9440)). ### [`v3.19.3`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.3): Protocol Buffers v3.19.3 ### Python - Fix missing Windows wheel for Python 3.10 on PyPI ### [`v3.19.2`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.2): Protocol Buffers v3.19.2 ### Java - Improve performance characteristics of UnknownFieldSet parsing ([#9371](https://redirect.github.com/protocolbuffers/protobuf/issues/9371)) - This release addresses a [Security Advisory for Java users](https://redirect.github.com/protocolbuffers/protobuf/security/advisories/GHSA-wrvw-hg22-4m67) ### [`v3.19.1`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.1): Protocol Buffers v3.19.1 ### Bazel - Ensure that release archives contain everything needed for Bazel ([#9131](https://redirect.github.com/protocolbuffers/protobuf/issues/9131)) - Align dependency handling with Bazel best practices ([#9165](https://redirect.github.com/protocolbuffers/protobuf/issues/9165)) ### JavaScript - Fix `ReferenceError: window is not defined` when getting the global object ([#9156](https://redirect.github.com/protocolbuffers/protobuf/issues/9156)) ### Ruby - Fix memory leak in MessageClass.encode ([#9150](https://redirect.github.com/protocolbuffers/protobuf/issues/9150)) ### [`v3.19.0`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.19.0): Protocol Buffers v3.19.0 ### C++ - Make proto2::Message::DiscardUnknownFields() non-virtual - Separate RepeatedPtrField into its own header file - For default floating point values of 0, consider all bits significant - cmake: support `MSVC_RUNTIME_LIBRARY` property ([#8851](https://redirect.github.com/protocolbuffers/protobuf/issues/8851)) - Fix shadowing warnings ([#8926](https://redirect.github.com/protocolbuffers/protobuf/issues/8926)) - Fix for issue [#8484](https://redirect.github.com/protocolbuffers/protobuf/issues/8484), constant initialization doesn't compile in msvc clang-cl environment ([#8993](https://redirect.github.com/protocolbuffers/protobuf/issues/8993)) - Fix build on AIX and SunOS ([#8373](https://redirect.github.com/protocolbuffers/protobuf/issues/8373)) ([#9065](https://redirect.github.com/protocolbuffers/protobuf/issues/9065)) - Add Android stlport and default toolchains to BUILD. ([#8290](https://redirect.github.com/protocolbuffers/protobuf/issues/8290)) ### Java - For default floating point values of 0, consider all bits significant - Annotate `//java/com/google/protobuf/util/...` with nullness annotations - Use ArrayList copy constructor ([#7853](https://redirect.github.com/protocolbuffers/protobuf/issues/7853)) ### Kotlin - Switch Kotlin proto DSLs to be implemented with inline value classes - Fixing inlining and deprecation for repeated string fields ([#9120](https://redirect.github.com/protocolbuffers/protobuf/issues/9120)) ### Python - Proto2 DecodeError now includes message name in error message - Make MessageToDict convert map keys to strings ([#8122](https://redirect.github.com/protocolbuffers/protobuf/issues/8122)) - Add python-requires in setup.py ([#8989](https://redirect.github.com/protocolbuffers/protobuf/issues/8989)) - Add python 3.10 ([#9034](https://redirect.github.com/protocolbuffers/protobuf/issues/9034)) ### JavaScript - Skip exports if not available by CommonJS ([#8856](https://redirect.github.com/protocolbuffers/protobuf/issues/8856)) - JS: Comply with CSP no-unsafe-eval. ([#8864](https://redirect.github.com/protocolbuffers/protobuf/issues/8864)) ### PHP - Added "object" as a reserved name for PHP ([#8962](https://redirect.github.com/protocolbuffers/protobuf/issues/8962)) ### Ruby - Override Map.clone to use Map's dup method ([#7938](https://redirect.github.com/protocolbuffers/protobuf/issues/7938)) - Ruby: build extensions for arm64-darwin ([#8232](https://redirect.github.com/protocolbuffers/protobuf/issues/8232)) - Add class method Timestamp.from_time to ruby well known types ([#8562](https://redirect.github.com/protocolbuffers/protobuf/issues/8562)) - Adopt pure ruby DSL implementation for JRuby ([#9047](https://redirect.github.com/protocolbuffers/protobuf/issues/9047)) - Add size to Map class ([#8068](https://redirect.github.com/protocolbuffers/protobuf/issues/8068)) - Fix for descriptor_pb.rb: google/protobuf should be required first ([#9121](https://redirect.github.com/protocolbuffers/protobuf/issues/9121)) ### C\# - Correctly set ExtensionRegistry when parsing with MessageParser, but using an already existing CodedInputStream ([#7246](https://redirect.github.com/protocolbuffers/protobuf/issues/7246)) - \[C#] Make FieldDescriptor propertyName public ([#7642](https://redirect.github.com/protocolbuffers/protobuf/issues/7642)) ### [`v3.18.3`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.18.3): Protocol Buffers v3.18.3 ### C++ - Reduce memory consumption of MessageSet parsing - This release addresses a [Security Advisory for C++ and Python users](https://redirect.github.com/protocolbuffers/protobuf/security/advisories/GHSA-8gq9-2x98-w8hf) ### [`v3.18.2`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.18.2): Protocol Buffers v3.18.2 ### Java - Improve performance characteristics of UnknownFieldSet parsing ([#9371](https://redirect.github.com/protocolbuffers/protobuf/issues/9371)) ### [`v3.18.1`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.18.1): Protocol Buffers v3.18.1 ### Python - Update setup.py to reflect that we now require at least Python 3.5 ([#8989](https://redirect.github.com/protocolbuffers/protobuf/issues/8989)) - Performance fix for DynamicMessage: force GetRaw() to be inlined ([#9023](https://redirect.github.com/protocolbuffers/protobuf/issues/9023)) ### Ruby - Update ruby_generator.cc to allow proto2 imports in proto3 ([#9003](https://redirect.github.com/protocolbuffers/protobuf/issues/9003)) ### [`v3.18.0`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v3.18.0): Protocol Buffers v3.18.0 ### C++ - Fix warnings raised by clang 11 ([#8664](https://redirect.github.com/protocolbuffers/protobuf/issues/8664)) - Make StringPiece constructible from std::string_view ([#8707](https://redirect.github.com/protocolbuffers/protobuf/issues/8707)) - Add missing capability attributes for LLVM 12 ([#8714](https://redirect.github.com/protocolbuffers/protobuf/issues/8714)) - Stop using std::iterator (deprecated in C++17). ([#8741](https://redirect.github.com/protocolbuffers/protobuf/issues/8741)) - Move field_access_listener from libprotobuf-lite to libprotobuf ([#8775](https://redirect.github.com/protocolbuffers/protobuf/issues/8775)) - Fix [#7047](https://redirect.github.com/protocolbuffers/protobuf/issues/7047) Safely handle setlocale ([#8735](https://redirect.github.com/protocolbuffers/protobuf/issues/8735)) - Remove deprecated version of SetTotalBytesLimit() ([#8794](https://redirect.github.com/protocolbuffers/protobuf/issues/8794)) - Support arena allocation of google::protobuf::AnyMetadata ([#8758](https://redirect.github.com/protocolbuffers/protobuf/issues/8758)) - Fix undefined symbol error around SharedCtor() ([#8827](https://redirect.github.com/protocolbuffers/protobuf/issues/8827)) - Fix default value of enum(int) in json_util with proto2 ([#8835](https://redirect.github.com/protocolbuffers/protobuf/issues/8835)) - Better Smaller ByteSizeLong - Introduce event filters for inject_field_listener_events - Reduce memory usage of DescriptorPool - For lazy fields copy serialized form when allowed. - Re-introduce the InlinedStringField class - v2 access listener - Reduce padding in the proto's ExtensionRegistry map. - GetExtension performance optimizations - Make tracker a static variable rather than call static functions - Support extensions in field access listener - Annotate MergeFrom for field access listener - Fix incomplete types for field access listener - Add map_entry/new_map_entry to SpecificField in MessageDifferencer. They record the map items which are different in MessageDifferencer's reporter. - Reduce binary size due to fieldless proto messages - TextFormat: ParseInfoTree supports getting field end location in addition to start. - Fix repeated enum extension size in field listener - Enable Any Text Expansion for Descriptors::DebugString() - Switch from int{8,16,32,64} to int{8,16,32,64}\_t ### Java - Fix errorprone conflict ([#8723](https://redirect.github.com/protocolbuffers/protobuf/issues/8723)) - Removing deprecated TimeUtil class. ([#8749](https://redirect.github.com/protocolbuffers/protobuf/issues/8749)) - Optimized FieldDescriptor.valueOf() to avoid array copying. - Removing deprecated TimeUtil class. - Add Durations.parseUnchecked(String) and Timestamps.parseUnchecked(String) - FieldMaskUtil: Add convenience method to mask the fields out of a given proto. ### JavaScript - Optimize binary parsing of repeated float64 - Fix for optimization when reading doubles from binary wire format - Replace toArray implementation with toJSON. ### PHP - Migrate PHP & Ruby to ABSL wyhash ([#8854](https://redirect.github.com/protocolbuffers/protobuf/issues/8854)) - Added support for PHP 8.1 (currently in RC1) to the C extension ([#8964](https://redirect.github.com/protocolbuffers/protobuf/issues/8964)) - Fixed PHP SEGV when constructing messages from a destructor. ([#8969](https://redirect.github.com/protocolbuffers/protobuf/issues/8969)) ### Ruby - Move DSL implementation from C to pure Ruby ([#8850](https://redirect.github.com/protocolbuffers/protobuf/issues/8850)) - Fixed a memory bug with RepeatedField#+. ([#8970](https://redirect.github.com/protocolbuffers/protobuf/issues/8970)) ### Python - Drops support for 2.7 and 3.5. ### Other - \[csharp] ByteString.CreateCodedInput should use ArraySegment offset and count ([#8740](https://redirect.github.com/protocolbuffers/protobuf/issues/8740)) - \[ObjC] Add support for using the proto package to prefix symbols. ([#8760](https://redirect.github.com/protocolbuffers/protobuf/issues/8760)) - field_presence.md: fix Go example ([#8788](https://redirect.github.com/protocolbuffers/protobuf/issues/8788))Configuration
📅 Schedule: Branch creation - "on the 1st through 7th day of the month" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.