2022 年 8 月 3 日宣布的變更
本主題涵蓋兩個領域:一般平台支援變更,以及針對 22.x 發行線正在考慮的 C++ 專屬變更。
平台支援變更
我們已在文件中的此章節新增關於我們支援平台的指南。本章節目前涵蓋 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-」作為發布候選版本前綴。