github protocolbuffers/protobuf v32.0
Protocol Buffers v32.0

18 days ago

Announcements

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

Bazel

  • Migrates some Java test protos using java_features.proto to edition 2024 (6f4a990)
  • Add generated message reflection unittest for import option and option_deps test proto in edition 2024. (c51df73)
  • Replace the usage of cc_info.debug_context with _debug_context (776c5f2)
  • Generate .pyi files in py_proto_library (#10366) (#21567) (e3e56c7)
  • Introduce denylisted_protos as a preferred replacement for blacklisted_protos attribute. (795ab9d)
  • Use native.proto_library for Bazel 7 and explicitly error for Bazel 6 which is incompatible and out of support. (da0077e)
  • Require ProtoInfo provider instead of proto_library rule for bazel cc_proto_library deps. (639f1c9)

Compiler

  • Strip extensions from option imports that are known in CollectExtensions due to polluted pool from protoc parse when used with protoc full + java built in generator. (ef3f9ca)
  • Deprecate google.protobuf.Method.syntax and google.protobuf.Method.edition (9ec241e)
  • Enable edition 2024 support in protoc and language generators for cpp, hpb, java, kotlin, objectivec, php, python, pyi, rust. (26843b3)
  • Ban import weak and weak field option in edition 2024 in protoc (parser and c++ runtime). (a2a0511)

C++

  • Strip extensions from option imports that are known in CollectExtensions due to polluted pool from protoc parse when used with protoc full + java built in generator. (ef3f9ca)
  • Manually migrate top-level protobuf unittest protos from edition 2023 to edition 2024. (7359f75)
  • Add generated message reflection unittest for import option and option_deps test proto in edition 2024. (c51df73)
  • Remove the flag requirement for Bazel+MSVC users. (c6ba697)
  • Enable edition 2024 support in protoc and language generators for cpp, hpb, java, kotlin, objectivec, php, python, pyi, rust. (26843b3)
  • Cast GetCachedTID() to unsigned to prevent left-shifting a negative number. (3e935cf)
  • Update comment at the top of message.h and message_lite.h to document that it should only be extended by gencode and not user code. (6a6ba52)
  • Treat warnings encountered in chromium builds as errors. (21c3c53)
  • Ban import weak and weak field option in edition 2024 in protoc (parser and c++ runtime). (a2a0511)

Java

  • Strip extensions from option imports that are known in CollectExtensions due to polluted pool from protoc parse when used with protoc full + java built in generator. (ef3f9ca)
  • Remove CollectExtensions check banning unknown custom options since unknown custom options are now expected when using import option and option_deps which exclude the options from the "builder" pool (aka "import" pool). (694eedd)
  • Manually migrate top-level protobuf unittest protos from edition 2023 to edition 2024. (7359f75)
  • Migrates some Java test protos using java_features.proto to edition 2024 (6f4a990)
  • Restore compatibility of runtime with pre-3.22.x gencode impacted by CVE-2022-3171 (adf556f)
  • Update our compiled_edition_default's maximum_edition to 2024 (#22870) (6216ae4)
  • Restore the long-deprecated static functions on TextFormat. (5777d3b)
  • Add Kotlin class name helpers to names.h (527b2ab)
  • Enable edition 2024 support in protoc and language generators for cpp, hpb, java, kotlin, objectivec, php, python, pyi, rust. (26843b3)
  • Update Java gencode base class documentation to clarify that it is not supported to extend them. (c3177fb)
  • Add a FieldMaskUtil#trim overload that accepts TrimOptions and allows retaining unset primitive field state. (84c5b63)

Csharp

  • Update staleness (0014173)
  • Manually migrate top-level protobuf unittest protos from edition 2023 to edition 2024. (7359f75)
  • Update our compiled_edition_default's maximum_edition to 2024 (#22870) (6216ae4)
  • Enable edition 2024 support in protoc and language generators for cpp, hpb, java, kotlin, objectivec, php, python, pyi, rust. (26843b3)
  • Include also ARM build of protoc in nuget package (#21568) (c2b4040)
  • Improve C# handling of Any JSON serialization/deserialization (dc4e429)

Objective-C

  • Enable edition 2024 support in protoc and language generators for cpp, hpb, java, kotlin, objectivec, php, python, pyi, rust. (26843b3)

Rust

  • Rust: remove DEP_UPB_VERSION check in codegen crate (#22764) (6f6012a)
  • Enable edition 2024 support in protoc and language generators for cpp, hpb, java, kotlin, objectivec, php, python, pyi, rust. (26843b3)
  • Update Rust generator to output minidescriptors instead of C minitables (1b4b5fc)
  • Add [clear_and_]parse_dont_enforce_required() to Rust protobuf. (e2fd7a0)
  • Add #[non_exhaustive] on the oneof-case enum (aba2075)
  • Impl Clone for RepeatedIter (aca1ed5)
  • See also UPB changes below, which may affect Rust.

Python

  • Strip extensions from option imports that are known in CollectExtensions due to polluted pool from protoc parse when used with protoc full + java built in generator. (ef3f9ca)
  • Manually migrate top-level protobuf unittest protos from edition 2023 to edition 2024. (7359f75)
  • Raise warnings for float_precision from python json_format. (#23042) (1a7e012)
  • Raise warnings when assign bool to int/enum (#23030) (0b25f7b)
  • Update python edition default maximum edition to 2024 (#22889) (72abf95)
  • Make protobuf codebase compatible with --incompatible_config_setting_private_default_visibility (#22745) (5e2838e)
  • Add Python deprecation warnings for Descriptor Label. (64a76e6)
  • Updating setuptools to patch CVE-2025-47273 (#22094) (508aba1)
  • Enable edition 2024 support in protoc and language generators for cpp, hpb, java, kotlin, objectivec, php, python, pyi, rust. (26843b3)
  • Extend gencode compatibility support back to 3.20.0 (1af7fd4)
  • Change proto_api work with custom pool for upb and pure python. (49d9e2d)
  • Python pyi print "import datetime" for Duration/Timestamp field (f59b84a)
  • Add reference leak check to Python well_known_types_test. Fix two refleak bugs. (e5f9ab4)
  • Add reference leak check to Python timestamp_test and duration_test. Fix a refleak bug when assign datetime/duration to Timestamp/Duration (e004c8b)
  • Add recursion depth limits to pure python (17838be)
  • Remove calls to Label within Protobuf Python. (f69180a)
  • Change Python .pyi stubs to generated _Optional[] for bool fields same with (6972464)
  • Remove internal/api_implementation.Version() (cbad456)
  • Fix python proto_api to work with messages that required fields are not set. (f63ed55)
  • Fix python upb crashes on map/repeated reference stub destructor (4274909)
  • Mark Py JSON float_precision deprecated. (727a8ed)

PHP

  • Enable edition 2024 support in protoc and language generators for cpp, hpb, java, kotlin, objectivec, php, python, pyi, rust. (26843b3)
  • Fix(php): use count instead of ->count() to avoid bug in c-extension (9fbce62)
  • [php][compiler][ext] - Add missing has* methods and other well known types (#20636) (01a7429)
  • Fix PHP 8.4 deprecation in GPBDecodeException (#21232) (676666e)

PHP C-Extension

  • Update our compiled_edition_default's maximum_edition to 2024 (#22870) (6216ae4)
  • Change 'getLabel is deprecated' to E_USER_DEPRECATED (158d8ac)
  • [php][compiler][ext] - Add missing has* methods and other well known types (#20636) (01a7429)
  • See also UPB changes below, which may affect PHP C-Extension.

Ruby

  • Make protobuf codebase compatible with --incompatible_config_setting_private_default_visibility (#22745) (5e2838e)
  • Enable edition 2024 support in protoc and language generators for cpp, hpb, java, kotlin, objectivec, php, python, pyi, rust. (26843b3)
  • Fix silent failure of rb_test rules to run test (#21733) (4f74764)

Ruby C-Extension

  • Update our compiled_edition_default's maximum_edition to 2024 (#22870) (6216ae4)
  • Removed wrap_memcpy.c compatibility shim for pre-2.14 glibc (4ba9733)
  • See also UPB changes below, which may affect Ruby C-Extension.

UPB (Python/PHP/Ruby C-Extension)

  • Update our compiled_edition_default's maximum_edition to 2024 (#22870) (6216ae4)
  • Make protobuf codebase compatible with --incompatible_config_setting_private_default_visibility (#22745) (5e2838e)
  • Add upb_Message_SetExtensionMessage as a helper for setting a extension field that is a message. This is the extension equivalent of upb_Message_SetBaseFieldMessage. (f15d28a)

Other

  • Update github major version tags to be formatted v..- for clarity (e001d57)
  • Upgrade Abseil dependency to 20250512.1 (ee68ed1)
  • Patch rules_ruby to apply neverlink = True to the jars rule (#21416) (88e11bd)

Don't miss a new protobuf release

NewReleases is sending notifications on new releases.