點(diǎn)擊藍(lán)字 ╳ 關(guān)注我們
1、新流程能解決什么問(wèn)題
先回顧下社區(qū)Issue和PR處理時(shí)存在的問(wèn)題痛點(diǎn)。經(jīng)常關(guān)注社區(qū)的開(kāi)發(fā)者會(huì)注意到,社區(qū)待處理的Issue和PR數(shù)量多的時(shí)候,處理速度會(huì)變得緩慢。導(dǎo)致Issue和PR不能有效處理的原因主要有:從社區(qū)貢獻(xiàn)者一側(cè)來(lái)分析,社區(qū)Issue和PR未規(guī)范提交,比如Issue描述不規(guī)范,缺少詳細(xì)描述和驗(yàn)證步驟等關(guān)鍵信息;PR門禁編譯失敗、格式檢測(cè)失敗、門禁檢查失敗,DCO失敗、未參考檢視意見(jiàn)修改等,這些因素都會(huì)導(dǎo)致請(qǐng)求無(wú)法被處理而不能被合入。從社區(qū)貢獻(xiàn)流程側(cè)來(lái)分析,社區(qū)Issue和PR處理流程也存在一些改進(jìn)點(diǎn),比如當(dāng)前缺少Issue責(zé)任人精準(zhǔn)分配;缺少機(jī)制分配PR檢視人,PR處理階段不清晰;缺少處理超期時(shí)的主動(dòng)提醒功能等;對(duì)超期的Issue和PR,系統(tǒng)不能自動(dòng)處理等。
OpenHarmony社區(qū)為解決上述問(wèn)題,對(duì)Issue和PR處理流程進(jìn)行了優(yōu)化,主要包含:
●標(biāo)記狀態(tài)標(biāo)簽,明確處理階段責(zé)任人
通過(guò)標(biāo)記狀態(tài)標(biāo)簽識(shí)別處理責(zé)任階段、明確處理人。如果Issue和PR提交不規(guī)范,會(huì)有狀態(tài)標(biāo)簽顯示當(dāng)前處理責(zé)任人為提交人;如果提交的PR通過(guò)門禁測(cè)試,等待審核檢視,當(dāng)前處理責(zé)任人為Committer;如果已分配檢視人員,當(dāng)前處理責(zé)任人就是代碼檢視人員等。
●主動(dòng)提醒責(zé)任人處理待辦事項(xiàng)
CI Bot會(huì)發(fā)郵件每日提醒責(zé)任人處理名下的待辦事項(xiàng)。強(qiáng)烈建議社區(qū)貢獻(xiàn)者訂閱Issue和PR的狀態(tài)變化通知,這樣就會(huì)接收系統(tǒng)的自動(dòng)提醒。
●超期問(wèn)題自動(dòng)處理
基于規(guī)則,對(duì)于一些可以自動(dòng)處理的情況進(jìn)行分析,進(jìn)行自動(dòng)化處理。比如,對(duì)于驗(yàn)收中的Issue,如果長(zhǎng)期未確認(rèn),系統(tǒng)會(huì)自動(dòng)進(jìn)行關(guān)閉;對(duì)于門禁未通過(guò)等情況導(dǎo)致不符合合入標(biāo)準(zhǔn)的PR,超過(guò)一定時(shí)間,也會(huì)自動(dòng)關(guān)閉。
OpenHarmony社區(qū)通過(guò)這些流程優(yōu)化來(lái)提升Issue和PR處理效率,下文會(huì)詳細(xì)介紹流程的優(yōu)化點(diǎn)和具體使用方法。
2、新流程介紹
以PR提交與審核流程為例,如圖1所示,我們按狀態(tài)標(biāo)簽進(jìn)行講解,開(kāi)發(fā)者們也可以參考
https://gitee.com/openharmony/community/blob/master/zh/infrastructure/build_command.md
PR提交人(社區(qū)貢獻(xiàn)者)創(chuàng)建PR后,PR的標(biāo)簽為Waiting_On_Author,表示當(dāng)前的責(zé)任人為PR提交人。CI Bot會(huì)提醒PR提交人及時(shí)處理該P(yáng)R。如果PR提交人長(zhǎng)時(shí)期未處理該P(yáng)R,CI Bot會(huì)進(jìn)行自動(dòng)關(guān)閉。
如果PR提交人觸發(fā)門禁構(gòu)建,構(gòu)建失敗后,PR的標(biāo)簽依舊為Waiting_On_Author狀態(tài)。如果檢視人員或Committer審核人員提交了檢視意見(jiàn),需要社區(qū)貢獻(xiàn)者去查看、修復(fù),PR的標(biāo)簽會(huì)被標(biāo)記為Waiting_On_Author狀態(tài)。
當(dāng)PR提交人評(píng)論命令start build(倉(cāng)庫(kù)配置門禁時(shí)使用該命令,如果未配置門禁,請(qǐng)使用code review命令),并且門禁構(gòu)建成功后,PR的狀態(tài)標(biāo)簽替代為Waiting_For_Review狀態(tài),表示當(dāng)前的責(zé)任人為Committer審核人員,需要由Committer分配檢視人員。CI Bot可以每日郵件定時(shí)提醒待辦事項(xiàng),催促Committer分配檢視人員。
Committer可以通過(guò)命令assign [@gitee_id1 @gitee_id2...]分配檢視人員。使用該命令時(shí),Committer可以通過(guò)空格分隔來(lái)指定多個(gè)檢視人員;如果命令中不指定gitee_id,Committer則安排自己為檢視人員。分配檢視人員后,PR的狀態(tài)標(biāo)簽變換為Reviewing狀態(tài),表示當(dāng)前的責(zé)任人為代碼檢視人員。
分配的檢視人員需參與檢視,給出檢視意見(jiàn),然后評(píng)論命令check comment提醒PR提交人處理;無(wú)檢視意見(jiàn)時(shí),評(píng)論命令lgtm,提醒Committer審核處理。
當(dāng)所有檢視人員均對(duì)分配的PR沒(méi)有檢視意見(jiàn)時(shí),并在PR評(píng)論區(qū)評(píng)論命令lgtm后,CI Bot會(huì)提醒Committer去審核該P(yáng)R。此時(shí),PR的狀態(tài)標(biāo)簽變換為Waiting_For_Merge狀態(tài)。
對(duì)于Waiting_For_Merge狀態(tài)標(biāo)簽的PR, 當(dāng)Committer審核通過(guò)后,PR的狀態(tài)標(biāo)簽會(huì)自動(dòng)變換為Merged狀態(tài),表示該P(yáng)R成功合入。
3、流程處理實(shí)例講解
本節(jié)以Pull Request處理流程為例,按處理階段分別進(jìn)行講解。
當(dāng)PR提交人提交一個(gè)PR后,CI Bot會(huì)自動(dòng)評(píng)論,如下圖所示。根據(jù)提示,如果代碼已經(jīng)開(kāi)發(fā)完畢,PR提交人在PR評(píng)論區(qū)評(píng)論start build來(lái)觸發(fā)門禁。在觸發(fā)門禁前狀態(tài)標(biāo)簽為Waiting_On_Author,當(dāng)前的處理責(zé)任人為PR提交人。
如果審核檢視人員為PR提交檢視建議后,PR的狀態(tài)標(biāo)簽變?yōu)閃aiting_On_Author,需要PR提交人處理建議,優(yōu)化修復(fù)提交的代碼。當(dāng)處理完畢,重新推送代碼后,需要重新觸發(fā)門禁。
注意:如果代碼倉(cāng)沒(méi)有配置門禁,提示的內(nèi)容稍有不同,需要評(píng)論的命令是code view。
在門禁通過(guò)后,PR的狀態(tài)標(biāo)簽會(huì)替換為Waiting_For_Review狀態(tài),如下圖所示。此后,該P(yáng)R的處理責(zé)任人為代碼倉(cāng)的Committer。Committer會(huì)負(fù)責(zé)分配檢視人員或者審核該P(yáng)R。
當(dāng)一個(gè)PR處于Waiting_For_Review狀態(tài)時(shí),Committer可以使用assign命令分配給檢視人員進(jìn)行檢視,如下圖所示。命令assign的具體用法,可以參考上一小節(jié)圖片中的操作提示。當(dāng)分配完畢檢視人員,PR的狀態(tài)標(biāo)簽會(huì)替換為Reviewing狀態(tài),當(dāng)前的處理責(zé)任人為分配的檢視人員。
如果檢視人員發(fā)現(xiàn)檢視的PR存在問(wèn)題,提出檢視意見(jiàn)后,需要評(píng)論下check comment通知PR提交人根據(jù)檢視意見(jiàn)進(jìn)行修改。PR的狀態(tài)標(biāo)簽會(huì)替代為Waiting_On_Author狀態(tài),當(dāng)前的處理責(zé)任人為PR提交人。
如果PR不存在問(wèn)題,檢視人員認(rèn)為可以合入,需要評(píng)論下lgtm(即:look good to me)通知Committer審核合入該P(yáng)R。PR的狀態(tài)標(biāo)簽會(huì)替代為Waiting_For_Merge狀態(tài),當(dāng)前的處理責(zé)任人為Committer。
4、CI Bot待辦提醒
5、小結(jié)
本文對(duì)OpenHarmony社區(qū)貢獻(xiàn)流程優(yōu)化點(diǎn)進(jìn)行了介紹,包含新支持的一系列交互命令和狀態(tài)標(biāo)簽,以及CI Bot的每日待辦事項(xiàng)郵件、自動(dòng)超期處理等。如有疑問(wèn),歡迎隨時(shí)來(lái)社區(qū)反饋。
原文標(biāo)題:10分鐘快速掌握OpenHarmony社區(qū)貢獻(xiàn)新流程
文章出處:【微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
鴻蒙
+關(guān)注
關(guān)注
57文章
2382瀏覽量
42943 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3731瀏覽量
16436
原文標(biāo)題:10分鐘快速掌握OpenHarmony社區(qū)貢獻(xiàn)新流程
文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論