2022年8月3日に発表された変更

2022年8月3日にProtocol Buffersについて発表された変更点。

このトピックでは、一般的なプラットフォームサポートの変更と、22.x リリースラインで検討されている C++ 固有の変更の 2 つの領域について説明します。

プラットフォームサポートの変更

サポート対象プラットフォームに関するガイダンスを、ドキュメントのこのセクションに追加しました。このセクションは現在 C++ と PHP を対象としていますが、将来的には他のプラットフォームに関する情報も追加される可能性があります。

公式C++サポートマトリックス

この発表で前述した、Google の公式な基礎となる C++ サポートポリシーを使用する方針により、当社のC++ コンパイラおよびツールチェーンのサポートマトリックスが変更されます

C++の変更点

新しいメジャーバージョンと破壊的変更ポリシーの発表を受けて、C++ のメジャーバージョンアップを計画しています。22.x リリースラインから、リリースするアセットにいくつかの変更を加える予定です。

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

C++20のサポート追加

C++ 言語に新しいキーワードが追加されたため、C++20 のサポートを追加することは、現在 C++20 を使用していないユーザーにとっても破壊的変更となります。

特定のコンパイラモードでのみ条件付きで名前を変更する軽減策は、複数の言語標準をサポートするプロジェクトを破壊することになります。

C++11のサポート終了

C++ サポートポリシーに従い、C++11 のサポートを終了する予定です。これは破壊的変更です。

Autotoolsのサポート終了

ビルドシステムサポートポリシーに従い、Autotools のサポートを終了する予定です。これは破壊的変更です。Autotools のサポート終了後、protobuf は CMake と Bazel のみをサポートします。

PHP <7.4 のサポート終了

PHP サポートポリシーに従い、PHP の EOL バージョンのサポートを終了する予定です。これらのバージョンはすでに広範なエコシステムで EOL であるため、これは破壊的変更とは見なされません。

Abseilの依存関係の追加

protobuf の Google と OSS の違いを減らし、自身のプロジェクトを簡素化するために、Abseil に対する正式な依存関係を持つ予定です。いずれは、公開 API で Abseil の型を使用し始める予定ですが、依存関係を追加するだけでも破壊的変更となります。

言語固有のソース配布の終了

Autotools への依存を減らし、リリースするアーティファクトの数を最小限に抑えるため、GitHub リリースページでの言語固有のソース配布の公開を停止する予定です。代わりに、ユーザーには GitHub がリリースページで自動生成するソースコード配布をダウンロードすることをお勧めします。

Mavenリリース候補アーティファクト名の慣用的な命名への変更

22.0 では、Maven アーティファクトの名前を、リリース候補のプレフィックスとして「rc-」ではなく「RC」を使用するように変更する予定です。