首页 > 其他分享 >快速掌握OpenHarmony社区贡献新流程

快速掌握OpenHarmony社区贡献新流程

时间:2023-06-06 11:03:45浏览次数:50  
标签:PR OpenHarmony 社区 检视 状态 处理 标签 流程 Issue

10分钟快速掌握OpenHarmony社区贡献新流程

为提升Issue和PR(Pull Request)的处理效率,OpenHarmony社区优化了Issue和PR处理流程,新支持了一系列交互命令和状态标签,用于明确处理阶段和当前处理责任人。社区CI Bot工具还提供了待办事项提醒能力,并能自动处理超期无效Issue和PR。流程交互更加友好,基于交互提示,可以获知下一步需要如何操作。本文会对社区贡献流程优化点进行介绍,不管您是社区贡献的老专家还是初涉开源社区的新手,都有必要花几分钟快速熟悉下OpenHarmony社区贡献流程的新优化点。流程也在持续优化中,如有变化,请以最新的为准。

需要注意的是,流程优化是为了辅助社区参与者提升处理效率,不会影响既有流程。如果不使用新支持的交互命令和状态标签,也可以使用既有流程正常处理Issue和PR。但是强烈推荐大家使用这些新优化功能,通过可以明确当前处理人,让Issue和PR更及时地得到响应处理。

1、新流程能解决什么问题

先回顾下社区Issue和PR处理时存在的问题痛点。经常关注社区的开发者会注意到,社区上未闭环的Issue和PR数量比较多,处理速度也比较缓慢。导致Issue和PR不能有效处理的原因主要是:社区Issue和PR未规范处理,比如Issue描述不规范,缺少详细描述、验证步骤等关键信息;PR门禁编译失败、格式检测失败、门禁检查失败,DCO失败、未参考检视意见修改等导致不能合入。社区Issue和PR处理流程也存在一些改进点,可以提升Issue和PR处理效率,比如当前缺少Issue责任人精准分配;缺少机制分配PR检视人,PR处理阶段不清晰;缺少处理超期时主动提醒功能等;对超期的Issue和PR不能自动处理等。

OpenHarmony社区为解决上述问题,对Issue和PR处理流程进行了优化,主要包含:

  • 标记状态标签明确处理阶段责任人

    通过标记状态标签识别处理责任阶段、明确处理人。如果Issue和PR提交不规范,会有标签显示当前处理责任人为提交人;如果提交的PR通过门禁测试,等待审核检视,当前处理责任人为committer;如果已分配检视人员,当前处理责任人就是代码检视人员,等等。

  • 主动提醒责任人处理待办事项

    CI Bot会发邮件每日提醒责任人处理名下的待办事项。是否接收邮件可以通过订阅配置。

  • 超期问题自动处理

    基于规则,对于一些可以自动处理的情况进行分析,进行自动化处理。比如,对于验收中的Issue,如果长期未确认,会自动进行关闭;对于门禁未通过等情况导致不符合合入标准的PR,超过一定时间,会自动关闭。

OpenHarmony社区通过这些流程优化来提升Issue和PR处理效率,下文会详细介绍流程的优化点和具体使用方法。

2、新流程介绍

以PR流程为例介绍新流程,如图1所示。我们按状态标签来分别讲解,也可以参考OpenHarmony社区Pull Request&Issue评论支持命令清单

2.1 Waiting_On_Author状态标签

PR提交人(社区贡献者)创建PR后,PR的标签为Waiting_On_Author,表示当前的责任人为PR提交人。CI Bot会提醒PR提交人及时处理该PR。如果PR提交人长时期未处理该PR,CI Bot会进行自动关闭。

如果PR提交人触发门禁构建,构建失败后,PR的标签依旧为Waiting_On_Author状态。如果检视人员或committer审核人员提交了检视意见,PR的标签会被标记为Waiting_On_Author状态。

2.2 Waiting_For_Review状态标签

当PR提交人评论start build(仓库配置门禁时使用该命令,如果未配置门禁,请使用code review命令),并且门禁构建成功后,PR的状态标签替代为Waiting_For_Review状态,表示表示当前的责任人为committer审核人员,需要由committer分配检视人员。CI Bot可以每日邮件定时提醒待办事项,催促分配检视人员。

2.3 Reviewing状态标签

Committer可以通过assign [@gitee_id1 @gitee_id2...]分配检视人员,可以通过空格分割来指定多个检视人员;如果命令中不指定gitee_id,committer安排自己为检视人员。分配检视人员后,PR的状态标签替代为Reviewing状态,表示当前的责任人为代码检视人员。

分配的检视人员需参与检视,给出检视意见,然后评论命令check comment提醒PR提交人处理;无检视意见时,评论命令lgtm,提醒committer审核处理。

2.4 Waiting_For_Merge状态标签

当所有检视人员均对分配的PR没有检视意见时,并在PR评论区评论命令lgtm后,CI Bot会提醒committer去审核该PR。此时,PR的状态标签变换为Waiting_For_Merge状态,表示当前的责任人为committer审核人员。

2.5 Merged 状态标签

对于Waiting_For_Merge状态标签的PR, 当committer审核通过后,PR的状态标签会自动变换为Merged状态,表示该PR成功合入。

图1 PR审核处理流程图

pr_process.jpg

3、流程处理实例讲解

本节以Pull Request处理流程来讲解,按PR的处理阶段分别来讲解。

3.1 提交修改Pull Request

当PR提交人提交一个PR后,CI Bot会自动评论,如下所示。根据提示,如果代码已经开发完毕,PR提交人在PR评论区评论start build来触发门禁。在触发门禁前状态标签为Waiting_On_Author,当前的处理责任人为PR提交人。

图2 新PR交互截图

new_pr.jpg

如果审核检视人员为PR提交检视意见后,PR的状态标签变为Waiting_On_Author,需要PR提交人优化修复提交的代码。当处理完毕,重新推送代码后,需要重新触发门禁。

注意:如果代码仓没有配置门禁,提示的内容稍有不同,需要评论的命令是code view

3.2 门禁构建

在门禁通过后,PR的状态标签会替代为Waiting_For_Review状态,如下图所示。此后,该PR的处理责任人为代码仓的Committer。Committer会负责分配检视人员或者审核该PR。

图3 门禁构建成功截图

ci_build.jpg

3.3 代码检视

当一个PR处于Waiting_For_Review状态时,Committer可以使用assign命令分配给检视人员进行检视,如下图所示。命令assign的具体用法,可以参考上一小节图片中的操作提示。当分配完毕检视人员,PR的状态标签会替代为Waiting_For_Review状态,当前的处理责任人为分配的检视人员。

图4分配检视人员截图

pr_assign.jpg

如果检视人员发现检视的PR存在问题,提出检视意见后,需要评论下check comment通知PR提交人根据检视意见进行修改。PR的状态标签会替代为Waiting_On_Author状态,当前的处理责任人为PR提交人。

图5提醒处理检视意见截图

pr_check_comment.jpg

如果PR不存在问题,检视人员认为可以合入,需要评论下lgtm即(look good to me)通知Committer审核合入该PR。PR的状态标签会替代为Waiting_For_Merge状态,当前的处理责任人为Committer。

图6提醒审核合入截图

pr_lgtm.jpg

3.4 审核合入

当代码仓Committer认为PR满足合入要求,审核通过后,PR会合入,此时PR的状态标签会替代为Merged状态,PR成功合入。

图7审核合入截图

pr_merge.jpg

4、CI Bot待办提醒

通过状态标签识别当前处理责任人后,就可以获取责任人的待办事项。通过记录打标签的开始时间,就可以计算当前处理阶段停留时间,从而可以发邮件提醒及时处理待办事项,并能自动化处理超期无效的Issue和PR。发邮件功能可以自行选择是否订阅。

4.1 每日待办提醒

如果您在社区有待办事项,社区会自动汇总并自动发邮件给您,提醒您及时处理。如果不想收到邮件,可以取消订阅。强烈推荐您保持订阅,可以及时收到在社区的待办事项。下图为收到的待办事项邮件示例。

图8 待办事项邮件截图

ci_mail.jpg

4.2 自动超期处理

对于PR,审核检视人员需要及时响应处理;PR提交人也需要及时响应反馈的检视意见,如果长期未响应,不符合合入标准的PR,会在30天后被自动关闭。这样做是为了保持一个干净的社区贡献环境,也不用担心丢失代码,被关闭的PR也可以很容易被PR提交人重新打开。对于Issue,如果社区审核人员认为需要补充信息,非问题,以及需要issue验收确认时,如果issue提交人30天未响应,也会被自动关闭处理。在关闭之后,会提醒,请保持关注Issue和PR的变更信息。如下图所示:

图9 自动超期处理截图

ci_auto_close.jpg

5、小结

本文对OpenHarmony社区贡献流程优化点进行了介绍,包含新支持的一系列交互命令和状态标签,以及CI Bot的每日待办事项邮件、自动超期处理等。如有疑问,欢迎随时来社区反馈。

本文作者:zhushangyuan_

想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com/#bkwz​

标签:PR,OpenHarmony,社区,检视,状态,处理,标签,流程,Issue
From: https://blog.51cto.com/harmonyos/6422774

相关文章

  • “陇上食安APP”【日管控、周排查、月调度】操作流程
    移动端第一步:下载“陇上食安APP”方式1:直接点击链接点我下载方式2:手机扫码一定记得下载【商户端】!第二步:登录APP打开安装的【陇上食安APP】账号是:个人的手机号密码是:root2021@如果密码错误,或者账号不合适,联系我第三步:点【企业自律】中的【主体责任】新增如管控......
  • 使用Node.js搭建的微服务器基本流程
    前言使用Node.js搭建的微服务器,处理注册登录操作的流程详解。主要包括注册,登录两大模块。Node.js项目的搭建基于Express框架mongodb数据库搭建的Web服务器基本配置1.初始化Node.js项目`npminit`2.项目目录结构3.项目结构介绍config:保存项目一些公共的配置db......
  • 龙蜥社区 5 月度运营大事件回顾
    各位龙蜥社区的朋友们,你们好!5月运营月报来啦!从龙蜥看点、龙蜥生态、龙蜥活动、龙蜥SIG月度动态、精彩内容推荐等几方面总结、回顾了5月发生的重要事件。以下是社区运营报告,也欢迎更多的开发者加入,与我们一起打造面向云时代的操作系统。......
  • 客户至上 服务至极 ——优维服务流程标准化体系
    ◎如何用服务打动客户?在思考这个问题之前,首先我们要了解做好服务最难的是什么?众所周知,由机器作业出来的东西是一致且规范的,而服务不一样。服务,是需要人来参与的,当由不同的人来完成某件事的时候,就会出现差异。所以,服务最难的就是交付物的一致性。那么,如何实现交付物的一致性,那就是......
  • 微软WHQL徽标认证是什么?流程有哪些?
    有很多人不了解什么是微软WHQL徽标认证,也不知道为什么要进行微软WHQL认证。其实这是基于微软的一项政策:2021年4月底起,微软开始不再接受代码签名证书给驱动程序进行数字签名,取而代之的是需要对驱动程序做WHQL认证。驱动程序通过WHQL认证之后,可以确保硬件设备能够在Windows系统中......
  • springmvc架构流程
    1、 用户发送请求至前端控制器DispatcherServlet2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 DispatcherServlet通过HandlerAdap......
  • matlab结构化程序设计流程结构
    一、条件转移结构基本形式:f条件表达式语句段end执行流程:若表达式条件成立,执行语句段,否则跳过语句段的执行。若需要多条件转移,一般是三个或以下:if条件表达式1语句段1elseif条件表达式2语句段2else 语句段3end注意事项:if或else中的语句无需{}包围......
  • PMP - 针对考试的重点流程
    30岁之后还敲代码吗?我不想敲代码啦,先考个PMP吧!也不知道自己合不合适!咱国内就没有35岁以上的女程序员吧!其实大概在2017到2018年期间,我也做个半年多的项目经理。说起那段经历,毕业刚一年,刚刚入行前端,刚刚才独立完成一个小项目。最让感觉到压力的事情,是在跟客户的时候,我就特别......
  • GEE代码备份流程记录
    GEE代码备份流程记录这篇文章参考是穆老师的文章:GEE代码批量保存至本地(中秋快乐版)打开源码网址,将下面的YourUsername换成自己的用户名。https://earthengine.googlesource.com/users/YourUsername/或者通过下面的方法查看该网址:打开代码库分享设置,Gitclone后面的网址就是。......
  • 流程控制
    if语句if语句用于条件判断,满足条件时,就执行指定的语句。if(expression)statement上面式子中,表达式expression为真(值不为0)时,就执行statement语句。if后面的判断条件expression外面必须有圆括号,否则会报错。语句体部分statement可以是一个语句,也可以是放在大括号里面的复合语句。......