Skip to content

Releases: protocolbuffers/protobuf

Protocol Buffers v25.9

25 Mar 22:25

Choose a tag to compare

Announcements

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

Java

  • Avoid toBigIntegerExact in JsonFormat to avoid degenerate parse behavior in the face of large exponents. (#26435) (f125aa5)
  • Switch the pre22 warning to use CopyOnWriteArraySet. (#23976) (9822fb5)

Python

  • [numpy] Fix breakage in users of Python protobufs under NumPy 2.3rc1. (#22172) (a4508d4)

Other

  • Remove python from UPB / Windows tests (#26497) (73be936)
  • Fix failing tests in 25.x (#25198) (2418c40)
  • Change setup-ruby and add new xcode version to build (9717aac)
  • Protobuf: update php from macos-13 to macos-15-intel (1d18bbd)
  • Update GitHub Actions to use macOS-14 (again). (3c282a4)
  • Update GitHub Actions to use macOS-14. (2e1a0cc)
  • Disable php tests (56f2fd2)
  • Fix merge conflict annotations (b7abd06)
  • Don't ignore platform requirements (a53de52)
  • Upgrade setup-php to speed up PHP tests (#24408) (0f2128f)
  • Extend gencode compatibility support back to 3.20.0 (#22424) (6fbcb87)
  • Update github major version tags to be formatted v..<MI… (#22359) (974b235)
  • Drop windows-2019 runners from CI (#22185) (9910104)

Protocol Buffers v34.1

19 Mar 22:21

Choose a tag to compare

Announcements

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

Bazel

  • Moved protocopt flag out of the cc dir, since it is not a c++-specific flag. (3db9fd1)
  • Add support for bazel 9.x (#26201) (763c5da)

C++

  • Updated CMake dependencies. (5583485)
  • Add cc_proto_library for MessageSet in //src/google/protobuf/bridge (523a6a4)
  • Add support for bazel 9.x (#26201) (763c5da)

Java

  • Avoid toBigIntegerExact in JsonFormat to avoid degenerate parse behavior in the face of large exponents. (ab3d7f0)

Python

Other

  • Fixed release_prep.sh script mkdir command to follow INTEGRITY_FILE location. (e700d7d)
  • Second try at fixing the release_prep.sh file path! (#26097) (f5ccaf3)

Protocol Buffers v33.6

18 Mar 17:37

Choose a tag to compare

Announcements

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

C++

  • Add cc_proto_library for MessageSet in //src/google/protobuf/bridge (56be356)

Java

  • Avoid toBigIntegerExact in JsonFormat to avoid degenerate parse behavior in the face of large exponents. (e515811)

PHP

  • Check that readRaw does not accept negative length value. (60e93d2)
  • Php: Fix that recursion limit is not enforced. (c8e9b27)
  • Chore(php): fix php 8.5 deprecations 33.x (#25714) (a594f97)
  • Bump version dependencies on phpunit/phpunit to ">=10.5.62 <11.0.0" (7c0d2a2)

Protocol Buffers v34.0

25 Feb 21:52

Choose a tag to compare

Announcements

  • This version includes potential breaking changes with major version bump to: Objective-C, Python, PHP, 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 RepeatedField, RepeatedPtrField, 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)
  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.

Bazel

  • Only respect the Starlark versions of --proto_toolchain_for*. This is a breaking change. (#26090) (#26091) (b5685c4)
  • Breaking change: Change @protobuf//bazel/flags:prefer_prebuilt_proto flag to True. (84a30b5)
  • Dropped support for Bazel 7. (304c9ba)
  • Don't check for native protobuf flags if the proto fragment doesn't exist. (#25803) (5975f13)
  • Fix the prefer_prebuilt_protoc alias to use the correct originally announced location (732ed49)
  • Actually fix breaking change related to upb_proto_reflection_library (86d434b)
  • Fix breaking change related to upb_c_proto_library and upb_proto_reflection_library (b0150c0)
  • Add an alias to undo accidental unannounced breaking change (e71d379)
  • Moved prebuilt-related Bazel files to standard locations. (cfe8991)
  • Refactored and rearranged Bazel rules. (d7dd1e1)
  • Removed the third_party/upb/upb/bazel directory. (7efbfe1)
  • Introduce Starlark versions of Protobuf flags. (d1f4b2f)
  • Fix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (#25168) (8c857c3)
  • Breaking change: Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (0a5c2f6)
  • Feat(bazel): wire up prebuilt protoc toolchain (#24115) (cc23698)
  • Migrate proto_descriptor_set (#23369) (8d4dfdd)

Compiler

  • Removed the third_party/upb/upb/bazel directory. (7efbfe1)
  • Validate Feature Support on Custom Options (2985930)
  • Ruby codegen: support generation of rbs files (#15633) (6ebdf85)
  • Avoid collision name problems between a message named Xyz and a direct sibling enum named XyzView (eba53e8)
  • Generalizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (ed3c571)
  • Fix a bug with custom features outside of the pb package. (872d3ce)
  • Fix import option handling when include_imports isn't set. (9ef9e80)
  • Fix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (1229d4a)
  • Prevent accidental stripping of debug_redact options via import option. (f58b098)

C++

Read more

Protocol Buffers v34.0-rc2

06 Feb 18:41

Choose a tag to compare

Pre-release

Announcements

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

Bazel

  • Fix the prefer_prebuilt_protoc alias to use the correct originally announced location (732ed49)
  • Actually fix breaking change related to upb_proto_reflection_library (86d434b)
  • Fix breaking change related to upb_c_proto_library and upb_proto_reflection_library (b0150c0)
  • Add an alias to undo accidental unannounced breaking change (e71d379)
  • Moved prebuilt-related Bazel files to standard locations. (cfe8991)
  • Refactored and rearranged Bazel rules. (d7dd1e1)
  • Removed the third_party/upb/upb/bazel directory. (7efbfe1)
  • Introduce Starlark versions of Protobuf flags. (d1f4b2f)

Compiler

  • Removed the third_party/upb/upb/bazel directory. (7efbfe1)
  • Validate Feature Support on Custom Options (2985930)

C++

  • Fix broken field_mask_upb_proto and field_mask_upb_reflection_proto aliases (d808a97)
  • Removed the third_party/upb/upb/bazel directory. (7efbfe1)
  • Validate Feature Support on Custom Options (2985930)
  • Auto-generate files after PR #25437 (8be64ea)
  • Update rules_apple dependency to support rules_swift 3.x (#25437) (c0e15f2)
  • Fix UTF-8 Validation of string extensions in C++ (35ba5cf)
  • Improve wire compatibility of TestAllTypes with TestAllExtensions. (08355bd)

Python

  • Use the toolchain protoc by default in internal rules. (41ad19a)
  • Removed the third_party/upb/upb/bazel directory. (7efbfe1)

PHP

  • Bump version dependencies on phpunit/phpunit to ">=11.5.0 <12.0.0" (4e82ce4)

Ruby

UPB (Python/PHP/Ruby C-Extension)

  • Fix breaking change related to upb_c_proto_library and upb_proto_reflection_library (b0150c0)
  • Removed the third_party/upb/upb/bazel directory. (7efbfe1)

Other

  • Add missing timestamp_upb_reflection_proto alias (e9d6bcb)
  • Update Ruby 4.0 test Docker image and enable continuous tests. (0ecc6fe)
  • Auto-generate files after cl/862026607 (978b556)
  • Roll forward generate_release_notes = false (b6e3802)
  • Revert release_ruleset version (88d2062)
  • Fix generate_changelog -> generate_release_notes (#25442) (68ac7b9)
  • Update release_bazel_module.yaml (#25441) (1add73b)

Protocol Buffers v29.6

04 Feb 22:00

Choose a tag to compare

Announcements

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

C++

  • Fix warning about implicit capture of 'this' with '=' (#22083) (afede60)

Python

  • Fix Any recursion depth bypass in Python json_format.ParseDict (#25239) (#25587) (5ebddcb)
  • Extend gencode compatibility support back to 3.20.0 (#22423) (a532f52)
  • [numpy] Fix breakage in users of Python protobufs under NumPy 2.3rc1. (#22171) (c6c8a17)

PHP

  • Bump version dependencies on phpunit/phpunit to ">=10.5.62 <11.0.0" (#25589) (f340323)
  • Protobuf: update php from macos-13 to macos-15-intel (#24776) (1ca37de)
  • Upgrade setup-php to speed up PHP tests (#24405) (bc64ed9)

Python

  • Don't run python tests on windows, which aren't supported anyway (#25598) (cbfc703)

Other

  • Don't ignore platform requirements (87743f6)
  • Update github major version tags to be formatted v..<MI… (#22358) (09082d4)
  • Drop windows-2019 runners from CI (#22186) (39cd25b)

Protocol Buffers v33.5

29 Jan 21:04

Choose a tag to compare

Announcements

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

Python

Other

Protocol Buffers v34.0-rc1

22 Jan 21:33

Choose a tag to compare

Pre-release

Announcements

  • This version includes breaking changes to: C++, Objective-C, PHP, Python.
  • [Bazel] Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (0a5c2f6)
  • [C++] Make generator headers private (3a2af35)
  • [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 the arena-enabled constructors of RepeatedField, RepeatedPtrField, and Map private. (ef890c3)
  • [C++] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (b76faa9)
  • [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++] Remove deprecated FieldDescriptor::has_optional_keyword() in OSS. Use is_repeated() or has_presence() instead (68346ec)
  • [C++] Remove AddUnusedImportTrackFile() and ClearUnusedImportTrackFiles(). Remove PROTOBUF_FUTURE_RENAME_ADD_UNUSED_IMPORT (837a2cd)
  • [C++] Remove deprecated FieldDescriptor::is_optional() in OSS. Use (!is_required() && !is_repeated()) instead (9dbc5d4)
  • [C++] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (c301c2c)
  • [C++] All entity names have length limit (2afb0dc)
  • [ObjC] Remove generate_minimal_imports generation option warning (45b1297)
  • [ObjC] Fix nullability annotations on some GPB*Dictionary types. (ea67d6d)
  • [ObjC] Remove -[GPBFieldDescriptor optional] (3414dc1)
  • [Other] Remove deprecated flag for enabling MSVC support (97c979b)
  • [PHP] Remove deprecated PHP APIs (9c45014)
  • [PHP] Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (4208121, cd76e67, 4208121)
  • [PHP] Add PHP typehints for setters and remove redundant GPBUtil checks (#25296) (aee03b7)
  • [PHP] support default values for editions/proto2 (#25161) (b01099d)
  • [Python] Raise errors in OSS when assign bool to int/enum field in Python Proto. (5b116fe)
  • [Python] Remove float_format/double_format from python proto text_format (e4854a1)
  • [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)
  • [Python] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (b76faa9)
  • [Python] Remove deprecated FieldDescriptor.label (0a8ff55)
  • [Python] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (c301c2c)
  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.
  • Migration Guide may include additional guidance for breaking changes.

Bazel

  • Fix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (#25168) (8c857c3)
  • Breaking change: Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (0a5c2f6)
  • Feat(bazel): wire up prebuilt protoc toolchain (#24115) (cc23698)
  • Migrate proto_descriptor_set (#23369) (8d4dfdd)

Compiler

  • Ruby codegen: support generation of rbs files (#15633) (6ebdf85)
  • Avoid collision name problems between a message named Xyz and a direct sibling enum named XyzView (eba53e8)
  • Generalizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (ed3c571)
  • Fix a bug with custom features outside of the pb package. (872d3ce)
  • Fix import option handling when include_imports isn't set. (9ef9e80)
  • Fix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (1229d4a)
  • Prevent accidental stripping of debug_redact options via import option. (f58b098)

C++

  • Add EnumerateEnumValues function. (397d5d9)
  • Add conformance tests for utf8 validation. (e8923a8)
  • Disable constinit on MSVC for static library builds (783da0a)
  • Breaking change: Make generator headers private (3a2af35)
  • Add bounds checking to ExtractSubrange. (5687acc)
  • This CL starts failing on [unverified_lazy = true] on extensions, which have been (d2a42e7)
  • Refine the conditions for the MSVC constinit workaround (38927bf)
  • Add conformance test cases about handling of google.protobuf.Empty inside any Any in JSON. (0f3dd06)
  • Remove PROTOBUF_CONSTEXPR to unconditionally use constexpr (7f431bb)
  • Add bounds checking to DeleteSubrange, create new helper, RuntimeAssertInBoundsGE, and modify LogIndexOutOfBoundsAndAbort to customize the message being logged. (71cc97c)
  • Breaking change: Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (c301c2c)
  • Fix issue where BinaryToJson a Skip()'s failure on unknown fields was ignored instead of resulting in a parse failure. (2ec322e)
  • Breaking change: Add [[nodiscard]] to many APIs. (a70115f)
  • Abort on out of bounds accesses. (3acf23c)
  • Fix JSON printing of Any of an empty message in C++Proto. (014f676)
  • FieldMaskUtil::TrimMessage: Handle repeated messages. (0f109cb)
  • Breaking change...
Read more

Protocol Buffers v33.4

12 Jan 18:02

Choose a tag to compare

Announcements

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

Other

  • Refactor(bazel): publish a separate .tar.gz (#24065) (47b3385)
  • Bazel: Remove hardcoded dependency on //:protoc from language runtimes (#19679) (453cfb2)

Protocol Buffers v33.3

09 Jan 22:10

Choose a tag to compare

Announcements

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

Bazel

  • Fix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (#25168) (7b30360)
  • Locked down visibility of the new flags and config settings. (04ca1b7)
  • Feat(bazel): wire up prebuilt protoc toolchain (#24115) (aeaede0)

Compiler

  • Create editions test_utils to fix existing brittle tests in command_line_interface_unittest and code_generator_unittest. (cb0a8c5)
  • Add edition unstable for development work. (44e090c)
  • Add conformance test for edition unstable (d167dd0)

C++

  • Add edition unstable for development work. (44e090c)
  • Add conformance test for edition unstable (d167dd0)

Java

  • Add conformance test for edition unstable (d167dd0)
  • Correctly apply JSON recursion limit when parsing an Any-of-Any. (94c7f73)

Csharp

  • Add conformance test for edition unstable (d167dd0)

Python

UPB (Python/PHP/Ruby C-Extension)

  • Add conformance test for edition unstable (d167dd0)
  • Fix unused parameter warnings. (cd0cb21)

Other

  • Don't ignore platform requirements (aeedbc6)
  • Update GitHub Actions to use macOS-14 (again). (f7b18f8)
  • Delete redundant ARM tests (d4e7a81)
  • Protobuf: update php from macos-13 to macos-15-intel (9027d6b)
  • Update GitHub Actions to use macOS-14. (f0907f3)