Changes announced January 5, 2024

Changes announced for Protocol Buffers on January 5, 2024.

This topic covers breaking changes in Ruby and Python in the 26.x line.

Ruby Breaking Changes

Freeze Is Now Recursive in Ruby

Starting in the 26.x line, when freeze is applied it will be applied recursively, affecting all sub-messages, maps, and repeated fields.

Python Breaking Changes

Removing Deprecated APIs

In the 26.x release, the following deprecated APIs will be removed:

Rejecting Extend Repeated Field with None Iterable

Starting in the 26.x release, extending repeated fields with a None iterable will be rejected (it will raise a TypeError). For example, m.repeated_int32.extend(None) will be rejected.

Removing RegisterExtension in message class

Starting in the 26.x release, RegisterExtension will be removed. You can access extensions in Python using the Extensions property on message objects.

This affects both pure Python and the C++ implementation of Python, but not upb Python.