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

Abseil 依存関係の追加

protobufのGoogleとOSS間の違いを減らし、自身のプロジェクトを簡素化するため、Abseilへの正式な依存関係を追加する予定です。将来的には、パブリックAPIでAbseil型を使用し始める予定ですが、依存関係を追加するだけでも破壊的な変更となります。

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

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

Maven リリース候補アーティファクト名をより慣用的なものに変更

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