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