バージョン 25.x のニュース発表
以下の発表は、2023 年 11 月 1 日にリリースされたバージョン 25.x に特化したものです。時系列の情報については、「ニュース」を参照してください。
Python 破壊的変更
v25 では、純粋な Python と C++ 拡張機能で message.UnknownFields()
が非推奨になります。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 の毒入り化
25.x ブランチに、3.21.7 リリース 以前に作成された Java gencode を毒入りにする変更をパッチ適用しています。その後、3.21.7 から 3.25.5 までのすべてのバージョンの Java protobuf を footmitten CVE に対して脆弱であるとマークします。
この変更がパッチ適用された後、システムプロパティ「-Dcom.google.protobuf.use_unsafe_pre22_gencode
」を設定しない限り、protobuf は makeExtensionsImmutable
メソッドから UnsupportedOperationException
をスローします。このシステムプロパティを使用すると、コードをすぐに更新できない場合に時間を稼ぐことができますが、短期的な回避策と見なすべきです。