2023年12月5日に発表された変更
Java の破壊的変更
v26 では、破壊的変更ポリシーとバージョンサポートポリシーに基づき、Java のメジャーバージョンアップを計画しています。
以下のセクションでは、protocol buffers の 26.0 リリースに含める予定の破壊的変更のセットについて概説します。計画は変更される可能性があることに注意してください。これらは注意すべき潜在的な破壊的変更ですが、今回のリリースで発生するとは限らず、全く発生しない可能性もあります。
Poison Pill による gencode/runtime のミスマッチ検出
クロスバージョンランタイム保証に基づき、Protobuf はメジャーバージョン境界を越えた生成コードとランタイムの混在、または単一のメジャーランタイムバージョン内で新しいバージョンの protoc からの生成コードと古いランタイムの混在をサポートしていません。「poison pill」を導入して、これらの許可されていないミスマッチを検出し、強制する予定です。
これは既存のポリシーの強制を追加するだけなので、破壊的変更とは見なされませんが、ユーザーは生成されたコードの更新が必要になる場合があります。
古い生成コードとの互換性 breaking
v26.x は、古いメジャーバージョンからの生成コードとの互換性を breaking します。ユーザーは、古い生成コードを同じバージョンから再生成する必要があります。
たとえば、元々 v2.x.x ランタイムに対して v3.x.x からの生成コードとの下位互換性のために導入された GeneratedMessageV3
は、GeneratedMessage
に名前が変更されます。ランタイムは エディション をサポートするように更新され、古い生成コードとの互換性はなくなります。
これは既存の クロスバージョンランタイム保証 に準拠しており、破壊的変更です。
非推奨のメソッド/変数の削除
v26.x では、非推奨のメソッドと変数へのアクセスが削除されます。これらは通常、以前のリリースで @Deprecated
がマークされています。
これにより、以下の網羅的ではないリストへのアクセスが削除されます。
Descriptor 構文 API。これらは、対応する機能アクセサー (
FieldDescriptor.hasPresence()
、EnumDescriptor.isClosed()
など) に置き換える必要があります。TextFormat print メソッド。これらは、対応する
TextFormat.printer()
メソッドに置き換える必要があります。PARSER 変数。これは、
parser()
メソッドに置き換える必要があります。古い v2.x.x gencode 互換性のためのランタイムメソッド。これは、クロスバージョンランタイム保証に基づき、もはやサポートされていません。
詳細については、対応するリリースノートで入手できます。