發布渠道
Tuist CLI 透過三個渠道發布,各自提供不同嘅穩定性保證。推薦安裝係 stable,更新節奏較慢:唔會每次有新功能合併就推進版本,所以升級唔再等於要吸收一批無關嘅變更。早期採用者仍然可以喺 canary 上執行每次提交嘅構建,而 release candidate 渠道則讓團隊喺新版本成為 stable 之前先行試用。
渠道#
| 渠道 | 版本格式 | 發布頻率 | 預設解析? |
|---|---|---|---|
| Canary | X.Y.0-canary.N(例如 4.201.0-canary.42) | 每次提交到 main | 否 — 需要明確選擇 |
| Release candidate | X.Y.0-rc.N(例如 4.200.0-rc.1) | 每星期一從 main 切出,試用約 1 週 | 否 — 需要明確選擇 |
| Stable | X.Y.Z(例如 4.200.0、4.200.1) | 經過乾淨試用後,每星期一升級 | 是 |
Canary 同 release candidate 構建會以 prerelease 形式發布。Mise 同 Homebrew 等工具喺解析 latest、裸安裝或鎖定分支時會排除 prerelease,所以你只有喺明確指定時才會使用佢哋。
Canary#
每次提交到 main 都會發布一個 canary 版本。Canary 始終代表 下一個未發布嘅次要版本:一旦某個分支被切出用於發布,main 就會推進到下一個次要版本(例如由 4.200.0-canary.42 變為 4.201.0-canary.1)。Canary 適合希望最早收到信號嘅早期採用者,或者想喺修復到達 stable 之前驗證你報告或貢獻嘅修復是否符合預期。
Release candidate#
當某個次要版本準備發布時,其分支會被凍結到受保護嘅 releases/<major>.<minor>.x 分支,並以 X.Y.0-rc.1 形式發布。該分支功能凍結;只會揀選關鍵修復同回歸問題,每個接受嘅修復都會遞增 RC 版本號(-rc.2、-rc.3、…)。經過乾淨嘅試用期後,該分支會升級為 stable。
Stable#
Stable 係推薦渠道,亦係所有文件指向嘅渠道。只有當 release candidate 經過乾淨試用後,stable 次要版本(X.Y.0)才會發布,而且當新功能合併到 main 時,它並不會自動推進。Stable 分支上嘅補丁版本(X.Y.1、X.Y.2、…)只包含回溯修復,絕不包含新功能。
選擇版本#
使用 Mise(推薦):
mise use tuist@latest # Latest stable (recommended)
使用 Homebrew 時,brew install --formula tuist 永遠安裝最新嘅 stable 版本;prerelease 不會透過 formula 分發。
推薦策略#
- 鎖定到一個 stable 分支,例如
[email protected]。該分支只接收回溯修復,絕無新功能,因此日常升級風險較低。 - 有意識地採用新功能。 當你準備好迎接下一個次要版本時,先喺 release candidate 渠道試用,然後將你嘅鎖定轉移到新嘅 stable 分支。
- 如果你係希望最早收到信號嘅早期採用者,可以喺非關鍵環境中嘗試 canary。
支援同回溯修復#
任何時候都有兩個 stable 分支處於積極維護狀態:
| 分支 | 接收 |
|---|---|
當前(X.Y.x) | 回歸問題同安全修復 |
上一個(X.(Y-1).x) | 僅限關鍵修復同安全修復 |
| 更舊版本 | 無 — 請升級到受維護嘅分支 |
修復首先會合併到 main(canary)。回歸問題同安全修復會被回溯到當前 stable 分支,而上一個分支只接收關鍵修復同安全修復。其他錯誤修復不會被回溯;它們會隨下一個次要版本發布。當新分支被提升為 stable 時,原本「當前」嘅分支會變成「上一個」,而原本「上一個」嘅分支則停止接收回溯修復。
無論使用哪個渠道,Tuist server 都與過去 3 個月內發布嘅任何 CLI 保持兼容,因此只要你喺該期間內升級,鎖定到 stable 分支就不會令你超出支援範圍。