openSUSE:Build Service Concept Devel Project
开发项目定义
开发项目概念在技术上只是软件包元数据中的一个引用,用于定义软件包通常被开发和测试的项目。这可能只对需要由发布管理员验证其他人贡献的项目有用。项目上游定义不会影响构建时间或源代码管理本身,它只是用于为我们的源代码管理工具提供有用的提示,以搜索源代码的位置。
开发项目定义应
- 定义通常负责某个软件包的人员(可以是单个人员或组)(SUSE 维护者的继任者)。这通过上游项目定义中提到的项目的用户列表来实现。
- 允许工具和打包人员直接处理软件包的最新版本,而不是主发行版中可能已经过时的版本(例如 openSUSE:Factory)。
- 废除(提交)请求处理中的额外审查状态,而是由上游项目的负责人审查更改提交。
- 减少主发行版负责人的工作量,因为常规提交首先由该领域内的专家进行预处理。
实现示例
软件包元数据可以包含一个可选的
<devel project="home:adrianSuSE:Factory"/>
行。这意味着贡献者应前往 home:adrianSuSE:Factory 项目以提出更改建议。我们的工具,创建分支或请求提交时,也应默认使用此项目,假设该项目负责人负责它,审查它,并在此情况下将其提交到 openSUSE:Factory。
上游项目定义只是附加的、希望有帮助的数据。它不会限制任何操作,因此仍然可以请求直接合并到 openSUSE:Factory(例如,当上游项目的负责人没有响应时)。
用例示例
openSUSE:Factory 包更改提交
这是一个示例描述,开放讨论,描述了用户没有写入权限的情况下向项目/软件包提交更改的方式。这尤其针对 openSUSE:Factory 编写,但也可以是任何其他项目。
假设:用户想要向 openSUSE Factory 发行版添加 libqt4 包的补丁或进行版本升级。
- osc co openSUSE:Factory libqt4 ( osc co libqt4 应该隐式默认到 openSUSE:Factory 项目)
- osc 检查 开发项目 定义并接收 KDE:Qt44
- osc 检出 KDE:Qt44 libqt4(应该有一个开关来禁用 开发项目 定义)。
- 用户编辑源代码
- osc ci
- 服务器拒绝写入请求,因为 KDE:Qt44 对用户不可写
- osc 提供请求提交
- 用户说“是”
- osc 使用 API 创建自己的项目 home:<user>:Factory(用户应该能够更改选择不同的项目)
- home:<user>:Factory 针对所有 KDE:Qt44 仓库进行构建。
- osc 使用 API 创建包含源代码链接 + 补丁的 libqt4 包
- osc 创建合并请求到 KDE:Qt44
- KDE:Qt44 负责人希望进行进一步的更改并拒绝,并要求使用一些 rpm 宏作为示例。
- 请求处于拒绝状态。
- 用户同时删除了源代码,因此他再次检出 home:<user>:Factory/libqt4
- osc 应该帮助他编辑源代码并更新他的补丁,也许利用 quilt。
- osc ci 提交新的补丁并请求更改。
- osc 重新创建合并请求
- KDE:Qt44 负责人看到合并请求并接受它
- osc 命令到 api 以合并更改
- 相同的命令将合并请求标记为完成/接受
- KDE:Qt44 负责人请求稍后将更改合并到 openSUSE:Factory,也许与其他更改一起。
开发项目列表
可以在这里找到开发项目列表:https://build.opensuse.org/projects/openSUSE:Factory:Staging/packages/dashboard/files/devel_projects
也可以使用此命令显示: osc cat openSUSE:Factory:Staging dashboard devel_projects