openSUSE:Leap 开发流程
本文将为您提供 openSUSE Leap 的开发生命周期和概念的视角。它旨在解释创建 Leap 基于 SLE 的不同步骤以及如何构建发布版本。
openSUSE Leap 开发流程的概念和步骤
- Leap 版本-1 的所有维护更新都会自动推送(在版本冻结之前整个周期内)
- 所有 SLE15SPx 更新都会自动推送(在整个周期内)
- 最初来自 Factory 的所有软件包,如果希望在下一个 Leap 版本中进行更新,则应由维护者重新提交。必须牢记 Leap 的目标受众和无缝升级过程。为了支持这一点并确保没有遗漏任何内容,在生命周期内,一个工具将检查所有具有 Factory 起源的软件包,以查看它们在开发的 Leap 中是否成功构建,并执行维护者可以轻松接受的提交。未接受的请求将不被包含。
- 在整个有效时间内,来自 Factory 到 Leap 的提交将被考虑接受,如果软件包构建成功且之前未来自 SLE15。提交需要由维护者执行,或者如果没有,维护者必须批准更新。
- 如果应将软件包从 SLE15 切换到 Factory 或反之亦然,将为 leap-reviewers 组触发审查流程
- 由于某些原因从 SLE15 _和_ Factory 分叉的软件包,必须审查它们是否可以重新上游到 SLE15 或 Factory
- SLE15 或 Factory 中的新软件包应审查是否包含到 Leap 中;自动工具提交将/可能被执行
可以找到用于管理上述某些步骤的 OBS 工具:https://github.com/openSUSE/osc-plugin-factory
Leap 发布工程
发布工程日常事务
检查暂存
https://build.opensuse.org/project/staging_projects/openSUSE:Leap:15.2
osc staging -p openSUSE:Leap:15.2 list osc staging -p openSUSE:Leap:15.2 check osc staging -p openSUSE:Leap:15.2 select X package ... osc staging -p openSUSE:Leap:15.2 unselect -m "message" package ...
- 调试失败
- 检查开放的审查,例如,如果需要,联系审查团队,检查 legal-auto 在做什么,验证 repo-checker 是否未卡住等。
- 确保软件包以合理的方式分组
- 取消选择并标记为忽略当前无法暂存的请求
- 拒绝我们无法接受的请求
确保环状态良好
https://build.opensuse.org/project/dashboard/openSUSE:Leap:15.2
- 调试失败
- 触发重建
- 如果需要,添加/删除软件包
检查目标项目中的构建失败和无法解决的问题
https://build.opensuse.org/project/show/openSUSE:Leap:15.2
https://build.opensuse.org/project/status/openSUSE:Leap:15.2
- 调试原因
- 提交错误或联系维护者
- 针对随机失败触发重建
使 openQA 状态良好
https://openqa.opensuse.org/group_overview/50
- 调试失败
- 提交问题和错误
- 重新启动因 openQA 问题而失败的任务
- 为我们可以忽略的失败添加 @ttm ignore(在提交问题后)
检查仓库检查器输出中的新失败
rebuildpacs 查找具有无法安装的依赖项的软件包
https://build.opensuse.org/package/view_file/openSUSE:Leap:15.2:Staging/dashboard/rebuildpacs.openSUSE:Leap:15.2-standard.yaml(忽略 i586,它仅用于 baselibs 因此不完整)
- 调试失败
- 联系维护者或提交错误
检查 ADI 暂存
osc staging -p openSUSE:Leap:15.2 adi --by-devel
- 调试失败
- 验证软件包是否正确分组。如果需要,请移动。
- 如果需要,提醒打包者进行审查
- 拒绝没有机会或停滞不前的请求
处理 leap-reviewers 队列
osc review list -G leap-reviewers
- 确认简单的请求。
- 拒绝明显过于危险的功能更新或来源切换,尤其是来自 SLE
- 对于不明确的问题,通知发布经理
签入 ♦
osc staging -p openSUSE:Leap:15.2 accept X Y ...
- 确保将暂存中进行的更改也应用于环
- 如果需要,调整 _product 文件
错误列表
- 关注传入的错误
- 通常,错误筛选团队负责分配错误,但我们可能希望对重要错误执行此操作
- 提高重要错误的优先级和严重性
- 如果需要,设置停止发货标志