更多資訊請見 rubyonrails.org:

Ruby on Rails 維護政策

Rails 框架的支援分為三組:新功能、錯誤修正和安全性問題。它們的處理方式如下,所有版本,除了安全性版本,格式為 X.Y.Z

1 版本控制

Rails 遵循修改過的 semver 版本控制

修補 Z

僅修正錯誤,無 API 變更,無新功能。除非安全性修正必要。

次要 Y

新功能,可能包含 API 變更(作為 Semver 的主要版本)。重大變更會與先前次要或主要版本中的棄用通知配對。

主要 X

新功能,可能會包含 API 變更。Rails 的次要版本和主要版本之間的差異在於重大變更的幅度,通常保留給特殊場合。

2 新功能

新功能只會新增到主分支,不會在修補程式版本中提供。

3 錯誤修正

次要版本在其系列中的首次發佈後,將接受一年的錯誤修正。例如,如果理論上的 1.1.0 版於 2023 年 1 月 1 日發佈,它將在 2024 年 1 月 1 日之前接受錯誤修正。之後,它將被視為不受支援。

錯誤修正通常會新增到主分支,並在有足夠需求時回溯到最新發佈系列的 x-y-stable 分支。當足夠的錯誤修正被添加到 x-y-stable 分支時,就會從該分支建立新的修補程式版本。例如,理論上的 1.2.2 修補程式版本將從 1-2-stable 分支建立。

對於不受支援的系列,錯誤修正可能會恰巧落在穩定分支中,但不會在官方版本中發佈。建議使用 Git 將您的應用程式指向不受支援版本的穩定分支。

4 安全性問題

次要版本在其系列中的首次發佈後,將接受兩年的安全性修正。例如,如果理論上的 1.1.0 版於 2023 年 1 月 1 日發佈,它將在 2025 年 1 月 1 日之前接受安全性修正。之後,它將達到其生命週期終止。

這些版本是透過取得最後發佈的版本、應用安全性修補程式並發佈來建立的。然後將這些修補程式應用於 x-y-stable 分支的末端。例如,理論上的 1.2.2.1 安全性版本將從 1.2.2 建立,然後新增到 1-2-stable 的末端。這表示如果您執行的是最新版本的 Rails,安全性版本很容易升級。

安全性版本中僅包含直接安全性修補程式。因安全性修補程式導致的非安全性相關錯誤的修復可能會發佈在版本的 x-y-stable 分支上,並且僅會依照錯誤修正政策發佈為新的 gem。

安全性版本是從最後一個安全性發佈分支/標籤切割出來的。否則,安全性版本中可能會出現重大變更。安全性版本應僅包含確保應用程式安全所需的變更,以便應用程式更容易保持升級。

5 生命週期終止版本系列

當發佈系列達到其生命週期終止時,您有責任自行處理錯誤和安全性問題。我們可能會提供修正程式的回溯並合併它們,但是不會發佈任何新版本。建議使用 Git 將您的應用程式指向穩定分支。如果您不習慣維護自己的版本,則應升級到受支援的版本。

6 發佈時程

我們的目標是每六個月發佈一個包含新功能的版本。在罕見的情況下,如果一年內沒有發佈任何版本,我們將延長先前版本的支援期限,直到下一個版本發佈。

7 npm 套件

由於 npm 的限制,我們無法對 Rails 提供的 npm 套件的安全性版本使用第四位數。這表示 npm 套件的版本將為 7.0.104,而不是等效的 gem 版本 7.0.1.4

版本的計算方式為 X.Y.Z0A,其中 A 是安全性版本。



返回頂部