1 版本控制
Rails 遵循 semver 的轉換版本
修補程式 Z
僅修正錯誤,不變更 API,不新增功能。除非安全性修正有必要。
次要版本 Y
新功能,可能包含 API 變更(作為 Semver 的主要版本)。重大變更會搭配前一個次要版本或主要版本中的棄用公告。
主要版本 X
新功能,可能會包含 API 變更。Rails 次要版本和主要版本之間的差異在於重大變更的幅度,通常保留於特殊場合。
2 新功能
新功能只會新增至主分支,不會在重點版本中提供。
3 錯誤修正
只有最新的版本系列會收到錯誤修正。錯誤修正通常會新增至主分支,並在有足夠需求的情況下回傳至最新版本系列的 x-y-stable 分支。當足夠的錯誤修正已新增至 x-y-stable 分支時,會從中建置一個新的修補程式版本。例如,理論上的 1.2.2 修補程式版本會從 1-2-stable 分支建置。
在特殊情況下,如果核心團隊中的某人同意支援更多系列,則會將這些系列包含在受支援系列清單中。
對於不受支援的系列,錯誤修正可能會碰巧出現在穩定分支中,但不會在官方版本中發布。建議使用 Git 將您的應用程式指向不受支援版本所使用的穩定分支。
目前包含的系列:7.1.Z
。
4 安全性問題
如果發生安全性問題,目前的版本系列和最近一個版本系列將收到修補程式和新版本。
這些版本是透過採用最後發布的版本、套用安全性修補程式,然後發布來建立的。這些修補程式會套用至 x-y-stable 分支的結尾。例如,理論上的 1.2.2.1 安全性版本會從 1.2.2 建置,然後新增至 1-2-stable 的結尾。這表示如果您執行的是 Rails 的最新版本,則安全性版本很容易升級。
只有直接的安全性修補程式會包含在安全性版本中。因安全性修補程式而產生的與安全性無關的錯誤修正可能會發布在版本的 x-y-stable 分支上,並且只會根據錯誤修正政策以新的 gem 形式發布。
安全性版本是從最後一個安全性版本分支/標籤中剪切出來的。否則,安全性版本中可能會出現重大變更。安全性版本應僅包含確保應用程式安全的必要變更,以便應用程式更易於保持升級。
目前包含的系列:7.1.Z
、7.0.Z
、6.1.Z
。
5 個嚴重安全性問題
對於嚴重的安全性問題,目前主要系列中的所有版本,以及前一個主要系列中的最後一個版本都將收到修補程式和新版本。安全性問題的分類由核心團隊判斷。
目前包含的系列:7.1.Z
、7.0.Z
、6.1.Z
。
6 個不受支援的版本系列
當版本系列不再受支援時,處理錯誤和安全性問題就是你自己的責任。我們可能會提供修正程式的後向移植並將它們合併,但是不會發布任何新版本。我們建議使用 Git 將你的應用程式指向穩定分支。如果你不願意維護自己的版本,則應升級到受支援的版本。
7 個 npm 套件
由於 npm 的限制,我們無法使用 Rails 提供的 npm 套件 的安全性版本的第 4 個數字。這表示,npm 套件的版本將為 7.0.1-4
,而不是等效的 gem 版本 7.0.1.4
。
回饋
我們鼓勵你協助提升本指南的品質。
如果你看到任何錯字或事實錯誤,請協助修正。若要開始,你可以閱讀我們的 文件貢獻 部分。
你可能還會發現不完整或未更新的內容。請務必為 main 新增任何遺失的文件。請務必先查看 Edge Guides,以驗證問題是否已在 main 分支中修正。查看 Ruby on Rails 指南指南 以了解樣式和慣例。
如果你發現需要修正但無法自行修補的問題,請 開啟問題。
最後但同樣重要的是,任何有關 Ruby on Rails 文件的討論都非常歡迎在 官方 Ruby on Rails 論壇 進行。