社区代码PR指南

写在最前面

openUBMC的组件代码仓库均被SIG组进行管理,按照不同的功能领域分为不同的SIG组进行管理。具体SIG组以及组件的管理范围请参考( SIG中心 | openUBMC)

社区上进行代码开发,那么避免不了提交PR。openUBMC社区提交代码PR需要满足以下条件:

  • 提交的PR描述需要采用统一的范式
  • 提交的PR必须关联issue
  • 【可选】提交的PR涉及接口则需要在PR的描述中增加 interface SIG 的评审帖链接(评审帖必须是关闭状态)

PR描述范式

PR提交之时,意味着当前的代码仓库中的文件必定发生了变化,那么PR的描述上就要做到 言之有物。常见的变化场景有两种:

  • 修复问题类:对于历史代码中存在的问题进行修复,情况包括但不限于:代码错误,拼写错误,文档资料错误,功能错误等
  • 新增功能类:相比于历史代码,需要新增加代码来支持新的功能,情况包括但不限于:新的特性支持,新的规范支持,新的硬件支持,新的接口支持等

因此,针对上述两种场景,PR的描述范式参考如下:

  • 修复问题类【修改描述】修复XXX问题,比如:修复Redfish查询版本的提示显示问题
  • 新增功能类【修改描述】支持XXX功能,比如:支持Redfish接口查询BMC厂商

PR必须关联issue

PR提交之时,意味着当前的代码仓库中的功能必定发生了变化,那么PR在结构上就要做到 言之有据。因此对应的PR提交时必须要关联 issue

关联 issue

具体的 PR 关联 issue 的地方如下图,点击之后会弹出当前组件仓库未关闭的 issue:

那么就有另外一个问题:如果当前未关闭的 issue 中没有当前 PR 需要的 issue 时如何处理?
答复就是:新建一个 issue

创建 issue

第一步,在对应的代码仓库的首页,进入到 issue 页面(如下图),然后点击 新建 issue

第二步,选择对应的 issue 模板,如下图:

第三步,填写 issue 的内容,并且点击 创建,如下图:

填写说明:

  • issue 类型:根据上面说的 #PR描述范式 来进行填写,如果是修复问题,则选择 缺陷;如果时新增功能,则选择 需求。(备注:当前 任务 类型暂时不需要选择)
  • 负责人:可以配置自己,或者是期望谁来解决这个问题的人
  • 标题:当前 issue 的标题,就一句话具体描述问题,或者需求(尽量描述成句子)
  • 内容:当前 issue 具体的内容,如果是问题,则可以根据三要素原则(背景,现象,预期)描述当前的问题;如果是需求,则可以根据结构化进行描述(包括但不限于需求是什么,给谁用,怎么用,在哪儿用,有什么规格限制等)

【可选】接口的变更类PR关联评审纪要

常见的接口变更类型

  • 资源协作接口,包括资源协作类,属性,方法,信号,错误引擎
  • 北向接口,包括:CLI/Redfish/WebUI/WebRest/SNMP
  • 配置类接口,包括:定制化项,配置导入导出项
  • 其他接口,包括:协作接口或者私有类型的CSR配置,持久化配置

PR提交要求以及指导

对于接口的变更类PR(如:接口新增,修改,行为变化,返回信息,错误码等),在PR的描述中需要增加对应的 interface SIG 的评审帖子链接,PR合入的前提是帖子已经进行评审并且归档关闭。

PR提交样例

PR:bmc.kepler.CertificateService.CA资源下新增RedfishSchemaVersion属性

2 个赞

如何在PR中关联其他仓库的issue?

1个issue需要几个仓库协同解决时,避免在多个仓库提交多个重复的issue,可以在不同仓库的PR关联同一个issue。
gitcode不支持PR直接关联其他仓库的issue,只能通过issue反向关联其他仓库的PR。

操作指导

  1. 找到需要关联issue所在的仓库
  2. 进入issue页面,点击进行对应的issue详情页
  3. 在右侧边栏,点击关联PR栏的齿轮按钮
  4. 搜索关联PR的仓库,点击对应仓库
  5. 再勾选需要关联的PR
1 个赞

请问下如果是提交关于QA仓的测试报告呢,这个issue是新增的issue,还是pr关联到需求的issue

关联到对应的需求issue即可,这样子查找起来都比较方便

1 个赞