維護者 Pull Request 指南


身為維護者,審查 Pull Request 是你會經常做的工作。 這份文件包含一些 Exercism 專屬的 Pull Request 審查指南。

審查練習的 Pull Request

審查概念練習或實作練習的 Pull Request,可能會因為這類練習有許多規則而讓人卻步。 因此,維護者的第一輪審查往往要花上 2 到 3 個小時,並留下數十則意見。 概念練習還有一些目標或內容相似的檔案(例如練習和概念的簡介),這時先把其中一個檔案做到完美,再往外擴展,是很重要的。

為了讓這個工作流程更順暢,我們整理了以下建議。

建議:由一位資深維護者負責第一輪審查

由一位資深維護者獨自負責第一輪審查的理由如下:

  • 不會有重複的審查工作
  • 貢獻者和維護者會以搭檔的方式一起處理這個 Pull Request,希望讓貢獻者感覺自己不是孤軍奮戰
  • 不會出現其他維護者互相矛盾的審查意見

建議:以 wip 狀態合併

當貢獻者和維護者都對這個練習滿意之後,就應該把練習合併,並將其 status 設為 wip(進行中)。 處於這個狀態的練習不會開放給學生,但會開放給我們的頂尖導師查看(等我們未來某個時候實作出這項功能之後)。 這些高聲望使用者接著就能測試這個練習,並建立 issue 或 Pull Request 來修正或改進它。

這個做法的主要好處是:

  • 卸下了原本的貢獻者/維護者搭檔必須把一切做到完美的負擔
  • 不會產生夾雜多方意見的冗長 Pull Request 循環(那真的很難管理)

審查實作練習的 Pull Request

建議:想想這個變更是否真的屬於 problems-specifications

實作練習的部分內容(例如簡介)來自 problem-specifications 儲存庫 中定義的(共用)中繼資料。 審查更動這類內容的 Pull Request 時,請想想這個變更是否也能讓其他 track 受益。 如果是的話,建議貢獻者對 problem-specifications 儲存庫 中對應的檔案開一個 Pull Request

一般審查建議

建議:每個 Pull Request 由一位主要審查者負責

每個 Pull Request 都應該有一位主要審查者(由接下它的那位維護者擔任)。 其他維護者或社群成員則扮演輔助的角色。

扮演輔助角色的人,主要有 2 種方式可以參與審查:

  • 校對拼字/文法,但只限於_主要審查者完成第一輪審查之後_。 如果貢獻者先收到拼字/文法上的修正、改好了,接著又有維護者過來要求做更根本的修改,他們可能會很挫折。 換句話說,校對是你_在_根本的修改都處理完_之後_才做的事(或者也可能留到後續的 Pull Request 再做)。
  • 以_不要求對方採取行動的方式_,向審查者指出一些事情。 如果你想針對主要審查者應該思考或可能遺漏的地方留言,請把留言寫成表達看法,或改成問句。 這樣能讓貢獻者清楚知道你並不是在要求他們修改,也就不會那麼困惑。 這也能降低主要審查者覺得自己「被架空」的機率。

建議:不要對無關的事情留言

審查 Pull Request 時,_只_針對與這個 Pull Request 直接相關的事情留言。 至於其他事情,請開一個 issue,或另外建立一個(後續的)Pull Request。

建議:附上文件連結

情況允許時,請盡量附上能說明你_為什麼_要對某件事留言的文件連結。 這對減少事情演變成爭論很有幫助。

建議:向其他團隊求助

如果你想找人幫忙審查 Pull Request,可以標記以下 2 個特定團隊:

  • @exercism/reviewers:任何一般性的審查
  • @exercism/github-actions:任何關於 GitHub actions 的問題