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