openSUSE:维护更新流程
概述
了解维护发布的流程有助于理解流程各个步骤的重要性,并有助于提交可以快速通过流程的软件包。
以下流程图说明了维护软件包更新流程。它包括几个不同的 OBS 项目:
让我们更详细地了解一些步骤
检查 Leap 包是否从 SLE 继承
openSUSE Leap 的一些软件包与 SLE 共享。这些软件包在 SLE 更新发布后会自动合并。要检查您的软件包是否继承,您可以查看以下软件包
openSUSE Leap 15.5
openSUSE Leap 15.5 有 4 个独立的更新源。
- OSS 仓库 (openSUSE:Leap:15.5:Update):主要为品牌和配置软件包
- Non-OSS 仓库 (openSUSE:Leap:15.5:Update:NonFree):非自由但可重新分发的软件包,如 Opera
- Backports 仓库 (openSUSE:Backports:SLE-15-SP5:Update):openSUSE Leap 15.5 中所有非 SLE 软件包
- SLE 仓库 (通过 download.opensuse.org/update/leap/15.5/sle/):所有导入到 openSUSE Leap 15.5 的 SLE 二进制软件包
如何确定
osc sm PACKAGE
如果软件包来自 openSUSE:Leap:15.5:Update 或 openSUSE:Backports:SLE-15-SP5:Update,请提交到这些仓库。openSUSE 维护团队将处理它。
如果存在 SUSE:SLE-15:Update 条目(或 15-SP1、15-SP2 或 15-SP3),请提交到那里。它将被镜像到 SUSE 内部 Buildservice 并在此处处理。(注意:如果您是 SUSE 员工,请直接提交到 IBS 到列出的项目,这可以避免镜像步骤。)
编写有意义的 changelog 条目
对于 维护团队 来说,提供有意义的 changelog 条目以准备补丁文档和评级非常重要。有关详细说明,请参阅 补丁指南,但以下是重要信息列表
- Bug 引用 (boo#123456, CVE-2016-1234,...)
- 修复的简短描述
- 添加/修改/删除的补丁名称
打开维护请求
软件包准备好提交后,您需要打开一个维护请求。您可以使用以下命令实现此目的
一个软件包对应一个 openSUSE 发行版
$osc mr $prj $pkg $release_target
多个软件包对应一个 openSUSE 发行版
$osc mr $prj $list $of $packages $release_target
多个软件包对应多个 openSUSE 发行版
(这仅适用于您的软件包位于一个项目中的情况,并且这些软件包使用 '$osc mbranch $pkg' 或 '$osc branch -M $prj $pkg' 分支)
$osc mr $prj
维护团队审查
维护团队 决定是否发布更新。他们授权启动维护流程并推动流程的进行。他们直接与打包人员互动,以协调包含修复的软件包的提交。他们确保要修复的错误是实际包含在维护更新中的错误。决策过程的详细说明如下。
源代码审查
openSUSE 审查团队 按照 这些指南 对提交进行手动审查。审查团队中打算审查维护提交的人员将在每个项目的“Update”子项目中找到 SR。例如,要审查 openSUSE Leap 15.1 的提交,审查人员将在“openSUSE:Leap:15.1:Update”项目中找到提交。(参考上面的图表,请注意“openSUSE:Maintenance”项目和“openSUSE:Leap:15.1:Update”项目之间的区别。审查人员不应在“openSUSE:Maintenance”项目中查找他们的审查。)
QA 审查
openSUSE 维护更新使用 openQA 和我们的社区进行测试。我们等待大约 5 天,看看是否有问题报告,然后发布更新。
如果您想测试所有待处理的更新,您需要注册以下仓库:openSUSE Leap 15.5:
http://download.opensuse.org/update/leap/15.5-test/
(注意:这目前不包括待处理的 SLE 导入更新。)
Patchinfo
从 Leap 15.4 开始,来自 SUSE Linux Enterprise 的 Leap 部分使用 patchinfo 和专用通道。通道 是我们在 SUSE Linux Enterprise 中用于过滤和聚合从源软件包构建的二进制文件以及我们想要交付到特定产品的工具。
这种更改,在 Leap 15.5 中得到更好的整合,统一了在 Leap 和 SUSE Linux Enterprise 中交付维护更新的方式。
IBS 内部服务链接
- https://build.suse.de/package/show/SUSE:Channels/openSUSE-SLE_15.4
- https://build.suse.de/package/show/SUSE:Channels/openSUSE-SLE_15.5
鉴于 Leap 也是使用非来自 SUSE Linux Enterprise 的源代码构建的,我们有一些用于过滤不应降落在 Leap 上的来自 SUSE Linux Enterprise 的二进制文件的阻止列表(例如,品牌)。
阻止列表嵌入在用于更新的 perl 生成器脚本中:(托管在 SUSE 内部 gitlab 上)。
SUSE 内部 gitlab - tools generate-leap-15.5-channel.pl
