【文章翻譯】Flutter’s Material and Cupertino code freeze

【文章內容使用 Gemini 2.5 Flash 自動翻譯產生】

Material 和 Cupertino 函式庫已凍結,將從 Flutter 框架移至新的套件

我們一直努力準備將 Material 和 Cupertino 從框架中分離出來,現在我們第一個重要的里程碑已經到來!截至 4 月 7 日,所有對 flutter/flutter 中 Material 和 Cupertino 函式庫的貢獻都已凍結。我們的下一個里程碑將是將這些函式庫重新發布為 material_uicupertino_ui 套件在 pub.dev 上。

這意味著,在程式碼凍結之後,flutter/flutter 內部不允許再對 Material 和 Cupertino 函式庫進行任何更改。一旦新套件發布,這些函式庫的進一步開發將在 flutter/packages 儲存庫中恢復。

如果您編寫 Flutter 應用程式或 Plugin,但沒有貢獻 Material 或 Cupertino 本身,您現在可以停止閱讀。這不會影響您…目前。

在 3.44 穩定版發布之後,新的套件將會發布,開發者最終需要進行遷移。舊的 Material 和 Cupertino 程式碼將在 3.44 之後 的穩定版中棄用,並在之後的某個時間點刪除。當然,屆時我們將提供有關此遷移的詳細說明。

對於那些積極為這些函式庫做出貢獻或以其他方式投入其開發的人,這裡有一些您應該知道的事情:

如果您的 PR 正在進行中怎麼辦?

儘管程式碼凍結,我們仍希望 Material 和 Cupertino 的開發能以最小的中斷繼續進行!任何涉及 Material 或 Cupertino 的開放 PR 都應保持開放,審查人員將照常繼續審查並提供回饋。一旦新的套件發布,我們將提供有關如何將這些 PR 移植到 flutter/packages 的說明。最終,您的變更將作為新的 material_ui 或 cupertino_ui 發布的一部分推出。

Material 和 Cupertino 相關的新舊議題怎麼辦?

與 Material 或 Cupertino 相關的議題將一如既往地保留在 flutter/flutter 中。這種統一的議題追蹤方法與我們在 flutter/packages 儲存庫中的其他套件和一些其他儲存庫所遵循的模式相同。

為什麼現在凍結程式碼?

當我們發布 material_ui 和 cupertino_ui 套件的 1.0.0 版本時,我們認為為每個準備好遷移的 Flutter 開發者提供無縫的遷移過程非常重要,無論他們來自哪個發布管道。這意味著我們需要將 flutter/flutter 和 flutter/packages 中的 Material 和 Cupertino 函式庫之間的重大變更風險降到最低。我們可以透過提前一個穩定發布週期凍結程式碼並將該凍結的程式碼複製到新套件中來實現這一點。

Flutter 開發者的遷移過程第一步是在任何管道上對 v3.44 或更高版本執行正常的 SDK 遷移。一旦完成,我們就知道他們擁有 Material 和 Cupertino 的凍結副本。即使他們再次升級 SDK,該 Material 和 Cupertino 程式碼也不會改變(直到長期被棄用和刪除)。更重要的是,我們知道凍結的 Material 和 Cupertino 程式碼與 1.0.0 material_ui 和 cupertino_ui 套件中的程式碼相同,或者盡可能接近相同。從那裡,開發者可以以最小的摩擦從其 SDK 副本中的 Material 和 Cupertino 程式碼遷移到 material_ui 和 cupertino_ui 套件。

我們是如何走到這一步的

到目前為止,這是一段漫長的旅程,有來自社群的許多貢獻和回饋。幾個月前,當我意識到我們有測試依賴會阻礙分離時,我發布了一個 議題,並認為我將面臨大量的遷移工作。相反,來自社群的貢獻者立即投入幫助遷移數百個測試。我們從首次貢獻者到資深貢獻者那裡獲得的支持對於我們為分離做好準備至關重要。謝謝您!

接下來呢?

程式碼凍結之後,我們將開始準備遷移到新的 material_ui 和 cupertino_ui 套件。這包括移植程式碼、實作 CI/CD、測試和設定文件基礎設施等任務,以確保我們能夠保持您對 Flutter 期望的相同高品質開發者體驗。

隨著新套件的成熟,我們將發布更多關於如何成功遷移的資訊,請密切關注。此外,如果您發現任何我們可能遺漏的地方,請隨時提出問題或 PR。如果沒有 Flutter 優秀社群的幫助,我們不可能走到這一步,我們迫不及待地想看看接下來會發生什麼。


Flutter 的 Material 和 Cupertino 程式碼凍結 最初發佈於 Flutter on Medium,人們在那裡透過突顯和回應此故事繼續討論。