Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scheduled monthly dependency update for February #148

Closed
wants to merge 72 commits into from

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Feb 1, 2025

Update base58 from 2.0.0 to 2.1.1.

Changelog

2.1.1

- [67](https://github.com/keis/base58/pull/67) use github actions (keis)
- [66](https://github.com/keis/base58/pull/66) Escape illegal special characters in error message (hukkin)

2.1.0

- [64](https://github.com/keis/base58/pull/64) Parametrise a few tests over alphabet (keis)
- [63](https://github.com/keis/base58/pull/63) Made it handle any base with passing alphabet. (#63) (tanupoo)
- [62](https://github.com/keis/base58/pull/62) Setup cfg (keis)
- [61](https://github.com/keis/base58/pull/61) Add support to ppc64le (gururajrkatti)
- [60](https://github.com/keis/base58/pull/60) Update README.md (alloynetworks)
- [59](https://github.com/keis/base58/pull/59) New alias for XRP alphabet (alloynetworks)
- [58](https://github.com/keis/base58/pull/58) Improve invalid character message (keis)
- [57](https://github.com/keis/base58/pull/57) Autofix for similar letters (keis)
- [56](https://github.com/keis/base58/pull/56) Add performance benchmarks using pytest-benchmark (keis)
- [53](https://github.com/keis/base58/pull/53) Performance optimizations (kolomenkin)

2.0.1

- [55](https://github.com/keis/base58/pull/55) Include license file in source distribution (synapticarbors)
- [50](https://github.com/keis/base58/pull/50) Typecheck tests now that hamcrest has typing (keis)
- [49](https://github.com/keis/base58/pull/49) Replace custom exception assert with hamcrest utils (keis)
Links

Update cffi from 1.14.0 to 1.17.1.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update cryptography from 2.8 to 44.0.0.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update ecdsa from 0.15 to 0.19.0.

Changelog

0.19.0

New API:
* `to_ssh` in `VerifyingKey` and `SigningKey`, supports Ed25519 keys only
(Pablo Mazzini)

New features:
* Support for twisted Brainpool curves

Doc fix:
* Fix curve equation in glossary
* Documentation for signature encoding and signature decoding functions

Maintenance:
* Dropped official support for 3.3 and 3.4 (because of problems running them
in CI, not because it's actually incompatible; support for 2.6 and 2.7 is
unaffected)
* Fixes aroung hypothesis parameters
* Officially support Python 3.11 and 3.12
* Small updates to test suite to make it work with 3.11 and 3.12 and new
releases of test dependencies
* Dropped the internal `_rwlock` module as it's unused
* Added mutation testing to CI, lots of speed-ups to the test suite
to make it happen
* Removal of unnecessary `six.b` literals (Alexandre Detiste)

Deprecations:
* `int_to_string`, `string_to_int`, and `digest_integer` from `ecdsa.ecdsa`
module are now considered deprecated, they will be removed in a future
release

0.18.0

New API:
* `curve_by_name` in `curves` module to get a `Curve` object by providing curve
name.

Bug fix:
* Make the `VerifyingKey` encoded with explicit parameters use the same
kind of point encoding for public key and curve generator.
* Better handling of malformed curve parameters (as in CVE-2022-0778);
make python-ecdsa raise `MalformedPointError` instead of `AssertionError`.

Doc fix:
* Publish the documentation on https://ecdsa.readthedocs.io/,
include explanation of basics of handling of ECC data formats and how to use
the library for elliptic curve arithmetic.
* Make object names more consistent, make them into hyperlinks on the
readthedocs documentation.
* Make security note more explicit (Ian Rodney)
* Fix the `explicit` vs `named_curve` confusion in `VerifyingKey` docs.

Maintenance:
* Updated black version; slight changes to formatting
* Include interoperability tests for Ed25519 and Ed448 with OpenSSL.

0.18.0beta2

New features:
* Support for point precomputation for EdDSA.

Maintenance:
* Fix few typos (thanks to Tim Gates and Kian Meng Ang).

Bug fix:
* Accept private EdDSA keys that include public key in the ASN.1 structure.
* Fix incompatibility with Python 3.3 in handling of memoryviews of empty
strings.

0.18.0beta1

New features:
* Support for EdDSA (Ed25519, Ed448) signature creation and verification.
* Support for Ed25519 and Ed448 in PKCS8 and public key files.

New API:
* CurveEdTw class to represent the Twisted Edwards curve parameters.
* PointEdwards class to represent points on Twisted Edwards curve and
provide point arithmetic on it.

0.17.0

New API:
* Keys that use explicit curve parameters can now be read and written.
Reading of explicit curves can be disabled by using the
`valid_curve_encodings` keyword argument in `VerifyingKey.from_pem()`,
`VerifyingKey.from_der()`, `SigningKey.from_pem()`, and
`SigningKey.from_der()`.
* Keys can now be written with use of explicit curve parameters,
use `curve_parameters_encoding` keyword argument of `VerifyingKey.to_pem()`,
`VerifyingKey.to_der()`, `SigningKey.to_pem(), or `SigningKey.to_der()` to
specify the format. By default `named_curve` will be used, unless the
curve doesn't have an associated OID (as will be the case for an unsupported
curve), then `explicit` encoding will be used.
* Allow specifying acceptable point formats when loading public keys
(this also fixes a minor bug where python-ecdsa would accept raw
encoding for points in PKCS8 files). Set of accepted encodings is controlled
by `valid_encodings` keyword argument in
`ECDH.load_received_public_key_bytes()`, `VerifyingKey.from_string()`,
`VerifyingKey.from_pem()`, VerifyingKey.from_der()`.
* `PointJacobi` and `Point` now inherit from `AbstractPoint` that implements
the methods for parsing points. That added `from_bytes()` and
`to_bytes()` methods to both of them.
* Curve parameters can now be read and written to PEM and DER files. The
`Curve` class supports new `to_der()`, `from_der()`, `to_pem()`, and
`from_pem()` methods.

Doc fix:
* Describe in detail which methods can raise `RSZeroError`, and that
`SigningKey.sign_deterministic()` won't raise it.

Bug fix:
* Correctly truncate hash values larger than the curve order (only impacted
custom curves and the curves added in this release).
* Correctly handle curves for which the order is larger than the prime
(only impacted custom curves and the secp160r1 curve added in this release).
* Fix the handling of `==` and `!=` for `Public_key`, `Private_key`, `Point`,
`PointJacobi`, `VerifyingKey`, and `SigningKey` so that it behaves
consistently and in the expected way both in Python 2 and Python 3.
* Implement lock-less algorithm inside PointJacobi for keeping shared state
so that when a calculation is aborted with KeyboardInterrupt, the state
doesn't become corrupted (this fixes the occasional breakage of ecdsa in
interactive shells).

New features:
* The `speed.py` script now provides performance for signature verification
without the use of precomputation.
* New curves supported: secp112r1, secp112r2, secp128r1, secp160r1.

Performance:
* Use 2-ary Non-Adjacent Form for the combined multiply-add. This speeds up
single-shot verify (i.e. without precomputation) by about 4 to 5%.
* Use native Python 3.8 support for calculating multiplicative inverses.

Maintenance:
* Include Python 3.9 in PyPI keywords.
* More realistic branch coverage counting (ignore Python version-specific
branches).
* Additional test coverage to many parts of the library.
* Migrate to Github Actions for Continuous Testing.

0.16.1

New API:
`VerifyingKey.precompute()` supports `lazy` argument to delay precomputation
to the first time the key is used to verify a signature.

Doc fixes:
Documentation for the `VerifyingKey.precompute()` method.

Bug fix:
Make created signatures correct when the hash used is bigger than the curve
order bit size and the curve order is not a multiple of 8 (this affects
only users of custom curves or hashes with output larger than 512 bits).

Performance:
Speed up library load time by calculating the generator point multiplication
tables the first time the points are used, not when they are initialised.

Maintenance:
Include Python 3.9 in CI testing.
Test coverage for the `VerifyingKey.precompute()` method.
Small speed-ups for the test suite.

0.16.0

New features:
Support for reading and writing private keys in PKCS8 format.

New API:
`to_pem` and `to_der` now accept new parameter, `format`, to specify
the format of the encoded files, either the default, legacy `ssleay`, or
the new `pkcs8` to use PKCS8. Note that only unencrypted PKCS8 files are
supported.
Add `allow_truncate` to `verify` in `VerifyingKey`, it defaults to True,
when specified as False, the use of large hashes smaller than curves will be
disallowed (as it was in 0.14.1 and earlier).

Bug fix:
Correctly calculate signatures for private keys equal to n-1.
Make `PointJacobi` and thus `SigningKey` and `VerifyingKey` pickleable.

Doc fixes:
`to_pem` functions return `bytes` not `str`, document them as such.
`from_pem` and `from_pem` in `SigningKey` returns `SigningKey`, document them
as such.

Maintenance:
Ensure that version checks will work with Python 4.
Format the source with black.
Fix uses of `assert_` in the test suite.
Use newer Ubuntu in Travis to test against OpenSSL 1.1.1 (and thus
test the interoperability of ECDH code in Travis).
Links

Update googleapis-common-protos from 1.51.0 to 1.66.0.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update grpcio from 1.27.2 to 1.70.0.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update protobuf from 3.11.3 to 5.29.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.

3.17.0

Protocol Compiler
* Fix the generated source information for reserved values in Enums.

C++
* Fix -Wunused-parameter in map<string, int> fields (fixes 8494) (8500)
* Use byteswap.h when building against musl libc (8503)
* Fix -Wundefined-inline error when using SharedCtor() or SharedDtor() (8532)
* Fix bug where `Descriptor::DebugString()` printed proto3 synthetic oneofs.
* Provide stable versions of `SortAndUnique()`.
* Make sure to cache proto3 optional message fields when they are cleared.
* Expose UnsafeArena methods to Reflection.
* Use std::string::empty() rather than std::string::size() > 0.

Kotlin
* Introduce support for Kotlin protos (8272)
* Restrict extension setter and getter operators to non-nullable T.

Java
* updating GSON and Guava to more recent versions (8524)
* Reduce the time spent evaluating isExtensionNumber by storing the extension
 ranges in a TreeMap for faster queries. This is particularly relevant for
 protos which define a large number of extension ranges, for example when
 each tag is defined as an extension.
* Fix java bytecode estimation logic for optional fields.
* Optimize Descriptor.isExtensionNumber.

Python
* Add MethodDescriptor.CopyToProto() (8327)
* Remove unused python_protobuf.{cc,h} (8513)
* Start publishing python aarch64 manylinux wheels normally (8530)
* Fix constness issue detected by MSVC standard conforming mode (8568)
* Make JSON parsing match C++ and Java when multiple fields from the same
 oneof are present and all but one is null.

Ruby
* Add support for proto3 json_name in compiler and field definitions (8356)
* Fixed memory leak of Ruby arena objects. (8461)
* Fix source gem compilation (8471)
* Fix various exceptions in Ruby on 64-bit Windows (8563)
* Fix crash when calculating Message hash values on 64-bit Windows (8565)

Conformance Tests
* Added a conformance test for the case of multiple fields from the same
 oneof.

Other
* Use a newer version of rules_proto, with the new rule `proto_descriptor_set` (8469)

3.17.0rc1

Protocol Compiler
* Fix the generated source information for reserved values in Enums.

C++
* Fix -Wunused-parameter in map<string, int> fields (fixes 8494) (8500)
* Use byteswap.h when building against musl libc (8503)
* Fix -Wundefined-inline error when using SharedCtor() or SharedDtor() (8532)
* Fix bug where `Descriptor::DebugString()` printed proto3 synthetic oneofs.
* Provide stable versions of `SortAndUnique()`.
* Make sure to cache proto3 optional message fields when they are cleared.
* Expose UnsafeArena methods to Reflection.
* Use std::string::empty() rather than std::string::size() > 0.

Kotlin
* Restrict extension setter and getter operators to non-nullable T.

Java
* updating GSON and Guava to more recent versions (8524)
* Reduce the time spent evaluating isExtensionNumber by storing the extension
 ranges in a TreeMap for faster queries. This is particularly relevant for
 protos which define a large number of extension ranges, for example when
 each tag is defined as an extension.
* Fix java bytecode estimation logic for optional fields.
* Optimize Descriptor.isExtensionNumber.

Python
* [python-runtime] Add MethodDescriptor.CopyToProto() (8327)
* Remove unused python_protobuf.{cc,h} (8513)
* Start publishing python aarch64 manylinux wheels normally (8530)
* Fix constness issue detected by MSVC standard conforming mode (8568)
* Make JSON parsing match C++ and Java when multiple fields from the same
 oneof are present and all but one is null.

Ruby
* Ruby: Add support for proto3 json_name in compiler and field definitions (8356)
* Fixed memory leak of Ruby arena objects. (8461)
* Fix source gem compilation (8471)
* fix(ruby): Fix various exceptions in Ruby on 64-bit Windows (8563)
* fix(ruby): Fix crash when calculating Message hash values on 64-bit Windows (8565)

Conformance Tests
* Added a conformance test for the case of multiple fields from the same
 oneof.

Other
* Opensourcing kotlin protos (8272)
* Use a newer version of rules_proto, with the new rule `proto_descriptor_set` (8469)

3.16.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.16.1

Java
* Improve performance characteristics of UnknownFieldSet parsing (9371)

3.16.0

C++
* Fix compiler warnings issue found in conformance_test_runner 8189 (8190)
* Fix MinGW-w64 build issues. (8286)
* [Protoc] C++ Resolved an issue where NO_DESTROY and CONSTINIT are in incorrect order (8296)
* Fix PROTOBUF_CONSTINIT macro redefinition (8323)
* Delete StringPiecePod (8353)
* Fix gcc error: comparison of unsigned expression in '>= 0' is always … (8309)
* Fix cmake install on iOS (8301)
* Create a CMake option to control whether or not RTTI is enabled (8347)
* Fix endian.h location on FreeBSD (8351)
* Refactor util::Status (8354)
* Make util::Status more similar to absl::Status (8405)
* Fix -Wsuggest-destructor-override for generated C++ proto classes. (8408)
* Refactor StatusOr and StringPiece (8406)
* Refactor uint128 (8416)
* 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<T> 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.

C
* Add .NET 5 target and improve WriteString performance with SIMD (8147)

Java
* deps: update JUnit and Truth (8319)
* Detect invalid overflow of byteLimit and return InvalidProtocolBufferException as documented.
* Exceptions thrown while reading from an InputStream in parseFrom are now
 included as causes.
* Support potentially more efficient proto parsing from RopeByteStrings.
* Clarify runtime of ByteString.Output.toStringBuffer().
* Added UnsafeByteOperations to protobuf-lite (8426)

JavaScript
* Make Any.pack() chainable.

Python
* Fix some constness / char literal issues being found by MSVC standard conforming mode (8344)
* Switch on "new" buffer API (8339)
* Enable crosscompiling aarch64 python wheels under dockcross manylinux docker image (8280)
* 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.

Objective-C
* Move the class map to a CFDictionary. (8328)

PHP
* read_property() handler is not supposed to return NULL (8362)
* Changed parameter type from long to integer (7613)
* fix: README supported PHP version for C extension (8236)

Ruby
* Fixed quadratic memory usage when appending to arrays. (8364)
* Fixed memory leak of Ruby arena objects. (8461)
* Add support for proto3 json_name in compiler and field definitions. (8356)

Other
* Some doc on AOT compilation and protobuf (8294)
* [CMake] Ability to pass options to protoc executable from cmake (8374)
* Add --fatal_warnings flag to treat warnings as errors (8131)
* [bazel] Remove deprecated way to depend on googletest (8396)
* add error returns missing from protoc to prevent it from exiting with… (8409)

3.16.0rc2

Ruby
* Fixed memory leak of Ruby arena objects. (8462)
* Add support for proto3 json_name in compiler and field definitions. (8356)

3.15.8

Ruby
* Fixed memory leak of Ruby arena objects (8461)

3.15.7

C++
* Remove the ::pb namespace (alias) (8423)

Ruby
* Fix unbounded memory growth for Ruby <2.7 (8429)
* Fixed message equality in cases where the message type is different (8434)

3.15.6

Ruby
* Fixed bug in string comparison logic (8386)

3.15.5

Ruby
* Fixed quadratic memory use in array append (8379)

PHP
* Fixed quadratic memory use in array append (8379)

C++
* Do not disable RTTI by default in the CMake build (8377)

3.15.4

Ruby
* Fixed SEGV when users pass nil messages (8363)
* Fixed quadratic memory usage when appending to arrays (8364)

C++
* Create a CMake option to control whether or not RTTI is enabled (8361)

PHP
* read_property() handler is not supposed to return NULL (8362)

3.15.3

Ruby
* Ruby <2.7 now uses WeakMap too, which prevents memory leaks. (8341)

3.15.2

Ruby
* Fix for FieldDescriptor.get(msg) (8330)

C++
* Fix PROTOBUF_CONSTINIT macro redefinition (8323)

3.15.1

Ruby
* Bugfix for Message.[] for repeated or map fields (8313)
* Fix for truncating behavior when converting Float to Duration (8320)

C++
* Small fixes for MinGW and for C++20 with GCC (8318)

3.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.
* Fixed https://github.com/protocolbuffers/protobuf/issues/8129
* 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 (7180)
* Fix some -Wunused-parameter warnings (8053)
* Fix detecting file as directory on zOS issue 8051 (8052)
* Don't include sys/param.h for _BYTE_ORDER (8106)
* remove CMAKE_THREAD_LIBS_INIT from pkgconfig CFLAGS (8154)
* Fix TextFormatMapTest.DynamicMessage issue5136 (8159)
* Fix for compiler warning issue8145 (8160)
* fix: support deprecated enums for GCC < 6 (8164)
* Fix some warning when compiling with Visual Studio 2019 on x64 target (8125)

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 (7928)
* Add macOS big sur compatibility (8126)

JavaScript
* Generate `getDescriptor` methods with `*` as their `this` type.
* Enforce `let/const` for generated messages.
* js/binary/utils.js: Fix jspb.utils.joinUnsignedDecimalString to work with negative bitsLow and low but non-zero bitsHigh parameter. (8170)

PHP
* Added support for PHP 8. (8105)
* unregister INI entries and fix invalid read on shutdown (8042)
* Fix PhpDoc comments for message accessors to include "|null". (8136)
* fix: convert native PHP floats to single precision (8187)
* Fixed PHP to support field numbers >=2**28. (8235)
* feat: add support for deprecated fields to PHP compiler (8223)
* Protect against stack overflow if the user derives from Message. (8248)
* Fixed clone for Message, RepeatedField, and MapField. (8245)
* Updated upb to allow nonzero offset minutes in JSON timestamps. (8258)

Ruby
* Added support for Ruby 3. (8184)
* Rewrote the data storage layer to be based on upb_msg objects from the
 upb library. This should lead to much better parsing performance,
 particularly for large messages. (8184).
* Fill out JRuby support (7923)
* [Ruby] Fix: (SIGSEGV) gRPC-Ruby issue on Windows. memory alloc infinite
 recursion/run out of memory (8195)
* Fix jruby support to handle messages nested more than 1 level deep (8194)

Java
* Avoid possible UnsupportedOperationException when using CodedInputSteam
 with a direct ByteBuffer.
* Make Durations.comparator() and Timestamps.comparator() Serializable.
* Add more detailed error information for dynamic message field type
 validation failure
* Removed declarations of functions declared in java_names.h from
 java_helpers.h.
* Now Proto3 Oneof fields have "has" methods for checking their presence in
 Java.
* Annotates Java proto generated *_FIELD_NUMBER constants.
* Add -assumevalues to remove JvmMemoryAccessor on Android.

C
* Fix parsing negative Int32Value that crosses segment boundary (8035)
* Change ByteString to use memory and support unsafe create without copy (7645)
* Optimize MapField serialization by removing MessageAdapter (8143)
* Allow FileDescriptors to be parsed with extension registries (8220)
* Optimize writing small strings (8149)

3.14.0

Protocol Compiler
* The proto compiler no longer requires a .proto filename when it is not
 generating code.
* Added flag `--deterministic_output` to `protoc --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<byte>) 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)

3.13.0

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 the `Span<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 a `Span<byte>` to enable GC friendly serialization.
 The new API is available as extension methods on the `IMessage` 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 nee

@pyup-bot
Copy link
Collaborator Author

pyup-bot commented Mar 1, 2025

Closing this in favor of #151

@pyup-bot pyup-bot closed this Mar 1, 2025
@hanlsin hanlsin deleted the pyup-scheduled-update-2025-02-01 branch March 1, 2025 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant