github protocolbuffers/protobuf v33.0-rc1
Protocol Buffers v33.0-rc1

pre-release10 hours ago

Announcements

  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.

Bazel

  • Add target_compatible_with parameter to proto_toolchain in Bazel rules (#22429) (30d2332)

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 make Get/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, and fixed64 fields in UnknownFieldSet.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

  • 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)

Don't miss a new protobuf release

NewReleases is sending notifications on new releases.