跳到內容

發佈政策

Crystal 的發佈版本使用主版本號、次版本號和修補版本號來表示。

目前的主分支版本號是 1

新功能會新增到次版本發佈 (1.x.0) 中,它們會定期排程,每三個月發佈一次。

修補版本僅包含重要的錯誤修正,並在必要時發佈。它們通常只會出現在最新的次版本分支中。

新的發佈版本會在 crystal-lang.org/releases 上公告 (RSS feed)。

目前沒有計畫發佈新的主版本。

向後相容性

次版本和修補版本是向後相容的:在給定版本中定義完善的行為和文件化的 API,會在同一個主分支的未來版本中繼續運作。

因此,遷移到新的次版本通常是無縫的。

保留條款

雖然我們預期絕大多數的程式會隨著時間的推移保持相容性,但無法保證未來不會有任何變更會破壞任何程式。在某些不太可能發生的情況下,我們可能會引入破壞現有程式碼的變更。請放心,我們致力於將影響降到最低。

  • 安全性:實作中可能會出現安全性問題,需要透過向後不相容的變更來解決。我們保留解決此類安全性問題的權利。

  • 錯誤:如果 API 有不想要的行為,則如果修復該錯誤,則依賴於該錯誤行為的程式可能會中斷。我們保留修復此類錯誤的權利。

  • 編譯器前端:可以對編譯器進行改進,為模稜兩可的模式引入新的警告,並提供更詳細的錯誤訊息。當使用 --error-on-warnings 進行建置時,可能會導致編譯錯誤;或是在斷言特定錯誤訊息時,導致工具失敗(儘管應該避免這種情況)。我們保留進行此類改進的權利。

  • 功能新增:當將新功能引入到語言或核心函式庫時,可能會與使用者程式碼中定義的型別、方法等名稱發生衝突。我們保留在必要時新增名稱的權利。

變更日誌和發佈說明會強調任何對破壞現有程式碼具有相當大潛力的變更,即使該程式碼使用實驗性、未文件化或不受支援的功能。

實驗性功能

相容性保證的唯一例外是實驗性功能,它們會使用 @[Experimental] 註解明確指定為實驗性。在它們穩定之前(屆時會刪除註解)沒有相容性保證。