2024年2月5日に発表された変更点

2024年2月5日にProtocol Buffersに発表された変更点です。

このトピックでは、26.x系におけるJava、C++、Pythonの破壊的変更について説明します。

JSON Formatter オプションの変更点

26.x系から、デフォルト値のフィールドを出力するJSONフォーマッターオプションが、proto2とproto3のoptionalフィールドを矛盾なく処理する固定的な方法に置き換えられます。

  • Java: includingDefaultValueFields()alwaysPrintFieldsWithNoPresence()に置き換えられます。
  • C++: always_print_default_valuesalways_print_fields_with_no_presence=Trueに置き換えられます。
  • Python: including_default_value_fields=Truealways_print_fields_with_no_presence=Trueに置き換えられます。

新しいフラグはproto3メッセージでは古いフラグとまったく同じように動作しますが、proto2のoptionalフィールドには適用されなくなります。古いフラグはproto2のoptionalフィールドには適用されましたが、proto3のoptionalフィールドには適用されませんでした。