バージョン 25.x の新機能のお知らせ
以下の発表は、2023 年 11 月 1 日にリリースされたバージョン 25.x に特化したものです。時系列の情報については、「ニュース」を参照してください。
Python の互換性のない変更点
v25 では、message.UnknownFields() は純粋な Python および C++ 拡張機能で非推奨になります。v26 で削除されます。代わりに、unknown_fields.py の新しい UnknownFieldSet(message) のサポートを使用してください。
μpb が Protobuf Git リポジトリへ移行
v25 リリースから、μpb は、以前の別のリポジトリの場所ではなく、protobuf リポジトリに移行しました。今後の μpb の開発はすべて新しい場所でのみ行われます。
2 つのリポジトリの統合により、protobuf と μpb の間の固定バージョン依存関係を更新する必要がなくなり、開発プロセスが簡素化され、高速化されます。μpb への変更は、手動でのアップグレード手順なしで、protobuf コードにすぐに反映され、その逆も同様です。
ほとんどのユーザーは、この変更に対応するために、ほとんど、またはまったくアクションをとる必要はないと予想されます。μpb は Ruby、PHP、および Python の実装のエンジンですが、μpb を直接参照するコードがない限り、この変更に気づかないでしょう。
Bazel プロジェクトから μpb を参照している場合、μpb の参照を protobuf を指すように更新する必要があります(たとえば、@upb を @com_google_protobuf に置き換えます)。追加の変更の必要性を最小限に抑えるために、μpb のファイルパスと Bazel ターゲットは同じにしていますが、2 つの例外があります。
upbcディレクトリはupb_generatorに名前が変更されました。- μpb の最上位の
BUILDファイルはupbディレクトリに移動しました。したがって、たとえば、@upb//:reflectionへの参照は、@com_google_protobuf//upb:reflectionと記述されるようになりました。
Java gencode の問題
3.21.7 リリースより前に作成された Java gencode を破損させる変更を 25.x ブランチにパッチ適用します。その後、3.21.7 から 3.25.5 までのすべてのバージョンの Java protobuf を footmitten CVE に対して脆弱であるとマークします。
この変更がパッチ適用された後、システムプロパティ「-Dcom.google.protobuf.use_unsafe_pre22_gencode」を設定しない限り、protobuf は makeExtensionsImmutable メソッドから UnsupportedOperationException をスローします。このシステムプロパティを使用すると、すぐにコードを更新できない場合に時間を稼ぐことができますが、短期的な回避策と考えるべきです。