edge
更多資訊請參考 rubyonrails.org: 更多 Ruby on Rails

Ruby on Rails 維護政策

Rails 框架的支援分為四個組別:新功能、錯誤修正、安全問題和嚴重安全問題。它們的處理方式如下,除了安全版本之外,都以 X.Y.Z 格式表示。

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.Z7.0.Z6.1.Z

5 嚴重安全問題

對於嚴重安全問題,將針對當前主要系列中的所有發布版本以及上一個主要系列中的最後一個發布版本進行修補程式和新版本的發布。安全問題的分類由核心團隊判斷。

目前包含的系列: 7.1.Z7.0.Z6.1.Z

6 不支援的發布系列

當一個發布系列不再受支援時,您需要自行處理錯誤和安全問題。我們可能會提供修補程式的回溯並將其合併,但不會發布新版本。我們建議使用 Git 將應用程式指向穩定分支。如果您不熟悉維護自己的版本,應該升級到受支援的版本。

7 NPM 套件

由於 npm 的限制,我們無法在由 Rails 提供的 NPM 套件 的安全版本中使用第四個數字。這意味著與等效的 gem 版本 7.0.1.4 不同,NPM 套件的版本將被命名為 7.0.1-4

回饋

歡迎協助提升本指南的品質。

如果您發現任何錯別字或事實錯誤,請貢獻您的力量。 開始之前,您可以閱讀我們的 文件貢獻 部分。

您也可能會發現不完整的內容或過時的資訊。 請為主要的文件補充任何遺漏的內容。請先檢查 Edge 指南,以確認問題是否已經修復或尚未在主分支上修復。 請參考 Ruby on Rails 指南指引 以了解風格和慣例。

如果您發現需要修復但無法自行修補的問題,請 開啟一個問題

最後但同樣重要的是,關於 Ruby on Rails 文件的任何討論都非常歡迎在 官方 Ruby on Rails 論壇 上進行。