All Versions
38
Latest Version
Avg Release Cycle
23 days
Latest Release
1048 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v4.0.0-rc2
July 21, 2020 -
v4.0.0-rc1 Changes
July 15, 2020Note: This release bumps the major version due to backward-incompatible changes in PHP.
PHP is the only language that has breaking changes in this release.
PHP
- The C extension is completely rewritten. The new C extension has significantly
๐ better parsing performance and fixes a handful of conformance issues. It will
๐ also make it easier to add support for more features like proto2 and proto3 presence. - ๐ The new C extension does not support PHP 5.x, which is the reason for the major
๐ version bump. PHP 5.x users can still use pure-PHP.
C++:
- โ Removed deprecated unsafe arena string accessors
- Enabled heterogeneous lookup for std::string keys in maps.
- โ Removed implicit conversion from StringPiece to std::string
- ๐ Fix use-after-destroy bug when the Map is allocated in the arena.
- ๐ Improved the randomness of map ordering
- โ Added stack overflow protection for text format with unknown fields
- ๐ Use std::hash for proto maps to help with portability.
- โ Added more Windows macros to proto whitelist.
- Arena constructors for map entry messages are now marked "explicit"
(for regular messages they were already explicit). - ๐ Fix subtle aliasing bug in RepeatedField::Add
- ๐ Fix mismatch between MapEntry ByteSize and Serialize with respect to unset
fields.
Python:
- ๐ JSON format conformance fixes:
- Reject lowercase t for Timestamp json format.
- Print full_name directly for extensions (no camelCase).
- Reject boolean values for integer fields.
- Reject NaN, Infinity, -Infinity that is not quoted.
- Base64 fixes for bytes fields: accept URL-safe base64 and missing padding.
- ๐ Bugfix for fields/files named "async" or "await".
- Improved the error message when AttributeError is returned from getattr
in EnumTypeWrapper.
Java:
- ๐ Fixed a bug where setting optional proto3 enums with setFooValue() would
not mark the value as present. - โ Add Subtract function to FieldMaskUtil.
C#:
- โฌ๏ธ Dropped support for netstandard1.0 (replaced by support for netstandard1.1).
๐ This was required to modernize the parsing stack to use theSpan<byte>
type internally. (#7351) - โ Add
ParseFrom(ReadOnlySequence<byte>)
method to enable GC friendly
๐ parsing with reduced allocations and buffer copies. (#7351) - โ Add support for serialization directly to a
IBufferWriter<byte>
or
to aSpan<byte>
to enable GC friendly serialization.
The new API is available as extension methods on theIMessage
type. (#7576) - Add
GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
define to make
generated code compatible with old C# compilers (pre-roslyn compilers
๐ from .NET framework and old versions of mono) that do not support
ref structs. Users that are still on a legacy stack that does
๐ not support C# 7.2 compiler might need to use the new define
๐ in their projects to be able to build the newly generated code. (#7490) - ๐ Due to the major overhaul of parsing and serialization internals (#7351 and #7576),
it is recommended to regenerate your generated code to achieve the best
๐ performance (the legacy generated code will still work, but might incur
๐ a slight performance penalty).
- The C extension is completely rewritten. The new C extension has significantly
-
v3.14.0 Changes
November 13, 2020Protocol Compiler
- The proto compiler no longer requires a .proto filename when it is not
generating code. - โ Added flag
--deterministic_output
toprotoc --encode=...
. - ๐ Fixed deadlock when using google.protobuf.Any embedded in aggregate options.
C++
- Arenas are now unconditionally enabled. cc_enable_arenas no longer has
any effect. - โ Removed inlined string support, which is incompatible with arenas.
- ๐ Fix a memory corruption bug in reflection when mixing optional and
non-optional fields. - ๐ Make SpaceUsed() calculation more thorough for map fields.
- โ Add stack overflow protection for text format with unknown field values.
- ๐ฆ FieldPath::FollowAll() now returns a bool to signal if an out-of-bounds
error was encountered. - ๐ Performance improvements for Map.
- Minor formatting fix when dumping a descriptor to .proto format with
DebugString. - UBSAN fix in RepeatedField (#2073).
- โ When running under ASAN, skip a test that makes huge allocations.
- ๐ Fixed a crash that could happen when creating more than 256 extensions in
a single message. - ๐ Fix a crash in BuildFile when passing in invalid descriptor proto.
- ๐ Parser security fix when operating with CodedInputStream.
- Warn against the use of AllowUnknownExtension.
- Migrated to C++11 for-range loops instead of index-based loops where
โ possible. This fixes a lot of warnings when compiling with -Wsign-compare. - ๐ Fix segment fault for proto3 optional (#7805)
- โ Adds a CMake option to build
libprotoc
separately (#7949)
Java
- ๐ Bugfix in mergeFrom() when a oneof has multiple message fields.
- ๐ Fix RopeByteString.RopeInputStream.read() returning -1 when told to read
0 bytes when not at EOF. - ๐ Redefine remove(Object) on primitive repeated field Lists to avoid
autoboxing. - ๐ Support "\u" escapes in textformat string literals.
- Trailing empty spaces are no longer ignored for FieldMask.
- ๐ Fix FieldMaskUtil.subtract to recursively remove mask.
- ๐ Mark enums with
@java.lang.Deprecated
if the proto enum has option
๐deprecated = true;
. - โ Adding forgotten duration.proto to the lite library (#7738)
Python
- ๐จ Print google.protobuf.NullValue as null instead of "NULL_VALUE" when it is
๐ used outside WKT Value/Struct. - ๐ Fix bug occurring when attempting to deep copy an enum type in python 3.
- โ Add a setuptools extension for generating Python protobufs (#7783)
- โ Remove uses of pkg_resources in non-namespace packages. (#7902)
- [bazel/py] Omit google/ init.py from the Protobuf runtime. (#7908)
- โ Removed the unnecessary setuptools package dependency for Python package (#7511)
- ๐ Fix PyUnknownFields memory leak (#7928)
PHP
- โ Added support for "==" to the PHP C extension (#7883)
- โ Added
==
operators for Map and Array. (#7900) - Native C well-known types (#7944)
- โก๏ธ Optimized away hex2bin() call in generated code (#8006)
- ๐ New version of upb, and a new hash function wyhash in third_party. (#8000)
- โ add missing hasOneof method to check presence of oneof fields (#8003)
Go
- โก๏ธ Update go_package options to reference google.golang.org/protobuf module.
C
- ๐ annotate ByteString.CopyFrom(ReadOnlySpan) as SecuritySafeCritical (#7701)
- ๐ Fix C# optional field reflection when there are regular fields too (#7705)
- ๐ Fix parsing negative Int32Value that crosses segment boundary (#8035)
Javascript
- ๐ JS: parse (un)packed fields conditionally (#7379)
- The proto compiler no longer requires a .proto filename when it is not
-
v3.14.0-rc3
November 12, 2020 -
v3.14.0-rc2
November 11, 2020 -
v3.14.0-rc1
November 06, 2020 -
v3.13.0
August 15, 2020 -
v3.13.0-rc3
August 13, 2020 -
v3.13.0.1
October 08, 2020 -
v3.12.4
July 29, 2020