Releases: protocolbuffers/protobuf
Releases · protocolbuffers/protobuf
Protocol Buffers v25.9
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
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
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Bazel
- Moved
protocoptflag out of theccdir, 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
Protocol Buffers v33.6
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
Protocol Buffers v34.0
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*Dictionarytypes. (ea67d6d) - [Objective-C] Remove
generate_minimal_importsgeneration 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, andMapprivate. (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)
- [Objective-C] Remove
- 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_libraryandupb_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/bazeldirectory. (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/bazeldirectory. (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
Xyzand a direct sibling enum namedXyzView(eba53e8) - Generalizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (ed3c571)
- Fix a bug with custom features outside of the
pbpackage. (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_redactoptions via import option. (f58b098)
C++
- Regenerated files. (a9bbf7a)
- Dropped support for Bazel 7. (304c9ba)
- Remove direct dependency on rules_apple (#25708) (https://github...
Protocol Buffers v34.0-rc2
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_libraryandupb_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/bazeldirectory. (7efbfe1) - Introduce Starlark versions of Protobuf flags. (d1f4b2f)
Compiler
- Removed the
third_party/upb/upb/bazeldirectory. (7efbfe1) - Validate Feature Support on Custom Options (2985930)
C++
- Fix broken
field_mask_upb_protoandfield_mask_upb_reflection_protoaliases (d808a97) - Removed the
third_party/upb/upb/bazeldirectory. (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
TestAllTypeswithTestAllExtensions. (08355bd)
Python
- Use the toolchain protoc by default in internal rules. (41ad19a)
- Removed the
third_party/upb/upb/bazeldirectory. (7efbfe1)
PHP
- Bump version dependencies on phpunit/phpunit to ">=11.5.0 <12.0.0" (4e82ce4)
Ruby
- Bump gem dependencies (659e0f3)
UPB (Python/PHP/Ruby C-Extension)
- Fix breaking change related to
upb_c_proto_libraryandupb_proto_reflection_library(b0150c0) - Removed the
third_party/upb/upb/bazeldirectory. (7efbfe1)
Other
- Add missing
timestamp_upb_reflection_protoalias (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
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
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
Other
Protocol Buffers v33.5
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Python
Other
Protocol Buffers v34.0-rc1
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, andMapprivate. (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_importsgeneration option warning (45b1297) - [ObjC] Fix nullability annotations on some
GPB*Dictionarytypes. (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
Xyzand a direct sibling enum namedXyzView(eba53e8) - Generalizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (ed3c571)
- Fix a bug with custom features outside of the
pbpackage. (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_redactoptions 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 modifyLogIndexOutOfBoundsAndAbortto 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...
Protocol Buffers v33.4
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Other
Protocol Buffers v33.3
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_unittestandcode_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)