kragniz / python-etcd3

Python client for the etcd API v3
Apache License 2.0
429 stars 181 forks source link

Update protobuf to 5.28.3 #2670

Open pyup-bot opened 1 week ago

pyup-bot commented 1 week ago

This PR updates protobuf from 3.17.0 to 5.28.3.

Changelog ### 3.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://github.com/protocolbuffers/protobuf/security/advisories/GHSA-h4h5-3hr4-j3g2) ``` ### 3.20.2 ``` C++ * Reduce memory consumption of MessageSet parsing * This release addresses a [Security Advisory for C++ and Python users](https://github.com/protocolbuffers/protobuf/security/advisories/GHSA-8gq9-2x98-w8hf) ``` ### 3.20.1 ``` PHP * Fix building packaged PHP extension (9727) * Fixed composer.json to only advertise compatibility with PHP 7.0+. (9819) Ruby * Disable the aarch64 build on macOS until it can be fixed. (9816) Other * Fix versioning issues in 3.20.0 ``` ### 3.20.1rc1 ``` PHP * Fix building packaged PHP extension (9727) Other * Fix versioning issues in 3.20.0 ``` ### 3.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) * Added Ruby 3.1 support for CI and releases (9566). * Message.decode/encode: Add recursion_limit option (9218/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). * Fix conversion of singleton classes in Ruby (9342) * Suppress warning for intentional circular require (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) * Resolve more java field accessor name conflicts (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 to some protobuf types * Report original exceptions when parsing JSON * Add more info to 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) * Add orNull extensions for optional message fields. * Add orNull extensions to all proto3 message fields. Python * Dropped support for Python < 3.7 (9480) * Protoc is now able to generate python stubs (.pyi) with --pyi_out * Pin multibuild scripts to get manylinux1 wheels back (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) * Add option to use external GTest in CMake (8736) * CMake: Set correct sonames for libprotobuf-lite.so and libprotoc.so (8635) (9529) * Add cmake option `protobuf_INSTALL` to not install files (7123) * CMake: Allow custom plugin options e.g. to generate mocks (9105) * CMake: Use linker version scripts (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 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) * PHP 8.1 compatibility (9370) C * Fix trim warnings (9182) * Fixes NullReferenceException when accessing FieldDescriptor.IsPacked (9430) * Add ToProto() method to all descriptor classes (9426) * Add an option to preserve proto names in JsonFormatter (6307) Objective-C * Add prefix_to_proto_package_mappings_path option. (9498) * Rename `proto_package_to_prefix_mappings_path` to `package_to_prefix_mappings_path`. (9552) * Add a generation option to control use of forward declarations in headers. (9568) ``` ### 3.20.0rc2 ``` Ruby * to_json will now use fewer decimal places to encode float/double in some cases, if the extra digits are not necessary for round-tripping PHP * to_json will now use fewer decimal places to encode float/double in some cases, if the extra digits are not necessary for round-tripping ``` ### 3.20.0rc1 ``` Ruby * Dropped Ruby 2.3 and 2.4 support for CI and releases. (9311) * Message.decode/encode: Add max_recursion_depth option (9218) * Rename max_recursion_depth to recursion_limit (9486) * Fix conversion of singleton classes in Ruby (9342) * Suppress warning for intentional circular require (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) * Resolve more java field accessor name conflicts (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 to some protobuf types * Report original exceptions when parsing JSON * Add more info to 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) * Add orNull extensions for optional message fields. * Add orNull extensions to all proto3 message fields. Python * Dropped support for Python < 3.7 (9480) * Protoc is now able to generate python stubs (.pyi) with --pyi_out * Pin multibuild scripts to get manylinux1 wheels back (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. * 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) * Add option to use external GTest in CMake (8736) * CMake: Set correct sonames for libprotobuf-lite.so and libprotoc.so (8635) (9529) * Add cmake option `protobuf_INSTALL` to not install files (7123) * CMake: Allow custom plugin options e.g. to generate mocks (9105) * CMake: Use linker version scripts (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 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) C * Fix trim warnings (9182) * Fixes NullReferenceException when accessing FieldDescriptor.IsPacked (9430) * Add ToProto() method to all descriptor classes (9426) * Add an option to preserve proto names in JsonFormatter (6307) Objective-C * Add prefix_to_proto_package_mappings_path option. (9498) * Rename `proto_package_to_prefix_mappings_path` to `package_to_prefix_mappings_path`. (9552) * Add a generation option to control use of forward declarations in headers. (9568) ``` ### 3.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://github.com/protocolbuffers/protobuf/security/advisories/GHSA-h4h5-3hr4-j3g2) ``` ### 3.19.5 ``` C++ - Reduce memory consumption of MessageSet parsing - This release addresses a [Security Advisory for C++ and Python users](https://github.com/protocolbuffers/protobuf/security/advisories/GHSA-8gq9-2x98-w8hf) ``` ### 3.19.4 ``` Python * Make libprotobuf symbols local on OSX to fix issue 9395 (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). 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). ``` ### 3.19.3 ``` Python * Fix missing Windows wheel for Python 3.10 on PyPI ``` ### 3.19.2 ``` Java * Improve performance characteristics of UnknownFieldSet parsing (9371) * This release addresses a [Security Advisory for Java users](https://github.com/protocolbuffers/protobuf/security/advisories/GHSA-wrvw-hg22-4m67) ``` ### 3.19.1 ``` Bazel * Ensure that release archives contain everything needed for Bazel (9131) * Align dependency handling with Bazel best practices (9165) JavaScript * Fix `ReferenceError: window is not defined` when getting the global object (9156) Ruby * Fix memory leak in MessageClass.encode (9150) ``` ### 3.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) * Fix shadowing warnings (8926) * Fix for issue 8484, constant initialization doesn't compile in msvc clang-cl environment (8993) * Fix build on AIX and SunOS (8373) (9065) * Add Android stlport and default toolchains to BUILD. (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) Kotlin * Switch Kotlin proto DSLs to be implemented with inline value classes * Fixing inlining and deprecation for repeated string fields (9120) Python * Proto2 DecodeError now includes message name in error message * Make MessageToDict convert map keys to strings (8122) * Add python-requires in setup.py (8989) * Add python 3.10 (9034) JavaScript * Skip exports if not available by CommonJS (8856) * JS: Comply with CSP no-unsafe-eval. (8864) PHP * Added "object" as a reserved name for PHP (8962) Ruby * Override Map.clone to use Map's dup method (7938) * Ruby: build extensions for arm64-darwin (8232) * Add class method Timestamp.from_time to ruby well known types (8562) * Adopt pure ruby DSL implementation for JRuby (9047) * Add size to Map class (8068) * Fix for descriptor_pb.rb: google/protobuf should be required first (9121) C * Correctly set ExtensionRegistry when parsing with MessageParser, but using an already existing CodedInputStream (7246) * [C] Make FieldDescriptor propertyName public (7642) ``` ### 3.19.0rc2 ``` Java * Update changelog to reflect that we are not yet dropping Java 7 support after all ``` ### 3.19.0rc1 ``` 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) * Fix shadowing warnings (8926) * Fix for issue 8484, constant initialization doesn't compile in msvc clang-cl environment (8993) * Fix build on AIX and SunOS (8373) (9065) * Add Android stlport and default toolchains to BUILD. (8290) Java * This release drops support for Java 7. Use 3.18.x if you still need Java 7 support. * 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) Kotlin * Switch Kotlin proto DSLs to be implemented with inline value classes Python * Proto2 DecodeError now includes message name in error message * Make MessageToDict convert map keys to strings (8122) * Add python-requires in setup.py (8989) * Add python 3.10 (9034) JavaScript * Skip exports if not available by CommonJS (8856) * JS: Comply with CSP no-unsafe-eval. (8864) PHP * Added "object" as a reserved name for PHP (8962) Ruby * Override Map.clone to use Map's dup method (7938) * Ruby: build extensions for arm64-darwin (8232) * Add class method Timestamp.from_time to ruby well known types (8562) * Adopt pure ruby DSL implementation for JRuby (9047) * Add size to Map class (8068) C * Correctly set ExtensionRegistry when parsing with MessageParser, but using an already existing CodedInputStream (7246) * [C] Make FieldDescriptor propertyName public (7642) ``` ### 3.18.3 ``` C++ * Reduce memory consumption of MessageSet parsing * This release addresses a [Security Advisory for C++ and Python users](https://github.com/protocolbuffers/protobuf/security/advisories/GHSA-8gq9-2x98-w8hf) ``` ### 3.18.2 ``` Java * Improve performance characteristics of UnknownFieldSet parsing (9371) ``` ### 3.18.1 ``` Python * Update setup.py to reflect that we now require at least Python 3.5 (8989) * Performance fix for DynamicMessage: force GetRaw() to be inlined (9023) Ruby * Update ruby_generator.cc to allow proto2 imports in proto3 (9003) ``` ### 3.18.0 ``` C++ * Fix warnings raised by clang 11 (8664) * Make StringPiece constructible from std::string_view (8707) * Add missing capability attributes for LLVM 12 (8714) * Stop using std::iterator (deprecated in C++17). (8741) * Move field_access_listener from libprotobuf-lite to libprotobuf (8775) * Fix 7047 Safely handle setlocale (8735) * Remove deprecated version of SetTotalBytesLimit() (8794) * Support arena allocation of google::protobuf::AnyMetadata (8758) * Fix undefined symbol error around SharedCtor() (8827) * Fix default value of enum(int) in json_util with proto2 (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) * Removing deprecated TimeUtil class. (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) * Added support for PHP 8.1 (currently in RC1) to the C extension (8964) * Fixed PHP SEGV when constructing messages from a destructor. (8969) Ruby * Move DSL implementation from C to pure Ruby (8850) * Fixed a memory bug with RepeatedField+. (8970) Python * Drops support for 2.7 and 3.5. Other * [csharp] ByteString.CreateCodedInput should use ArraySegment offset and count (8740) * [ObjC] Add support for using the proto package to prefix symbols. (8760) * field_presence.md: fix Go example (8788) ``` ### 3.18.0rc2 ``` C++ * Fix warnings raised by clang 11 (8664) * Make StringPiece constructible from std::string_view (8707) * Add missing capability attributes for LLVM 12 (8714) * Stop using std::iterator (deprecated in C++17). (8741) * Move field_access_listener from libprotobuf-lite to libprotobuf (8775) * Fix 7047 Safely handle setlocale (8735) * Remove deprecated version of SetTotalBytesLimit() (8794) * Support arena allocation of google::protobuf::AnyMetadata (8758) * Fix undefined symbol error around SharedCtor() (8827) * Fix default value of enum(int) in json_util with proto2 (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) * Removing deprecated TimeUtil class. (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) Ruby * Move DSL implementation from C to pure Ruby (8850) Python * Drops support for 2.7 and 3.5. Other * [csharp] ByteString.CreateCodedInput should use ArraySegment offset and count (8740) * [ObjC] Add support for using the proto package to prefix symbols. (8760) * field_presence.md: fix Go example (8788) ``` ### 3.18.0rc1 ``` C++ * Fix warnings raised by clang 11 (8664) * Make StringPiece constructible from std::string_view (8707) * Add missing capability attributes for LLVM 12 (8714) * Stop using std::iterator (deprecated in C++17). (8741) * Move field_access_listener from libprotobuf-lite to libprotobuf (8775) * Fix 7047 Safely handle setlocale (8735) * Remove deprecated version of SetTotalBytesLimit() (8794) * Support arena allocation of google::protobuf::AnyMetadata (8758) * Fix undefined symbol error around SharedCtor() (8827) * Fix default value of enum(int) in json_util with proto2 (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) * Removing deprecated TimeUtil class. (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) Ruby * Move DSL implementation from C to pure Ruby (8850) Other * [csharp] ByteString.CreateCodedInput should use ArraySegment offset and count (8740) * [ObjC] Add support for using the proto package to prefix symbols. (8760) * field_presence.md: fix Go example (8788) ``` ### 3.17.3 ``` **Python** * Note: This is the last release to support Python 2.7. Future releases will require Python >= 3.5. **C++** * Introduce FieldAccessListener. * Stop emitting boilerplate {Copy/Merge}From in each ProtoBuf class * Fixed some uninitialized variable warnings in generated_message_reflection.cc. **Kotlin** * Fix duplicate proto files error (8699) **Java** * Fixed parser to check that we are at a proper limit when a sub-message has finished parsing. **General** * Support M1 (8557) ``` ### 3.17.2 ``` ****Kotlin**** * Fix duplicate class error (8653) ****PHP**** * Fixed SEGV in sub-message getters for well-known types when message is unset (8670) ``` ### 3.17.1 ``` PHP * Fixed PHP memory leaks and arginfo errors. (8614) * Fixed JSON parser to allow multiple values from the same oneof as long as all but one are null. Ruby * Fixed memory bug: properly root repeated/map field when assigning. (8639) * Fixed JSON parser to allow multiple values from the same oneof as long as all but one are null. ```
Links - PyPI: https://pypi.org/project/protobuf - Changelog: https://data.safetycli.com/changelogs/protobuf/ - Homepage: https://developers.google.com/protocol-buffers/