2023年12月13日発表の変更点

2023年12月13日に Protocol Buffers に関する変更が発表されました。

C++ の破壊的変更

v26 では、破壊的変更に関するポリシーおよびバージョンサポートポリシーに基づき、C++ のメジャーバージョンアップを計画しています。

以下のセクションでは、protocol buffers の 26.0 リリースに含める予定の破壊的変更の概要を説明します。計画は変更される可能性があることに注意してください。これらは注意すべき潜在的な破壊的変更ですが、この特定のリリースで発生しない、あるいはまったく発生しない可能性もあります。

repeated フィールドの非推奨の clear API を削除

以下の非推奨メソッドが削除されます

  • RepeatedPtrField::ReleaseCleared()
  • RepeatedPtrField::ClearedCount()
  • RepeatedPtrField::AddCleared()

C++ のレガシーな構文記述子 API を削除

エディションのリリースに伴い、構文はビジネスロジックでサポートされなくなりました。代わりに、C++ でフィーチャーを照会するには、has_presence のように、descriptor.h で定義されているさまざまなフィーチャーヘルパーを使用して、よりターゲットを絞った振る舞いを照会してください。

非推奨の構文アクセサーを削除

v26 で、非推奨の構文アクセサーである FileDescriptor::Syntax を削除する予定です。代わりに FileDescriptor::edition のゲッターを使用することをお勧めします。

非推奨の SupportsUnknownEnumValues メソッドを削除

SupportsUnknownEnumValues メソッドは2023年3月に非推奨となりました。v26 でこれを削除する予定です。

std::string エラーコレクターのオーバーライドを削除

エラーコレクター内の非推奨の std::string メソッドを削除する予定です。

Python の破壊的変更

v26 では、破壊的変更に関するポリシーおよびバージョンサポートポリシーに基づき、Python のメジャーバージョンアップを計画しています。

タイムスタンプの有効性をチェック

v26 では、システムが Timestamp 値が有効かどうかをチェックします。秒は [-62135596800, 253402300799] の範囲、ナノ秒は [0, 999999999] の範囲である必要があります。これらの範囲外の値は例外を発生させます。

非推奨の構文アクセサーを削除

v26 で、非推奨の構文アクセサーである FileDescriptor.syntax を削除する予定です。代わりに FileDescriptor.edition を追加する予定です。

UnknownFields サポートの削除

v25 では、pure Python と C++ 拡張で message.UnknownFields() が非推奨になりました。v26 でこれを削除する予定です。代替として、unknown_fields.py の新しい UnknownFieldSet(message) サポートを使用してください。

これらの変更に関する詳細は、対応するリリースノートでご確認いただけます。