先了解下語義化版本,也就是SEMVER
.
html
語義化版本就像它的名字所說的同樣, 讓每個版本號的添加都有其意義. 這可讓開發人員迅速明白這次升級的變更狀況, 並且可讓第三方工具好比 NPM 能夠更便捷更安全的進行操做.git
一個語義版本包括三個數字
:angularjs
主版本號 | 次版本號 | 修訂號 |
---|---|---|
破壞性變動 | 功能添加,無破壞性變動 | Bug修正,無破壞性變動 |
版本號遞增規則以下:github
主版本號:當你作了不兼容的 API 修改,安全
次版本號:當你作了向下兼容的功能性新增,工具
修訂號:當你作了向下兼容的問題修正.post
先行版本號及版本編譯信息能夠加到「主版本號.次版本號.修訂號」的後面, 做爲延伸.測試
簡單說就是 Angular2後開始使用semver
語義化版本, 並作了一次版本對齊router
核心Angular
庫存在於一個單一的GitHub
存儲庫中, 位於github.com/angular/angular
. 全部這些都以相同的方式進行版本化, 但做爲不一樣的NPM包分發:
包名 | 版本 |
---|---|
@angular/core | v2.3.0 |
@angular/compiler | v2.3.0 |
@angular/compiler-cli | v2.3.0 |
@angular/http | v2.3.0 |
@angular/router | v3.3.0 |
能夠看到 @angular/router
的版本的當前未對齊. 因爲router
包版本的這種不對齊, 而且已經形成了必定的使用混亂. Angular 團隊決定直接使用Angular v4
. 採用這種方式, 將全部的核心包對齊, 這將更容易維護而且幫助避免未來的混亂.
爲何router
已經到了 v3.x.x
?這是Angular團隊發佈 router v3 時的官方公告.
此外, 重要的是要了解Angular如何在Google中使用和集成(Igor在這裏的主題演講中談到這一點). 全部Google應用程序使用Angular版本等於當前GitHub的Angular倉庫的主分支. 每當一個新的提交到達master, 它將被整合到谷歌獨立而龐大的mono-repo, 其中還有其餘產品, 如地圖, Adsense等. 所以, 在Google內部使用Angular的全部項目套件都將針對此新版本運行其普遍的測試. 這使得團隊很是有信心去裁剪一個新版本, 由於它將包含已經在Google中進行過測試的Angular軟件包的徹底組合版本. 所以, 具備對齊的版本是徹底有道理的, 而且隨着時間的推移更容易維護它們, 這反過來有助於團隊在發佈新特徵方面更有成效.
Angular 團隊基於時間週期的發佈策略, 發生在三個週期:
補丁每週發佈.
主要版本發佈以後每個月3次次要版本發佈.
主要版本, 每6個月更換一次, 易於遷移.
其它版本: