Age | Commit message (Collapse) | Author | Files | Lines |
|
Protocol Buffers v21.12
Python
Fix broken enum ranges
Stop requiring extension fields to have a sythetic oneof
Python runtime 4.21.10 not works generated code can not load valid proto.
|
|
Protocol Buffers v21.11
Python
Add license file to pypi wheels
Fix round-trip bug
|
|
Protocol Buffers v21.10
Java
Use bit-field int values in buildPartial to skip work on unset groups of fields.
Mark nested builder as clean after clear is called
UPB
Fix UPB_LIKELY() for 32-bit Windows builds; update protobuf_deps to point to the current upb 21.x
Other
Add public modifiers to kotlin code
|
|
|
|
Use the binary wheel for now; upstream includes old sources in the
source distribution that do not support python 3.11 but the binary
wheels are built from sources that do.
https://github.com/protocolbuffers/protobuf/issues/11031#issuecomment-1321390551
Comments:
- Should we generally switch to the binary wheel for now?
We might want to use the new sources for other python versions as well.
- This increases pkglint output for this package a lot, but since is
hopefully a temporary measure, I didn't put more effort into
deduplicating the PLIST
|
|
Protocol Buffers v21.9
C++
Update zlib to 1.2.13 (#10819)
Python
Target MacOS 10.9
|
|
Protocol Buffers v21.8
Other
Fix for grpc.tools issue 17995 & protobuf issue 7474 (handle UTF-8 paths in argumentfile)
C++
21.x No longer define no_threadlocal on OpenBSD
|
|
Protocol Buffers v21.7
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.
Protocol Buffers v21.6
C++
Reduce memory consumption of MessageSet parsing
This release addresses a Security Advisory for C++ and Python users
|
|
2022-08-09 version 21.5 (C++/Java/Python/PHP/Objective-C/C#/Ruby)
PHP
* Added getContainingOneof and getRealContainingOneof to descriptor.
* fix PHP readonly legacy files for nested messages
Python
* Fixed comparison of maps in Python.
|
|
Protocol Buffers v21.4
C++
Reduce the required alignment of ArenaString from 8 to 4
|
|
Protocol Buffers v21.3
C++
Add header search paths to Protobuf-C++.podspec
Fixed Visual Studio constinit errors
Fix 9947: make the ABI compatible between debug and non-debug builds
UPB
Allow empty package names (fixes behavior regression in 4.21.0)
Fix a SEGV bug when comparing a non-materialized sub-message
Fix several bugs in descriptor mapping containers (eg. descriptor.services_by_name)
for x in mapping now yields keys rather than values, to match Python conventions and the behavior of the old library.
Lookup operations now correctly reject unhashable types as map keys.
We implement repr() to use the same format as dict.
Fix maps to use the ScalarMapContainer class when appropriate
Fix bug when parsing an unknown value in a proto2 enum extension
PHP
Add "readonly" as a keyword for PHP and add previous classnames to descriptor pool
Python
Make //:protobuf_python and //:well_known_types_py_pb2 public
|
|
2022-05-27 version 21.1 (C++/Java/Python/PHP/Objective-C/C#/Ruby)
C++
* cmake: Revert "Fix cmake install targets (#9822)" (#10060)
* Remove Abseil dependency from CMake build (#10056)
Python
* Update python wheel metadata with more information incl. required python version (#10058)
* Fix segmentation fault when instantiating field via repeated field assignment (#10066)
2022-05-25 version 21.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby)
C++
* cmake: Call get_filename_component() with DIRECTORY mode instead of PATH mode (#9614)
* Escape GetObject macro inside protoc-generated code (#9739)
* Update CMake configuration to add a dependency on Abseil (#9793)
* Fix cmake install targets (#9822)
* Use __constinit only in GCC 12.2 and up (#9936)
Python
* Increment python major version to 4 in version.json for python upb (#9926)
* The C extension module for Python has been rewritten to use the upb library.
This is expected to deliver significant performance benefits, especially when
parsing large payloads. There are some minor breaking changes, but these
should not impact most users. For more information see:
https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
* Fixed win32 build and fixed str(message) on all Windows platforms. (#9976)
* The binary wheel for macOS now supports Apple silicon.
2022-05-19 version 21.0-rc2(C++/Java/Python/PHP/Objective-C/C#/Ruby)
Python
* Fix windows builds
* Throw more helpful error if generated code is out of date
* Fixed two reference leaks
2022-05-10 version 21.0-rc1 (C++/Java/Python/PHP/Objective-C/C#/Ruby)
C++
* Rename main cmake/CMakeLists.txt to CMakeLists.txt (#9603)
* avoid allocating memory if all extension are cleared (#9345)
* cmake: Call get_filename_component() with DIRECTORY mode instead of PATH mode (#9614)
* Escape GetObject macro inside protoc-generated code (#9739)
* Update CMake configuration to add a dependency on Abseil (#9793)
* Use __constinit only in GCC 12.2 and up (#9936)
* Refactor generated message class layout
* Optimize tokenizer ParseInteger by removing division
* Reserve exactly the right amount of capacity in ExtensionSet::MergeFrom
* Parse FLT_MAX correctly when represented in JSON
Python
* Increment python major version to 4 in version.json for python upb (#9926)
* The C extension module for Python has been rewritten to use the upb library.
This is expected to deliver significant performance benefits, especially when
parsing large payloads. There are some minor breaking changes, but these
should not impact most users. For more information see:
https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
* Due to the breaking changes for Python, the major version number for Python
has been incremented.
* The binary wheel for macOS now supports Apple silicon.
Compiler
* Protoc outputs the list of suggested field numbers when invalid field
numbers are specified in the .proto file.
* Require package names to be less than 512 bytes in length
|
|
3.20.1:
Match protobuf 3.20.1
|
|
Protocol Buffers v3.20.0
C++
Add option to use external GTest in CMake
cmake: Set correct sonames for libprotobuf-lite.so and libprotoc.so
Java
Revert "Standardize on Array copyOf"
Resolve more java field accessor name conflicts
Python
Pin multibuild scripts to get manylinux1 wheels back
Dropped support for Python < 3.7
PHP
fix: [PHP] add missing reserved classnames
Ruby
Dropped Ruby 2.3 and 2.4 support for CI and releases.
[Ruby] Message.decode/encode: Add max_recursion_depth option
Ruby: rename max_recursion_depth to recursion_limit
Fix conversion of singleton classes in Ruby
Suppress warning for intentional circular require
[Ruby] allow encode json options to be an object that responds to to_hash
Other
[C#] Fix trim warnings
Add protoc-gen-go-svc to options.md
Fixes NullReferenceException when accessing FieldDescriptor.IsPacked
Add ToProto() method to all C# descriptor classes
Add cmake option protobuf_INSTALL to not install files
[CMake] Allow custom plugin options e.g. to generate mocks
Add an option to preserve proto names in JsonFormatter
Add test scope to kotlin-test for protobuf-kotlin-lite
Add prefix_to_proto_package_mappings_path ObjC option.
[ObjC] Rename proto_package_to_prefix_mappings_path to package_to_prefix_mappings_path.
cmake: Use linker version scripts
Add a generation option to control use of forward declarations in headers.
[C#] fix parse failure for extensions with large field numbers
|
|
Protocol Buffers v3.19.4
Python
Make libprotobuf symbols local on OSX to fix issue
Protocol Buffers v3.19.3
Python
Fix missing Windows wheel for Python 3.10 on PyPI
|
|
They now have a tool dependency on py-setuptools instead of a DEPENDS
|
|
2021-10-28 version 3.19.1 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
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)
|
|
Fix for: Shared object "libprotobuf.so.29" not found
|
|
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)
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)
|
|
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
Could not be committed due to merge conflict:
devel/py-traitlets/distinfo
The following distfiles were unfetchable (note: some may be only fetched
conditionally):
./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
|
|
Fix for: Shared object "libprotobuf.so.28" not found
|
|
|
|
Protocol Buffers v3.18.1
Python
Update setup.py to reflect that we now require at least Python 3.5
Performance fix for DynamicMessage: force GetRaw() to be inlined
|
|
Protocol Buffers v3.18.0
C++
Fix warnings raised by clang 11
Make StringPiece constructible from std::string_view
Add missing capability attributes for LLVM 12
Stop using std::iterator (deprecated in C++17).
Move field_access_listener from libprotobuf-lite to libprotobuf
Fix 7047 Safely handle setlocale
Remove deprecated version of SetTotalBytesLimit()
Support arena allocation of google::protobuf::AnyMetadata
Fix undefined symbol error around SharedCtor()
Fix default value of enum(int) in json_util with proto2
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
Python
Drops support for 2.7 and 3.5.
|
|
Protocol Buffers v3.17.3
C++
Introduce FieldAccessListener.
Stop emitting boilerplate {Copy/Merge}From in each ProtoBuf class
Fixed some uninitialized variable warnings in generated_message_reflection.cc.
|
|
3.17.0:
Add MethodDescriptor.CopyToProto()
Remove unused python_protobuf.{cc,h}
Start publishing python aarch64 manylinux wheels normally
Fix constness issue detected by MSVC standard conforming mode
Make JSON parsing match C++ and Java when multiple fields from the same
oneof are present and all but one is null.
|
|
Protocol Buffers v3.16.0
C++
Fix compiler warnings issue found in conformance_test_runner
Fix MinGW-w64 build issues.
[Protoc] C++ Resolved an issue where NO_DESTROY and CONSTINIT are in incorrect order
Fix PROTOBUF_CONSTINIT macro redefinition
Delete StringPiecePod
Fix gcc error: comparison of unsigned expression in '>= 0' is always …
Fix cmake install on iOS
Create a CMake option to control whether or not RTTI is enabled
Fix endian.h location on FreeBSD
Refactor util::Status
Make util::Status more similar to absl::Status
Fix -Wsuggest-destructor-override for generated C++ proto classes.
Refactor StatusOr and StringPiece
Refactor uint128
The ::pb namespace is no longer exposed due to conflicts.
Allow MessageDifferencer::TreatAsSet() (and friends) to override previous
calls instead of crashing.
Reduce the size of generated proto headers for protos with string or
bytes fields.
Move arena() operation on uncommon path to out-of-line routine
For iterator-pair function parameter types, take both iterators by value.
Code-space savings and perhaps some modest performance improvements in
RepeatedPtrField.
Eliminate nullptr check from every tag parse.
Remove unused _$name$cached_byte_size fields.
Serialize extension ranges together when not broken by a proto field in the
middle.
Do out-of-line allocation and deallocation of string object in ArenaString.
Streamline ParseContext::ParseMessage to avoid code bloat and improve
performance.
New member functions RepeatedField::Assign, RepeatedPtrField::{Add, Assign}.
Fix undefined behavior warning due to innocuous uninitialization of value
on an error path.
Avoid expensive inlined code space for encoding message length for messages
= 128 bytes and instead do a procedure call to a shared out-of-line routine.
util::DefaultFieldComparator will be final in a future version of protobuf.
Subclasses should inherit from SimpleFieldComparator instead.
Python
Fix some constness / char literal issues being found by MSVC standard conforming mode
Switch on "new" buffer API
Enable crosscompiling aarch64 python wheels under dockcross manylinux docker image
Fixed a bug in text format where a trailing colon was printed for repeated field.
When TextFormat encounters a duplicate message map key, replace the current
one instead of merging.
|
|
Ruby
Fixed memory leak of Ruby arena objects (#8461)
|
|
Protocol Buffers v3.15.7
C++
Remove the ::pb namespace (alias)
Ruby
Fix unbounded memory growth for Ruby <2.7
Fixed message equality in cases where the message type is different
Protocol Buffers v3.15.6
Ruby
Fixed bug in string comparison logic
|
|
Protocol Buffers v3.15.5
C++
Do not disable RTTI by default in the CMake build
|
|
Protocol Buffers v3.15.4
C++
Create a CMake option to control whether or not RTTI is enabled
|
|
Protocol Buffers v3.15.2
C++
Fix PROTOBUF_CONSTINIT macro redefinition
|
|
Protocol Buffers v3.15.1
C++
Small fixes for MinGW and for C++20 with GCC
|
|
Protocol Buffers v3.15.0
Protocol Compiler
Optional fields for proto3 are enabled by default, and no longer require
the --experimental_allow_proto3_optional flag.
C++
MessageDifferencer: fixed bug when using custom ignore with multiple
unknown fields
Use init_seg in MSVC to push initialization to an earlier phase.
Runtime no longer triggers -Wsign-compare warnings.
Fixed -Wtautological-constant-out-of-range-compare warning.
DynamicCastToGenerated works for nullptr input for even if RTTI is disabled
Arena is refactored and optimized.
Clarified/specified that the exact value of Arena::SpaceAllocated() is an
implementation detail users must not rely on. It should not be used in
unit tests.
Change the signature of Any::PackFrom() to return false on error.
Add fast reflection getter API for strings.
Constant initialize the global message instances
Avoid potential for missed wakeup in UnknownFieldSet
Now Proto3 Oneof fields have "has" methods for checking their presence in
C++.
Bugfix for NVCC
Return early in _InternalSerialize for empty maps.
Adding functionality for outputting map key values in proto path logging
output (does not affect comparison logic) and stop printing 'value' in the
path. The modified print functionality is in the
MessageDifferencer::StreamReporter.
Ensure that null char symbol, package and file names do not result in a
crash.
Constant initialize the global message instances
Pretty print 'max' instead of numeric values in reserved ranges.
Removed remaining instances of std::is_pod, which is deprecated in C++20.
Changes to reduce code size for unknown field handling by making uncommon
cases out of line.
Fix std::is_pod deprecated in C++20
Fix some -Wunused-parameter warnings
Fix detecting file as directory on zOS issue 8051
Don't include sys/param.h for _BYTE_ORDER
remove CMAKE_THREAD_LIBS_INIT from pkgconfig CFLAGS
Fix TextFormatMapTest.DynamicMessage issue 5136
Fix for compiler warning issue 8145
fix: support deprecated enums for GCC < 6
Fix some warning when compiling with Visual Studio 2019 on x64 target
Python
Provided an override for the reverse() method that will reverse the internal
collection directly instead of using the other methods of the BaseContainer.
MessageFactory.CreateProtoype can be overridden to customize class creation.
Fix PyUnknownFields memory leak
Add macOS big sur compatibility
|
|
Protocol Buffers v3.14.0
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
Remove uses of pkg_resources in non-namespace packages.
[bazel/py] Omit google/init.py from the Protobuf runtime.
Removed the unnecessary setuptools package dependency for Python package
Fix PyUnknownFields memory leak
|
|
|
|
Protocol Buffers v3.13.0
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.
|
|
|
|
3.12.4:
Unknown changes
3.12.3:
Objective-C
* Tweak the union used for Extensions to support old generated code.
|
|
Protocol Buffers v3.12.2
C++
Simplified the template export macros to fix the build for mingw32.
|
|
Protocol Buffers v3.12.0
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
|
|
Protocol Buffers v3.11.3
C++
Add OUT and OPTIONAL to windows portability files
PHP
Refactored ulong to zend_ulong for php7.4 compatibility
Call register_class before getClass from desc to fix segfault
|
|
Protocol Buffers v3.11.2
PHP
Make c extension portable for php 7.4
|
|
3.11.1:
PHP
Extern declare protobuf_globals
|
|
Protocol Buffers v3.11.0
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
Remove conversion warning in MapEntryFuncs::ByteSizeLong
Revert "Make shared libraries be able to link to MSVC static runtime libraries, so that VC runtime is not required."
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
|
|
3.10.0:
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
|
|
Protocol Buffers v3.9.1
Python
Drop building wheel for python 3.4
|
|
Protocol Buffers v3.9.0
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
|
|
Protocol Buffers v3.8.0
Python
Changes 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).
Added double_format option in text format printer.
Added iter and contains to extension dict
Added allow_unknown_field option in python text format parser
Fixed Timestamp.ToDatetime() loses precision issue
Support unknown field in text format printer.
Float field will be convert to inf if bigger than struct.unpack('f', b'\xff\xff\x7f\x7f')[0] which is about 3.4028234664e+38,
convert to -inf if smaller than -3.4028234664e+38
Allowed casting str->bytes in Message.setstate
|
|
Protocol Buffers v3.7.1:
C++
Avoid linking against libatomic in prebuilt protoc binaries
Avoid marking generated C++ messages as final, though we will do this in a future release
Miscellaneous build fixes
|