2023年12月5日に発表された変更点
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 互換性のためのランタイムメソッド。これは、当社のクロスバージョンランタイム保証に従い、もはやサポートされていません。
詳細は、対応するリリースノートで確認できます。