Quarkus LTS - 新发布周期说明

Quarkus 每六个月发布一个 LTS (长期支持) 版本。LTS 版本专为优先考虑稳定性的用户设计,而非新功能。这些版本维护期为一年,并接收关键错误和 CVE 修复。重叠期允许顺利升级到下一个 LTS 版本。

到目前为止,LTS 的小版本发布 (例如 3.8.1 和 3.8.2) 曾定期进行,但没有可预测的计划。我们正在改变这一点。

简而言之: LTS 版本将遵循可预测的周期,每两个月进行一次小版本发布。 LTS 小版本发布新周期 部分提供了更多详细信息。

版本、版本,还有更多版本

自成立以来,Quarkus 一直遵循快速的版本发布周期

  • 小版本发布: 每月一次 (例如 3.16、3.17)。

  • 微版本发布: 每周一次 (例如 3.17.1、3.17.2)。

开发流程围绕主分支进行,主分支是 Quarkus 开发的最前沿。

常规发布流程如下

  • 小版本发布 (3.y): 从 `main` 分支创建一个新分支,捕获到那时为止开发的所有变更。

  • 微版本发布 (3.y.z): 这些版本仅包含从 `main` 分支回溯移植到小版本发布分支的错误修复和 CVE 修复。

regular release cadence

LTS 版本有何不同

LTS 版本优先考虑稳定性而非最新功能,其流程也反映了这一点。让我们以 3.19 (小版本发布) 和 3.20 (下一个 LTS) 为例

  1. 从 `main` 分支创建 3.19 的新分支,其中包含当时最新的开发。

  2. 为 3.19 的微版本发布将错误修复和 CVE 修复回溯移植到 3.19 分支。

  3. 在准备 LTS 版本 (3.20) 时,分支不是从 `main` 创建的。相反,它是从 3.19 分支创建的,以确保不包含 `main` 中的新功能。

这种方法通过排除可能不稳定或未经证实的变更来提高 LTS 版本的可靠性。

lts release principle

在完成初始版本发布后,我们没有关于 LTS 新微版本 (3.20.1、3.20.2...) 的明确规则。因此,虽然我们有常规微版本和小版本发布的预测性发布日历,但 LTS 微版本发布是不规律的。

LTS 小版本发布新周期

从 3.15 LTS 开始,我们将为 LTS 小版本发布引入可预测的周期

  • 每六个月发布一个新的 LTS 版本。

  • 对于每个 LTS 版本,每两个月进行一次微版本发布 (例如 3.20.1、3.20.2)。

new lts cadence

LTS 小版本发布包含什么?

LTS 小版本发布严格限制于

  • 被认为是低风险的错误修复。

  • CVE 修复 (中等和关键)。

  • 为修复 CVE 或关键错误而进行的依赖项更新。

仅此而已。

紧急例外

如果出现关键 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 页面 上公布。