Angular 發(fā)布實踐

2022-07-21 10:03 更新

Angular 的版本與發(fā)布

你肯定希望 Angular 框架具有穩(wěn)定性(stability)。穩(wěn)定性可以確保組件與庫、教程、工具和現(xiàn)有實踐不會突然被棄用。穩(wěn)定性是讓基于 Angular 的生態(tài)系統(tǒng)變得繁榮的基石。

我們也和你一樣希望 Angular 能持續(xù)演進。我們會努力確保這些你用于構(gòu)建應(yīng)用的基礎(chǔ)能得到持續(xù)的改進,并讓你能及時同步到 Web 生態(tài)系統(tǒng)的其它部分的最新進展,用戶需求也是一樣。

本文檔包含一些我們所遵循的實踐,它讓我們能為你提供一個前沿的應(yīng)用開發(fā)平臺,同時兼顧穩(wěn)定性。我們會努力確保將來的變化總是以一種可預(yù)期的方式引入。我們希望每個 Angular 用戶都明白我們將在何時添加以及如何添加新特性,并且為那些將要移除的、準(zhǔn)備棄用的特性提前做好準(zhǔn)備。

Angular 的版本

Angular 的版本號表明本次發(fā)布中所引入的變更級別。它使用語義化版本號來幫助你理解升級到新版本時的潛在影響。

Angular 的版本號包括三個部分:?major.minor.patch?。比如,版本 7.2.11 表示主版本號是 7,小版本號是 2,補丁版本號是 11。

版本號是根據(jù)本次發(fā)布中包含的變更的級別進行遞增的。

變更級別

詳情

主版本

包含重要的新特性,其中的部分特性在升級時會需要由開發(fā)人員提供少量的協(xié)助才能完成。當(dāng)升級到新的主版本時,你可能需要運行升級腳本、重構(gòu)代碼、運行其它測試以及學(xué)習(xí)新的 API。

小版本

包含新的小型特性。小版本是完全向后兼容的,在升級期間,不需要開發(fā)人員提供協(xié)助,但是你可以(可選的)修改你的應(yīng)用和庫,來使用本次發(fā)布中新增的 API、特性和能力。我們會擴展庫的對等依賴(peer dependency)中的小版本號范圍來更新庫同級,但并不需要你的項目也更新那些依賴。

補丁版本

風(fēng)險最低的、修 BUG 的版本。在升級期間完全不需要開發(fā)人員的協(xié)助。

注意:
從 Angular 版本 7 開始,Angular Core 和 CLI 的主要版本已對齊。這意味著在開發(fā) Angular 應(yīng)用程序時使用的 ?@angular/core? 和 CLI 的版本必須相同。

所支持的升級路徑

你可以 ?ng update? 到任何版本的 Angular,前提是滿足以下條件:

  • CLI 支持你要更新到的版本。
  • 你要更新“自”的版本是受支持的主要版本之一。

比如,你可以從版本 11 更新到版本 12,前提是版本 12 仍受支持。如果要跨多個主要版本進行更新,請每次更新一個主要版本。比如,要從版本 10 更新到版本 12 時:

  • 從版本 10 更新到版本 11。
  • 從版本 11 更新到版本 12。

預(yù)覽發(fā)布

我們還會通過提供 Next 版和 RC(候選發(fā)布)版來讓你預(yù)覽每個即將到來的大版本和小版本。

預(yù)發(fā)布類型

詳情

Next

這是正在活躍開發(fā)和測試中的發(fā)布。Next 版的發(fā)布標(biāo)簽帶有 -next 后綴,比如 8.1.0-next.0。

RC 候選發(fā)布版

一個特性已經(jīng)完成,正在進行最終測試的版本。RC 版的發(fā)布標(biāo)簽帶有 -rc 標(biāo)志,比如 8.1.0-rc.0。

發(fā)布頻率

我們會定期發(fā)布新版本,以便隨著 Angular 的不斷演進,你可以提前計劃并協(xié)調(diào)這些升級工作。

這些日期僅供一般性參考,如有更改,恕不另行通知。

通常的發(fā)布周期如下:

  • 每 6 個月一個主版本
  • 每個主版本中包含 1~3 個小版本
  • 差不多每周一個發(fā)行版或預(yù)發(fā)行版(?next ?或 ?rc?)的補丁版本

這種發(fā)布的節(jié)奏能讓渴望新功能的開發(fā)者在這些功能開發(fā)開發(fā)完成并通過我們的代碼審查和集成測試流程后立即就可以使用,同時為那些喜歡在新功能經(jīng)過 Google 和其他使用預(yù)發(fā)布版本的開發(fā)人員的驗證后才采納的生產(chǎn)環(huán)境用戶,保持平臺的穩(wěn)定性和可靠性。

支持策略與計劃

這些日期僅供一般性參考,如有更改,恕不另行通知。

所有主版本的典型支持周期都是 18 個月。

支持階段

支持時間

詳情

活躍

6 個月

會定期發(fā)布更新和補丁

LTS 長期支持版

12 個月

只會發(fā)布關(guān)鍵性修復(fù)和安全補丁。

下表中提供了目前受支持的 Angular 版本的狀態(tài)。

版本

狀態(tài)

發(fā)布

停止活躍

LTS 結(jié)束

^14.0.0

活躍

2022-06-02 2022-12-02 2023-12-02
^13.0.0

活躍

2021-11-04 2022-06-02 2023-05-04
^12.0.0 LTS 2021-05-12 2021-11-12 2022-11-12

不再為 v2 到 v11 版提供支持。

LTS 修復(fù)

作為一個通用的規(guī)則,如果解決了下列問題之一,就會考慮對 LTS 版本進行修復(fù):

  • 一個新發(fā)現(xiàn)的安全漏洞。
  • LTS 發(fā)布以后,由于第三方更改引起的回歸性問題,比如瀏覽器的新版本。

棄用策略

"重大變更"(比如移除特定的 API 和特性)有時候是必須的,比如創(chuàng)新、讓最佳實踐與時俱進、變更依賴關(guān)系甚至來自 Web 平臺自身的變化。

要讓這些轉(zhuǎn)變盡可能的簡單,我們會給你下列保證:

  • 我們會盡量減少重大變更的數(shù)量,并盡可能提供遷移工具。
  • 我們會遵循這里所講的棄用策略,讓你有時間把應(yīng)用升級到最新的 API 和最佳實踐。

為了保證你能有充足的時間和清晰的路徑進行升級,我們制定了如下棄用策略:

棄用階段

詳情

宣布棄用

我們會在變更記錄中宣布要棄用的那些 API 和特性。啟用的 API 在文檔中會顯示成帶刪除線的樣式。當(dāng)我們宣布一項棄用時,我們還會宣布一個建議的升級路徑。為便于查找,我們在棄用列表中包含一個關(guān)于棄用 API 和特性的匯總表。

棄用階段

當(dāng) API 或特性已棄用時,它在接下來的兩個主版本中仍然會存在。再往后,棄用的 API 和特性將會進入候選棄用狀態(tài)。可能會在任何一次發(fā)布中宣布棄用,但是只會在主版本中移除已棄用的 API 或特性。除非已棄用的 API 或特性已被移除,否則我們?nèi)匀粫鶕?jù) LTS 支持策略來維護它,也就是說,只會修復(fù)嚴(yán)重問題和安全問題。

npm 依賴

在主版本中,我們只會更新那些需要修改你的應(yīng)用的那些 npm 依賴項。在次要版本中,我們會通過擴展受支持版本范圍的方式來更新對等依賴(peerDependencies),但在下一個主版本到來之前,不會強制要求你升級它們。這意味著,在次要版本中,Angular 應(yīng)用和庫中,npm 依賴項的更新是可選的。

公共 API

Angular 是很多包、子項目和工具的集合。為了防止你意外使用私有 API(這樣你才能更清楚的理解哪些 API 會被這里所說的實踐所覆蓋),我們對公開 API 包含以及不包含哪些 API 進行了文檔化。要了解詳情,參閱 Angular 的公共 API。

任何對公共 API 的修改都適用于上述這些版本、支持和棄用策略。

開發(fā)者預(yù)覽版

有時我們會在“開發(fā)者預(yù)覽”標(biāo)簽下介紹新的 API。這些是功能齊全且經(jīng)過優(yōu)化的 API,但我們還沒有準(zhǔn)備好根據(jù)正常的棄用政策來穩(wěn)定它們。

這可能是因為我們希望在穩(wěn)定之前從真實應(yīng)用程序收集反饋,或者因為相關(guān)的文檔或遷移工具不完全完整。

本文檔中描述的政策和實踐不適用于標(biāo)記為 Developer Preview 的 API。此類 API 可以隨時更改,即使在框架的新補丁版本中也是如此。團隊?wèi)?yīng)該自己決定使用開發(fā)者預(yù)覽版 API 的好處是否值得冒險破壞我們正常使用語義版本控制之外的更改。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號