Source release 16.4.0
This commit is contained in:
351
third_party/protobuf/CHANGES.txt
vendored
351
third_party/protobuf/CHANGES.txt
vendored
@@ -1,3 +1,350 @@
|
||||
2020-07-09 version 3.12.4 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
|
||||
|
||||
General
|
||||
* Increment the patch version to ensure that all packages match.
|
||||
|
||||
2020-06-01 version 3.12.3 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
|
||||
|
||||
Objective-C
|
||||
* Tweak the union used for Extensions to support old generated code. #7573
|
||||
|
||||
2020-05-26 version 3.12.2 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
|
||||
|
||||
C++
|
||||
* Simplified the template export macros to fix the build for mingw32. (#7539)
|
||||
|
||||
Objective-C
|
||||
* Fix for the :protobuf_objc target in the Bazel BUILD file. (#7538)
|
||||
|
||||
2020-05-20 version 3.12.1 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
|
||||
|
||||
Ruby
|
||||
* Re-add binary gems for Ruby 2.3 and 2.4. These are EOL upstream, however
|
||||
many people still use them and dropping support will require more
|
||||
coordination.
|
||||
|
||||
2020-05-12 version 3.12.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
|
||||
|
||||
Protocol Compiler
|
||||
* [experimental] Singular, non-message typed fields in proto3 now support
|
||||
presence tracking. This is enabled by adding the "optional" field label and
|
||||
passing the --experimental_allow_proto3_optional flag to protoc.
|
||||
* For usage info, see docs/field_presence.md.
|
||||
* During this experimental phase, code generators should update to support
|
||||
proto3 presence, see docs/implementing_proto3_presence.md for instructions.
|
||||
* Allow duplicate symbol names when multiple descriptor sets are passed on
|
||||
the command-line, to match the behavior when multiple .proto files are passed.
|
||||
* Deterministic `protoc --descriptor_set_out` (#7175)
|
||||
|
||||
C++
|
||||
* [experimental] Added proto3 presence support.
|
||||
* New descriptor APIs to support proto3 presence.
|
||||
* Enable Arenas by default on all .proto files.
|
||||
* Documented that users are not allowed to subclass Message or MessageLite.
|
||||
* Mark generated classes as final; inheriting from protos is strongly discouraged.
|
||||
* Add stack overflow protection for text format with unknown fields.
|
||||
* Add accessors for map key and value FieldDescriptors.
|
||||
* Add FieldMaskUtil::FromFieldNumbers().
|
||||
* MessageDifferencer: use ParsePartial() on Any fields so the diff does not
|
||||
fail when there are missing required fields.
|
||||
* ReflectionOps::Merge(): lookup messages in the right factory, if it can.
|
||||
* Added Descriptor::WellKnownTypes enum and Descriptor::well_known_type()
|
||||
accessor as an easier way of determining if a message is a Well-Known Type.
|
||||
* Optimized RepeatedField::Add() when it is used in a loop.
|
||||
* Made proto move/swap more efficient.
|
||||
* De-virtualize the GetArena() method in MessageLite.
|
||||
* Improves performance of json_stream_parser.cc by factor 1000 (#7230)
|
||||
* bug: #7076 undefine Windows OUT and OPTIONAL macros (#7087)
|
||||
* Fixed a bug in FieldDescriptor::DebugString() that would erroneously print
|
||||
an "optional" label for a field in a oneof.
|
||||
* Fix bug in parsing bool extensions that assumed they are always 1 byte.
|
||||
* Fix off-by-one error in FieldOptions::ByteSize() when extensions are present.
|
||||
* Clarified the comments to show an example of the difference between
|
||||
Descriptor::extension and DescriptorPool::FindAllExtensions.
|
||||
* Add a compiler option 'code_size' to force optimize_for=code_size on all
|
||||
protos where this is possible.
|
||||
|
||||
Java
|
||||
* [experimental] Added proto3 presence support.
|
||||
* Mark java enum _VALUE constants as @Deprecated if the enum field is deprecated
|
||||
* reduce <clinit> size for enums with allow_alias set to true.
|
||||
* Sort map fields alphabetically by the field's key when printing textproto.
|
||||
* Fixed a bug in map sorting that appeared in -rc1 and -rc2 (#7508).
|
||||
* TextFormat.merge() handles Any as top level type.
|
||||
* Throw a descriptive IllegalArgumentException when calling
|
||||
getValueDescriptor() on enum special value UNRECOGNIZED instead of
|
||||
ArrayIndexOutOfBoundsException.
|
||||
* Fixed an issue with JsonFormat.printer() where setting printingEnumsAsInts()
|
||||
would override the configuration passed into includingDefaultValueFields().
|
||||
* Implement overrides of indexOf() and contains() on primitive lists returned
|
||||
for repeated fields to avoid autoboxing the list contents.
|
||||
* Add overload to FieldMaskUtil.fromStringList that accepts a descriptor.
|
||||
* [bazel] Move Java runtime/toolchains into //java (#7190)
|
||||
|
||||
Python
|
||||
* [experimental] Added proto3 presence support.
|
||||
* [experimental] fast import protobuf module, only works with cpp generated code linked in.
|
||||
* Truncate 'float' fields to 4 bytes of precision in setters for pure-Python
|
||||
implementation (C++ extension was already doing this).
|
||||
* Fixed a memory leak in C++ bindings.
|
||||
* Added a deprecation warning when code tries to create Descriptor objects
|
||||
directly.
|
||||
* Fix unintended comparison between bytes and string in descriptor.py.
|
||||
* Avoid printing excess digits for float fields in TextFormat.
|
||||
* Remove Python 2.5 syntax compatibility from the proto compiler generated _pb2.py module code.
|
||||
* Drop 3.3, 3.4 and use single version docker images for all python tests (#7396)
|
||||
|
||||
JavaScript
|
||||
* Fix js message pivot selection (#6813)
|
||||
|
||||
PHP
|
||||
* Persistent Descriptor Pool (#6899)
|
||||
* Implement lazy loading of php class for proto messages (#6911)
|
||||
* Correct @return in Any.unpack docblock (#7089)
|
||||
* Ignore unknown enum value when ignore_unknown specified (#7455)
|
||||
|
||||
Ruby
|
||||
* [experimental] Implemented proto3 presence for Ruby. (#7406)
|
||||
* Stop building binary gems for ruby <2.5 (#7453)
|
||||
* Fix for wrappers with a zero value (#7195)
|
||||
* Fix for JSON serialization of 0/empty-valued wrapper types (#7198)
|
||||
* Call "Class#new" over rb_class_new_instance in decoding (#7352)
|
||||
* Build extensions for Ruby 2.7 (#7027)
|
||||
* assigning 'nil' to submessage should clear the field. (#7397)
|
||||
|
||||
C#
|
||||
* [experimental] Add support for proto3 presence fields in C# (#7382)
|
||||
* Mark GetOption API as obsolete and expose the "GetOptions()" method on descriptors instead (#7491)
|
||||
* Remove Has/Clear members for C# message fields in proto2 (#7429)
|
||||
* Enforce recursion depth checking for unknown fields (#7132)
|
||||
* Fix conformance test failures for Google.Protobuf (#6910)
|
||||
* Cleanup various bits of Google.Protobuf (#6674)
|
||||
* Fix latest ArgumentException for C# extensions (#6938)
|
||||
* Remove unnecessary branch from ReadTag (#7289)
|
||||
|
||||
Objective-C
|
||||
* [experimental] ObjC Proto3 optional support (#7421)
|
||||
* Block subclassing of generated classes (#7124)
|
||||
* Use references to Obj C classes instead of names in descriptors. (#7026)
|
||||
* Revisit how the WKTs are bundled with ObjC. (#7173)
|
||||
|
||||
Other
|
||||
* Add a proto_lang_toolchain for javalite (#6882)
|
||||
* [bazel] Update gtest and deprecate //external:{gtest,gtest_main} (#7237)
|
||||
* Add application note for explicit presence tracking. (#7390)
|
||||
* Howto doc for implementing proto3 presence in a code generator. (#7407)
|
||||
|
||||
|
||||
2020-02-14 version 3.11.4 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
|
||||
|
||||
C#
|
||||
* Fix latest ArgumentException for C# extensions (#7188)
|
||||
* Enforce recursion depth checking for unknown fields (#7210)
|
||||
|
||||
Ruby
|
||||
* Fix wrappers with a zero value (#7195)
|
||||
* Fix JSON serialization of 0/empty-valued wrapper types (#7198)
|
||||
|
||||
2020-01-31 version 3.11.3 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
|
||||
|
||||
C++
|
||||
* Add OUT and OPTIONAL to windows portability files (#7087)
|
||||
|
||||
PHP
|
||||
* Refactored ulong to zend_ulong for php7.4 compatibility (#7147)
|
||||
* Call register_class before getClass from desc to fix segfault (#7077)
|
||||
|
||||
|
||||
2019-12-10 version 3.11.2 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
|
||||
|
||||
PHP
|
||||
* Make c extension portable for php 7.4 (#6968)
|
||||
|
||||
|
||||
2019-12-02 version 3.11.1 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
|
||||
|
||||
PHP
|
||||
* Extern declare protobuf_globals (#6946)
|
||||
|
||||
|
||||
2019-11-19 version 3.11.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
|
||||
|
||||
C++
|
||||
* Make serialization method naming consistent
|
||||
* Make proto runtime + generated code free of deprecation warnings
|
||||
* Moved ShutdownProtobufLibrary() to message_lite.h. For backward compatibility a declaration is still available in stubs/common.h, but users should prefer message_lite.h
|
||||
* Removed non-namespace macro EXPECT_OK()
|
||||
* Removed mathlimits.h from stubs in favor of using std::numeric_limits from C++11
|
||||
* Fixed bug in parser when ending on a group tag
|
||||
* Add a helper function to UnknownFieldSet to deal with the changing return value of message::unknown_fields()
|
||||
* Fix incorrect use of string_view iterators
|
||||
* Support direct pickling of nested messages
|
||||
* Skip extension tag validation for MessageSet if unknown dependencies are allowed
|
||||
* Updated deprecation macros to annotate deprecated code (#6612)
|
||||
* Remove conversion warning in MapEntryFuncs::ByteSizeLong (#6766)
|
||||
* Revert "Make shared libraries be able to link to MSVC static runtime libraries, so that VC runtime is not required." (#6914)
|
||||
|
||||
Java
|
||||
* Remove the usage of MethodHandle, so that Android users prior to API version 26 can use protobuf-java
|
||||
* Publish ProGuard config for javalite
|
||||
* Fix for StrictMode disk read violation in ExtensionRegistryLite
|
||||
* Include part of the ByteString's content in its toString().
|
||||
* Include unknown fields when merging proto3 messages in Java lite builders
|
||||
|
||||
Python
|
||||
* Add float_precision option in json format printer
|
||||
* Optionally print bytes fields as messages in unknown fields, if possible
|
||||
* FieldPath: fix testing IsSet on root path ''
|
||||
* Experimental code gen (fast import protobuf module) which only work with cpp generated code linked in
|
||||
|
||||
JavaScript
|
||||
* Remove guard for Symbol iterator for jspb.Map
|
||||
|
||||
PHP
|
||||
* Avoid too much overhead in layout_init (#6716)
|
||||
* Lazily Create Singular Wrapper Message (#6833)
|
||||
* Implement lazy loading of php class for proto messages (#6911)
|
||||
|
||||
Ruby
|
||||
* Ruby lazy wrappers optimization (#6797)
|
||||
|
||||
C#
|
||||
* (RepeatedField): Capacity property to resize the internal array (#6530)
|
||||
* Experimental proto2 support is now officially available (#4642, #5183, #5350, #5936)
|
||||
* Getting started doc: https://github.com/protocolbuffers/protobuf/blob/master/docs/csharp/proto2.md
|
||||
* Add length checks to ExtensionCollection (#6759)
|
||||
* Optimize parsing of some primitive and wrapper types (#6843)
|
||||
* Use 3 parameter Encoding.GetString for default string values (#6828)
|
||||
* Change _Extensions property to normal body rather than expression (#6856)
|
||||
|
||||
Objective C
|
||||
* Fixed unaligned reads for 32bit arm with newer Xcode versions (#6678)
|
||||
|
||||
|
||||
2019-09-03 version 3.10.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
|
||||
|
||||
C++
|
||||
* Switch the proto parser to the faster MOMI parser.
|
||||
* Properly escape Struct keys in the proto3 JSON serializer.
|
||||
* Fix crash on uninitialized map entries.
|
||||
* Informed the compiler of has-bit invariant to produce better code
|
||||
* Unused imports of files defining descriptor extensions will now be reported
|
||||
* Add proto2::util::RemoveSubranges to remove multiple subranges in linear time.
|
||||
* Added BaseTextGenerator::GetCurrentIndentationSize()
|
||||
* Made implicit weak fields compatible with the Apple linker
|
||||
* Support 32 bit values for ProtoStreamObjectWriter to Struct.
|
||||
* Removed the internal-only header coded_stream_inl.h and the internal-only methods defined there.
|
||||
* Enforced no SWIG wrapping of descriptor_database.h (other headers already had this restriction).
|
||||
* Implementation of the equivalent of the MOMI parser for serialization. This removes one of the two serialization routines, by making the fast array serialization routine completely general. SerializeToCodedStream can now be implemented in terms of the much much faster array serialization. The array serialization regresses slightly, but when array serialization is not possible this wins big.
|
||||
* Do not convert unknown field name to snake case to accurately report error.
|
||||
* Fix a UBSAN warnings. (#6333)
|
||||
* Add podspec for C++ (#6404)
|
||||
* protoc: fix source code info location for missing label (#6436)
|
||||
* C++ Add move constructor for Reflection's SetString (#6477)
|
||||
|
||||
Java
|
||||
* Call loadDescriptor outside of synchronized block to remove one possible source of deadlock.
|
||||
* Have oneof enums implement a separate interface (other than EnumLite) for clarity.
|
||||
* Opensource Android Memory Accessors
|
||||
* Update TextFormat to make use of the new TypeRegistry.
|
||||
* Support getFieldBuilder and getRepeatedFieldBuilder in ExtendableBuilder
|
||||
* Update JsonFormat to make use of the new TypeRegistry.
|
||||
* Add proguard config generator for GmmBenchmarkSuiteLite.
|
||||
* Change ProtobufArrayList to use Object[] instead of ArrayList for 5-10% faster parsing
|
||||
* Implement ProtobufArrayList.add(E) for 20% (5%-40%) faster overall protolite2 parsing
|
||||
* Make a copy of JsonFormat.TypeRegistry at the protobuf top level package. This will eventually replace JsonFormat.TypeRegistry.
|
||||
* Fix javadoc warnings in generated files (#6231)
|
||||
* Java: Add Automatic-Module-Name entries to the Manifest (#6568)
|
||||
|
||||
Python
|
||||
* Add descriptor methods in descriptor_pool are deprecated.
|
||||
* Uses explicit imports to prevent multithread test failures in py3.
|
||||
* Added __delitem__ for Python extension dict
|
||||
* Update six version to 1.12.0 and fix legacy_create_init issue (#6391)
|
||||
|
||||
JavaScript
|
||||
* Remove deprecated boolean option to getResultBase64String().
|
||||
* Fix sint64 zig-zag encoding.
|
||||
* Simplify hash64 string conversion to avoid DIGIT array. Should reduce overhead if these functions aren't used, and be more efficient by avoiding linear array searches.
|
||||
* Change the parameter types of binaryReaderFn in ExtensionFieldBinaryInfo to (number, ?, ?).
|
||||
* Create dates.ts and time_of_days.ts to mirror Java versions. This is a near-identical conversion of c.g.type.util.{Dates,TimeOfDays} respectively.
|
||||
* Migrate moneys to TypeScript.
|
||||
|
||||
PHP
|
||||
* Fix incorrect leap day for Timestamp (#6696)
|
||||
* Initialize well known type values (#6713)
|
||||
|
||||
Ruby
|
||||
* Fix scope resolution for Google namespace (#5878)
|
||||
* Support hashes for struct initializers (#5716)
|
||||
* Optimized away the creation of empty string objects. (#6502)
|
||||
* Roll forward Ruby upb changes now that protobuf Ruby build is fixed (#5866)
|
||||
* Optimized layout_mark() for Ruby (#6521)
|
||||
* Optimization for layout_init() (#6547)
|
||||
* Fix for GC of Ruby map frames. (#6533)
|
||||
* Fixed leap year handling by reworking upb_mktime() -> upb_timegm(). (#6695)
|
||||
|
||||
Objective C
|
||||
* Remove OSReadLittle* due to alignment requirements (#6678)
|
||||
* Don't use unions and instead use memcpy for the type swaps. (#6672)
|
||||
|
||||
Other
|
||||
* Override CocoaPods module to lowercase (#6464)
|
||||
|
||||
|
||||
2019-06-28 version 3.9.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
|
||||
|
||||
C++
|
||||
* Optimize and simplify implementation of RepeatedPtrFieldBase
|
||||
* Don't create unnecessary unknown field sets.
|
||||
* Remove branch from accessors to repeated field element array.
|
||||
* Added delimited parse and serialize util.
|
||||
* Reduce size by not emitting constants for fieldnumbers
|
||||
* Fix a bug when comparing finite and infinite field values with explicit tolerances.
|
||||
* TextFormat::Parser should use a custom Finder to look up extensions by number if one is provided.
|
||||
* Add MessageLite::Utf8DebugString() to make MessageLite more compatible with Message.
|
||||
* Fail fast for better performance in DescriptorPool::FindExtensionByNumber() if descriptor has no defined extensions.
|
||||
* Adding the file name to help debug colliding extensions
|
||||
* Added FieldDescriptor::PrintableNameForExtension() and DescriptorPool::FindExtensionByPrintableName().
|
||||
The latter will replace Reflection::FindKnownExtensionByName().
|
||||
* Replace NULL with nullptr
|
||||
* Created a new Add method in repeated field that allows adding a range of elements all at once.
|
||||
* Enabled enum name-to-value mapping functions for C++ lite
|
||||
* Avoid dynamic initialization in descriptor.proto generated code
|
||||
* Move stream functions to MessageLite from Message.
|
||||
* Move all zero_copy_stream functionality to io_lite.
|
||||
* Do not create array of matched fields for simple repeated fields
|
||||
* Enabling silent mode by default to reduce make compilation noise. (#6237)
|
||||
|
||||
Java
|
||||
* Expose TextFormat.Printer and make it configurable. Deprecate the static methods.
|
||||
* Library for constructing google.protobuf.Struct and google.protobuf.Value
|
||||
* Make OneofDescriptor extend GenericDescriptor.
|
||||
* Expose streamingness of service methods from MethodDescriptor.
|
||||
* Fix a bug where TextFormat fails to parse Any filed with > 1 embedded message sub-fields.
|
||||
* Establish consistent JsonFormat behavior for nulls in oneofs, regardless of order.
|
||||
* Update GSON version to 3.8.5. (#6268)
|
||||
* Add `protobuf_java_lite` Bazel target. (#6177)
|
||||
|
||||
Python
|
||||
* Change implementation of Name() for enums that allow aliases in proto2 in Python
|
||||
to be in line with claims in C++ implementation (to return first value).
|
||||
* Explicitly say what field cannot be set when the new value fails a type check.
|
||||
* Duplicate register in descriptor pool will raise errors
|
||||
* Add __slots__ to all well_known_types classes, custom attributes are not allowed anymore.
|
||||
* text_format only present 8 valid digits for float fields by default
|
||||
|
||||
JavaScript
|
||||
* Add Oneof enum to the list of goog.provide
|
||||
|
||||
PHP
|
||||
* Make php message class final to avoid mocking. (#6277)
|
||||
* Rename get/setXXXValue to get/setXXXWrapper. (#6295)
|
||||
|
||||
Ruby
|
||||
* Remove to_hash methods. (#6166)
|
||||
|
||||
|
||||
2019-04-29 version 3.8.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
|
||||
|
||||
C++
|
||||
@@ -89,7 +436,7 @@
|
||||
* Introduce Proto C API.
|
||||
* FindFileContainingSymbol in descriptor pool is now able to find field and enum values.
|
||||
* reflection.MakeClass() and reflection.ParseMessage() are deprecated.
|
||||
* Added DescriptorPool.FindMethodByName() method in pure python (c extension alreay has it)
|
||||
* Added DescriptorPool.FindMethodByName() method in pure python (c extension already has it)
|
||||
* Flipped proto3 to preserve unknown fields by default.
|
||||
* Added support for memoryview in python3 proto message parsing.
|
||||
* Added MergeFrom for repeated scalar fields in c extension (pure python already has it)
|
||||
@@ -252,7 +599,7 @@
|
||||
PHP
|
||||
* Fixed memory leak in C-extension implementation.
|
||||
* Added discardUnknokwnFields API.
|
||||
* Removed duplicatd typedef in C-extension headers.
|
||||
* Removed duplicated typedef in C-extension headers.
|
||||
* Avoided calling private php methods (timelib_update_ts).
|
||||
* Fixed Any.php to use fully-qualified name for DescriptorPool.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user