Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Bazel
Compiler
- Disable symbol visibility enforcement by default in C++ runtime (ae308fc)
- Ship all option dependencies to plugins along with regular ones. (abeb130)
C++
- Optimize ReadPackedVarint (3d94d83)
- Add a macro to make
RepeatedPtrField(Arena*)
constructor private in a future release (6422b9d) - Add IsEmpty() function to reflection. (b64e490)
- Refactor
RuntimeAssertInBounds
to remove repeated logic and makeGet
/Mutable
easier to read. (2f270c4) - Disable symbol visibility enforcement by default in C++ runtime (ae308fc)
- Fix a bug in the main C++ JSON parser/serializer camelcasing of certain non-style-compliant names incorrectly, in a way that would prevent it from interoperating with any other implementation on those fields. (e25e267)
- Fail early for messages with more than 65k fields. (90824aa)
- Add option to C++ JSON Parser/Serializer to allow customers to affirmatively disable legacy bug-compatibilty behaviors. (6ea1640)
- Fix mishandling on JSON serialization of Timestamp with invalid negative and too-large nanos value. (a959f27)
- Preserve features in type resolver (c7030f4)
- Add a DCHECK that ArenaStringPtr::Set(char*, Arena*) is not called with (95b1763)
Java
- Slightly relax Java Poison Pill on prerelease versions (-rc1, -dev, etc). (7b0bee3)
- Avoid boxing/unboxing
varint
,fixed32
, andfixed64
fields inUnknownFieldSet.Field
(810272f) - Readd new*List() methods on GeneratedMessageV3. (badaf41)
- Add Values.of(Map<String, Value> values). (c518f25)
- Fix handling of optional dependencies in java generator. (8d51e34)
- Restore ABI compatibility for extension methods which was previously (knowingly) broken with 4.x: 94a2a44 (ea33ae8)
- Restore Protobuf Java extension modifiers in gencode that were previously removed in 7bff169 (f2257f5)
- Ship all option dependencies to plugins along with regular ones. (abeb130)
- Optimize redaction state calculation (e05db5c)
- Add
isPlaceholder()
accessors to file, message, and enum descriptors (f978ec2) - Improve Java gencode static initialization to avoid unnecessary temporaries again (745e15b)
- Improve Java gencode static initialization to avoid unnecessary temporaries (b68b673)
- Remove protobuf-util usages of guava except annotations. (5768acd)
- Restore compatibility of runtime with pre-3.22.x gencode impacted by CVE-2022-3171 (7c51e5b)
- Expose an iterator for
GeneratedMessage.ExtendableMessage.extensions
(b25d39e)
Rust
- Change Rust prelude to bring in traits as
_
(c3f7e8d) - Make message Muts
Send
(8bff944) - See also UPB changes below, which may affect Rust.
Python
- Publish s390x wheels for Python/upb. (56b2b89)
- Fix a crash that happens during shutdown due to looking up modules in the cache (d57d270)
- Add construction support for repeated Timestamp/Duration/Struct/ListValue. (5f6c013)
- Fix handling of repeated extension fields in PyProto JSON (07ef676)
- Fixed a parser bug where closed enums are parsed incorrectly for non-repeated extensions. (c36f728)
- Fixed mypy errors by setting
__slots__
to empty in.pyi
files. (38ca2d3) - Raise warnings for float_precision from python json_format. (4659cd7)
- Raise warnings when assign bool to int/enum field in Python Proto. This will turn into error in 34.0 release. (4ee55d7)
PHP
UPB (Python/PHP/Ruby C-Extension)
- Fixed a parser bug where closed enums are parsed incorrectly for non-repeated extensions. (c36f728)