Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Bazel
- Feat: update bazel central registry publish workflow (#23465) (#23913) (d5217fd)
- Add target_compatible_with parameter to proto_toolchain in Bazel rules (#22429) (30d2332)
- Bazel: add missing rules_cc loads (#23584) (d98e2ef)
Compiler
- Disable symbol visibility enforcement by default in C++ runtime (ae308fc)
- Ship all option dependencies to plugins along with regular ones. (abeb130)
C++
- Avoid calling deprecated arena-enabled constructors in arena.h. (813a7ef)
- Add a macro to make
RepeatedField(Arena*)
constructor private in a future release. (768db14) - Add a macro to make
Map(Arena*)
constructor private in a future release. (543a17f) - 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
- Switch the pre22 warning to use CopyOnWriteArraySet. (#23969) (e55224c)
- Expose helpers for checking if messages and enums are nested. (8de4002)
- Fix a bug calculating the file name in the absense of directories. (c4ff7a6)
- Clarify the public APIs of GeneratorNames helpers. (537ac35)
- Expose helpers to predict generated class names in java. (eba6df2)
- Deprecate ClassName methods in favor of new QualifiedClassName ones. (ca4fb2f)
- Restore the 3-argument internalBuildGeneratedFileFrom. (4376591)
- Fix large java enums not being honored on lite runtime. (a995803)
- 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)
Other
- Update token for BCR release to reuse existing BOT_ACCESS_TOKEN used for staleness_refresh.yml and update_php_repo.yml (#23925) (dcace2f)
- Use the 'better' JSON parser on the conformance suite harness. (4b4e405)
- Add JSON conformance test that a single value provided for a repeated field should parse fail. (9806994)
- Add conformance test cases for malformed nanos fields on Durations and Timestamps. (a6bdd0a)