跳至內容

發布渠道

Tuist CLI 透過三個渠道發布,各自提供不同嘅穩定性保證。推薦安裝係 stable,更新節奏較慢:唔會每次有新功能合併就推進版本,所以升級唔再等於要吸收一批無關嘅變更。早期採用者仍然可以喺 canary 上執行每次提交嘅構建,而 release candidate 渠道則讓團隊喺新版本成為 stable 之前先行試用。

渠道#

渠道版本格式發布頻率預設解析?
CanaryX.Y.0-canary.N(例如 4.201.0-canary.42)每次提交到 main否 — 需要明確選擇
Release candidateX.Y.0-rc.N(例如 4.200.0-rc.1)每星期一從 main 切出,試用約 1 週否 — 需要明確選擇
StableX.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(推薦):

bash
mise use tuist@latest # Latest stable (recommended)
mise use [email protected] # Pin to a stable line; receives backported fixes only
mise use [email protected] # Pin to an exact stable patch
mise use [email protected] # Opt into a release candidate to soak it
mise use [email protected] # Opt into a specific canary build

使用 Homebrew 時,brew install --formula tuist 永遠安裝最新嘅 stable 版本;prerelease 不會透過 formula 分發。

推薦策略#

  1. 鎖定到一個 stable 分支,例如 [email protected]。該分支只接收回溯修復,絕無新功能,因此日常升級風險較低。
  2. 有意識地採用新功能。 當你準備好迎接下一個次要版本時,先喺 release candidate 渠道試用,然後將你嘅鎖定轉移到新嘅 stable 分支。
  3. 如果你係希望最早收到信號嘅早期採用者,可以喺非關鍵環境中嘗試 canary。

支援同回溯修復#

任何時候都有兩個 stable 分支處於積極維護狀態:

分支接收
當前(X.Y.x)回歸問題同安全修復
上一個(X.(Y-1).x)僅限關鍵修復同安全修復
更舊版本無 — 請升級到受維護嘅分支

修復首先會合併到 main(canary)。回歸問題同安全修復會被回溯到當前 stable 分支,而上一個分支只接收關鍵修復同安全修復。其他錯誤修復不會被回溯;它們會隨下一個次要版本發布。當新分支被提升為 stable 時,原本「當前」嘅分支會變成「上一個」,而原本「上一個」嘅分支則停止接收回溯修復。

無論使用哪個渠道,Tuist server 都與過去 3 個月內發布嘅任何 CLI 保持兼容,因此只要你喺該期間內升級,鎖定到 stable 分支就不會令你超出支援範圍。