[Announcement] Protocol Buffers Version 34.0 is Released!

20 views
Skip to first unread message

Jie Luo

unread,
Mar 3, 2026, 2:06:53 PM (3 days ago) Mar 3
to Protocol Buffers
This version includes breaking change(s) to C++, python, PHP, Objective-C, Bazel:
  • [Objective-C] Remove -[GPBFieldDescriptor optional] (3414dc1)
  • [Objective-C] Fix nullability annotations on some GPB*Dictionary types. (ea67d6d)
  • [Objective-C] Remove generate_minimal_imports generation option warning (45b1297)
  • [Python] Raise errors in OSS when assign bool to int/enum field in Python Proto. (5b116fe)
  • [Python] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (c301c2c)
  • [Python] Remove deprecated FieldDescriptor.label (0a8ff55)
  • [Python] Remove float_format/double_format from python proto text_format (e4854a1)
  • [Python] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (b76faa9)
  • [Python] Raise TypeError when convert non-timedelta to Duration, or convert non-datetime to Timestamp in python proto. (Original code may raise ArributeError) (00aaca1)
  • [Python] Remove float_precision from python proto json_format (f027f1f)
  • [PHP] Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (4208121)
  • [PHP] Remove deprecated PHP APIs (9c45014)
  • [PHP] Add PHP typehints for setters and remove redundant GPBUtil checks (aee03b7)
  • [PHP] support default values for editions/proto2 (b01099d)
  • [C++] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (c301c2c)
  • [C++] Add a debug check that the target of CopyFrom is not a descendant of the source. (7a75898)
  • [C++] Add [[nodiscard]] to many APIs. (a70115f)
  • [C++] Make generator headers private (3a2af35)
  • [C++] Remove deprecated FieldDescriptor::has_optional_keyword() in OSS. Use is_repeated() or has_presence() instead (68346ec)
  • [C++] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (b76faa9)
  • [C++] Remove deprecated FieldDescriptor::is_optional() in OSS. Use (!is_required() && !is_repeated()) instead (9dbc5d4)
  • [C++] Remove AddUnusedImportTrackFile() and ClearUnusedImportTrackFiles(). Remove PROTOBUF_FUTURE_RENAME_ADD_UNUSED_IMPORT (837a2cd)
  • [C++] Removes proto2::util::MessageDifferencer::AddIgnoreCriteria that takes a raw pointer as an argument in favor of the overload that takes a unique_ptr. Remove macro PROTOBUF_FUTURE_REMOVE_ADD_IGNORE_CRITERIA (b115358)
  • [C++] Make the arena-enabled constructors of RepeatedFieldRepeatedPtrField, and Map private. (ef890c3)
  • [C++] All entity names have length limit (2afb0dc)
  • [Other] Remove deprecated flag for enabling MSVC support (97c979b)
  • [Bazel] Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (0a5c2f6)
  • [Bazel] Change @protobuf//bazel/flags:prefer_prebuilt_proto flag to True. (84a30b5)
  • [Bazel] Only respect the Starlark versions of --proto_toolchain_for*(b5685c4)
You can view the release and complete release notes on [GitHub] and additional information on our News page.
If you experience any issues with the release, please file a bug or post on the Protocol Buffers forum.


Reply all
Reply to author
Forward
0 new messages