Quarkus LTS - 新发布周期说明
Quarkus 每六个月发布一个 LTS (长期支持) 版本。LTS 版本专为优先考虑稳定性的用户设计,而非新功能。这些版本维护期为一年,并接收关键错误和 CVE 修复。重叠期允许顺利升级到下一个 LTS 版本。
到目前为止,LTS 的小版本发布 (例如 3.8.1 和 3.8.2) 曾定期进行,但没有可预测的计划。我们正在改变这一点。
版本、版本,还有更多版本
自成立以来,Quarkus 一直遵循快速的版本发布周期
-
小版本发布: 每月一次 (例如 3.16、3.17)。
-
微版本发布: 每周一次 (例如 3.17.1、3.17.2)。
开发流程围绕主分支进行,主分支是 Quarkus 开发的最前沿。
常规发布流程如下
-
小版本发布 (3.y): 从 `main` 分支创建一个新分支,捕获到那时为止开发的所有变更。
-
微版本发布 (3.y.z): 这些版本仅包含从 `main` 分支回溯移植到小版本发布分支的错误修复和 CVE 修复。

LTS 版本有何不同
LTS 版本优先考虑稳定性而非最新功能,其流程也反映了这一点。让我们以 3.19 (小版本发布) 和 3.20 (下一个 LTS) 为例
-
从 `main` 分支创建 3.19 的新分支,其中包含当时最新的开发。
-
为 3.19 的微版本发布将错误修复和 CVE 修复回溯移植到 3.19 分支。
-
在准备 LTS 版本 (3.20) 时,分支不是从 `main` 创建的。相反,它是从 3.19 分支创建的,以确保不包含 `main` 中的新功能。
这种方法通过排除可能不稳定或未经证实的变更来提高 LTS 版本的可靠性。

在完成初始版本发布后,我们没有关于 LTS 新微版本 (3.20.1、3.20.2...) 的明确规则。因此,虽然我们有常规微版本和小版本发布的预测性发布日历,但 LTS 微版本发布是不规律的。
LTS 小版本发布新周期
从 3.15 LTS 开始,我们将为 LTS 小版本发布引入可预测的周期
-
每六个月发布一个新的 LTS 版本。
-
对于每个 LTS 版本,每两个月进行一次微版本发布 (例如 3.20.1、3.20.2)。

紧急例外
如果出现关键 CVE (因为我们知道它会发生),我们将发布一个紧急小版本发布,该发布将超出两个月的周期。这些发布可能遵循单独的版本控制方案 (例如 3.20.0.1),以表明其特殊性 (仍在讨论中)。
如果?
如果我想要下一个 LTS 中的某个功能怎么办?
要包含在内,该功能必须在创建 LTS 分支前至少一个月合并到 `main` 分支。不要赶时间 - 功能合并可能需要时间,而且 CI 在发布前通常很忙。
如果我想将某个功能添加到现有的 LTS 版本中怎么办?
不行。 新功能仅包含在未来的 LTS 版本中。如需立即使用,请考虑使用常规 (非 LTS) 版本。
如果下一个 LTS 小版本需要一个错误修复怎么办?
我们乐于考虑回溯移植错误修复,前提是它们是低风险的。高风险的修复将需要进一步讨论,并且可能不包含在内。我们将特别考虑影响先前 LTS 版本功能的错误。
如果我想知道下一个 LTS 小版本包含什么怎么办?
我们正在建立一个 LTS 工作组,以提高透明度并跟踪回溯移植。
如果报告了一个针对 LTS 的中等 CVE 怎么办?
下一个 LTS 小版本将每两个月包含一次中等 CVE 修复。紧急发布仅针对重要 (无缓解措施) 和关键 CVE。
Quarkus Platform 将如何与此周期保持一致?
Quarkus Platform 将遵循相同的发布计划。如果您是平台成员,我们建议您订阅此协调组 (如果您尚未这样做)。
两行总结
-
对于普通用户:月度小版本发布和每周微版本发布将照常进行。
-
对于 LTS 用户:每 6 个月会有 LTS 版本发布,每 2 个月会有微版本发布。
下一个 LTS 版本将是 3.20。日期和计划会在 版本计划 Wiki 页面 上公布。