2023年12月5日に発表された変更点

2023年12月5日に発表されたProtocol Buffersの変更点。

Javaの破壊的変更

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

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

ポイズンピリング Gencode / ランタイムの不一致

クロスバージョンランタイム保証に従い、Protobufはメジャーバージョン境界を越えた生成済みコードとランタイムの混在、または単一のメジャーランタイムバージョン内で新しいバージョンのprotocから生成されたコードと古いランタイムの混在をサポートしていません。これらの許可されない不一致を検出して強制するために「ポイズンピル」を導入する予定です。

これは、既存のポリシーの強制を追加するだけであるため、破壊的変更とは見なされませんが、ユーザーは生成されたコードを更新する必要がある場合があります。

古い生成済みコードとの互換性の破壊

v26.xは、古いメジャーバージョンから生成されたコードとの互換性を破ります。ユーザーは、古い生成されたコードを同じバージョンから再生成する必要があります。

例えば、v2.x.xの生成済みコードとv3.x.xランタイムの後方互換性のために導入されたGeneratedMessageV3は、GeneratedMessageに改名されます。ランタイムはEditionsをサポートするように更新されますが、これは古い生成済みコードと互換性がありません。

これは、既存のクロスバージョンランタイム保証に準拠しており、破壊的変更です。

非推奨のメソッド/変数の削除

v26.xでは、非推奨のメソッドと変数へのアクセスが削除されます。これらは通常、以前のリリースで@Deprecatedとマークされています。

これにより、以下の非網羅的なリストへのアクセスが削除されます。

  • Descriptor 構文 API (対応する機能アクセサー (例: FieldDescriptor.hasPresence()EnumDescriptor.isClosed()) に置き換える必要があります)

  • TextFormat のプリントメソッド (対応する TextFormat.printer() メソッドに置き換える必要があります)。

  • PARSER 変数 (parser() メソッドに置き換える必要があります)。

  • 古い v2.x.x gencode 互換性のためのランタイムメソッド。これは、当社のクロスバージョンランタイム保証に従い、もはやサポートされていません。

詳細は、対応するリリースノートで確認できます。