LTS 发布线

目录

每周的 Jenkins 发布版能够快速地为那些需要它的用户和插件开发者提供 Bug 修复和新功能。但是对于更保守的用户来说,最好坚持使用一个变化不那么频繁,并且只接收重要 Bug 和安全相关的修复的发布线,即使该发布线在功能方面有所滞后。许多公司维护着自己 Jenkins 的私有分支,用于稳定化和内部定制。我们鼓励大家将一部分精力转移到这个发布线上。

这被称为 Jenkins 的 长期支持 发布,或 LTS。这个概念与 Ubuntu 中的 LTS 概念非常相似,我们的模型如下所述。

模型

每 12 周,社区会通过共识选择一个相对较近的发布版本,并将其标记为下一个“稳定但较旧”的发布线的基线。假设这个版本是 X。我们将从 X 创建一个分支,以生成稳定但较旧的补丁发布版本 X.1X.2X.3。对这个分支的更改将仅限于从主线回迁(cherry-pick)的、经过“实战检验”的 Bug 修复——即那些已经出现在主线发布版中一个多星期的提交。一个基线会有 3 个次要版本发布,以四周为一个周期发布。发布候选版在次要版本发布前两周发布。

下表展示了 12 周周期内的发布日期

0 2 4 6 8 10 12 14 16 18 20 22 24
Release W.3 X.1 RC X.1 X.2 RC X.2 X.3 RC X.3 Y.1 RC Y.1 Y.2 RC Y.2 Y.3 RC Y.3
基线选择 选择 Y 选择 Z

存在两周的回迁期,随后是两周的发布候选测试期,最终发布 X.1。回迁和 RC 测试重复两次,生成 X.2 和 X.3。这结束了给定基线的周期,并立即基于第 10 周选择的新基线开始新周期。

基线发布版本在被选中时通常在 0-3 周之间,因此 X.1 LTS 发布版大约在基线发布后 6-9 周发布。

请参阅 活动日历,了解近期具体的 LTS RC/发布日期。

回迁流程

任何用户都可以通过标记 lts-candidate 来提议将某个问题回迁到 LTS。

要标记一个没有写权限的仓库中的问题或拉取请求,请添加一个带有 /label lts-candidate 的评论。

为了使一个问题有资格回迁,它应该是一个针对重要 Bug 的、小巧、看起来安全、无争议的修复,并且不改变 API 接口。回迁候选版本应该在 LTS 版本发布前,先在一个 weekly 发布版中发布。此外,如果库中包含一个不影响 Jenkins 的公开 CVE,也可以考虑回迁库更新(如果 Jenkins 通过某个库存在漏洞,则适用 安全流程)。回迁者可以使用 这个查询来列出已解决但需要处理的问题。

除了上述模型外,回迁者还会进行一些主观选择——例如,修复是否容易且安全进行回迁、对修复的信心、问题的严重性/影响、回迁窗口还剩多少时间等等。

如果回迁成功,会应用类似 2.46.2-fixed 的标签,以告知用户它将包含在哪个 LTS 版本中。如果回迁被拒绝,则使用类似 2.46.2-rejected 的标签,表示该问题将不会回迁到该特定版本——但仍有可能在后续的 LTS 版本中被采纳。

在发布线之间切换

由于 Jenkins 内部存储数据的方式,用户通常可以升级到更新的版本,但不能降级到旧版本。在 LTS 的背景下,基线几乎总是决定 Jenkins 控制器可以迁移到另一个发布线的哪个版本的决定因素。

从 LTS 切换到 Weekly

确保您要迁移到的 weekly 版本发布日期晚于您要迁移的 LTS 版本。

我们建议从 LTS 迁移到 Weekly 的用户使用最新的 weekly 版本,以确保他们拥有最新的功能和修复。

从 Weekly 切换到 LTS

确保您要迁移到的 LTS 基线版本比您要迁移的 weekly 版本更新(按数字比较)。例如,如果您使用的是 Jenkins 2.5、2.18 或 2.46,您可以升级到 Jenkins LTS 2.46.x 而不会出现重大问题。但是,如果您使用的是 Jenkins 2.47 或 Jenkins 2.56,即使特定的 LTS 版本发布日期晚于您使用的 weekly 版本,您在降级到 Jenkins LTS 2.46.x 时也可能会遇到问题。

切换更新站点

Jenkins 项目运行着多个更新站点,它们会告知 Jenkins 有关 Jenkins 和插件的可用更新。由于 Jenkins 在请求新数据时会发送其当前版本,因此 URL 可以用于所有 Jenkins 版本,并且将始终提供最合适的更新信息。例如,运行 Jenkins LTS 版本的控制器将只会被提供 LTS 版本的 Jenkins 更新。请访问 updates.jenkins.io 了解更多信息。

在切换发布线后,建议通过在插件管理器中点击“立即检查”按钮来更新 Jenkins 中缓存的更新站点元数据(更详细的说明 在此)。否则,Jenkins 可能会提供不兼容的插件更新或安装。

© . This site is unofficial and not affiliated with The Linux Foundation.