跳到主內容

Flutter 相容性政策

Flutter 如何處理破壞性變更問題。

Flutter 團隊努力在“API 穩定性需求”與“為了修復錯誤、改善 API 易用性並以連貫方式提供新功能而演進 API 的需求”之間取得平衡。

為此,我們建立了一個測試登錄檔,您可以為自己的應用程式或庫提供單元測試,我們會在每次變更時執行這些測試,以幫助我們跟蹤可能破壞現有應用程式的變更。我們的承諾是:在未與這些測試的開發者協作之前,我們不會進行任何破壞這些測試的變更。協作流程包括:(a) 確定該變更是否具有足夠的價值,以及 (b) 為程式碼提供修復方案,確保測試能夠繼續透過。

如果您希望透過參與此計劃提供測試,請向 flutter/tests 程式碼倉庫提交 PR。該倉庫的 README 檔案詳細介紹了具體流程。

公告與遷移指南

#

如果我們確實進行了破壞性變更(定義為導致一個或多個已提交的測試需要進行修改的變更),我們會在 flutter-announce 郵件列表以及我們的發行說明中釋出變更公告。

我們提供了受破壞性變更影響的 程式碼遷移指南列表

棄用政策

#

我們有時會棄用某些 API,而不是直接將其“一刀切”地破壞。這與我們的相容性政策無關,後者僅基於上述提到的已提交測試是否失敗為準。

Flutter 團隊不會按預定時間表刪除已棄用的 API。如果團隊決定刪除某個已棄用的 API,將遵循與破壞性變更相同的程式。

Dart 及 Flutter 使用的其他庫

#

Dart 語言本身擁有獨立的破壞性變更政策,相關公告發布在 Dart announce 上。

通常情況下,Flutter 團隊目前對於其他依賴項不作任何關於破壞性變更的承諾。例如,新版本的 Flutter 可能會使用新版本的 Skia(Flutter 在某些平臺上使用的圖形引擎)或 Harfbuzz(Flutter 使用的字型整形引擎),這些更新可能會帶來影響已貢獻測試的變更。此類變更不一定會附帶遷移指南。