維護人員指南

本指南適用於維護人員。這些特殊人員擁有 Homebrew 儲存庫的寫入權限,並協助合併其他人的貢獻。您可能會發現這裡寫的內容很有趣,但這絕對不是初學者指南。

也許您正在尋找 配方手冊Cask 手冊

概觀

鼓勵所有 Homebrew 維護人員為專案的所有部分做出貢獻,但維護人員通常會加入四個主要團隊

這些文件旨在作為指導原則。作為維護人員,您可以根據貢獻者的舒適度和先前貢獻,要求他們變更或協助他們。請記住,作為一個團隊,我們 優先考慮維護人員而非使用者 以避免精疲力竭。如果您希望變更或討論任何指南:請開啟公關建議變更。

審查公關

在審查公關時,請根據以下指南在提交時使用「核准」、「核准並附註解」、「註解」或「要求變更」

相關

任務

Homebrew 旨在成為 macOS(和 Linux)的遺失套件管理員。它的主要目標是對盡可能多的人有用,同時由一小群志工以專業、高標準的方式維護。在可能和合理的情況下,它應尋求使用 macOS 的功能,以融入 macOS 和 Apple 生態系統。在 Linux 和 Windows 上,它應盡可能獨立。

常見「陷阱」

  1. 確保已正確設定你的使用者名稱和電子郵件地址
  2. 如果您修改了 cherry-pick,請簽署 (使用 git -s)
  3. 如果您的提交修復了錯誤,請使用 問題連結語法 (例如「修復 #104」) 來關閉錯誤報告並連結回提交

新增留言

僅參考問題單可能就足夠了,但請確保變更和背景夠清楚,讓第一次閱讀的人也能理解。您不希望自己編寫的程式碼被移除,因為有新人不懂它為什麼在那裡。回歸很糟糕。

這也適用於問題和 PR 主體。請盡可能明確。如果一個 pull request 是較大專案的一部分:請連結到相關的追蹤問題。如果還沒有追蹤問題:請建立一個以改善溝通並取得共識。

不要允許過大的 diff

修改 cherry-pick 以移除僅為空白變更的提交。它們不可接受,因為我們的歷史很重要,而且 git blame 應該是有用的。

允許空白更正 (例如符合 Ruby 標準等)(事實上這是個好時機),前提是該行本身有一些修改,而不仅仅是空白變更。但請小心對內嵌修補程式的變更,請確保它們仍然適用。

關閉問題/PR

維護人員 (包括專案負責人) 不應關閉其他維護人員開啟的問題或 pull request(請注意,合併在此情況下不視為關閉),除非它們已過時,在這種情況下,任何維護人員都可以關閉它們。鼓勵任何維護人員在希望對問題進行額外處理時重新開啟已關閉的問題。

任何維護人員都可以合併他們仔細檢閱且通過 CI 的任何 PR,這些 PR 是由任何其他維護人員開啟的。如果您不希望其他維護人員合併您的 PR:請使用草稿 pull request 狀態來表示,直到您準備好自己合併為止。

還原 PR

任何維護人員都可以針對其他維護人員建立的公關,在使用者提交問題或 CI 失敗後進行還原。建立原始公關的維護人員應獲得不少於一小時的時間,以自行修復問題或自行決定還原公關(如果他們願意)。

給予其他維護人員時間進行審查

公關是對現有功能的「增強」,即不是對公開使用者問題/討論的修復、不是版本升級、不是安全修復、不是對 CI 失敗的修復、可用性改善、新功能、重構等,應在星期一至星期五等待 24 小時後才能合併。例如,

如果維護人員在此期間休假/度假/生病,並在返回後留下評論:請將合併後公關的評論和回饋視為在時限內留下的,並以另一個公關進行後續追蹤以滿足其要求(如果同意)。

絕大多數的 Homebrew/homebrew-core 公關是錯誤修復或版本升級,可以在 CI 完成後自行合併。

溝通

維護人員有多種方式可以彼此溝通

所有溝通理想上應在 GitHub 上公開進行。如果這不可行或不適當(例如安全揭露、兩個維護人員之間的人際問題、需要解決的緊急中斷),則可以轉移到維護人員的私人群組通訊,必要時進行 1:1 通訊。技術決策不應在 1:1 通訊中發生,但如果發生(或過去發生),則必須最終返回 GitHub 上可以連結的東西。例如,如果一年前在 Slack 上做出了技術決策,而另一位維護人員/貢獻者/使用者在 GitHub 上詢問此事,這是向他們解釋並提供未來可以連結的東西的好機會。

這讓其他維護人員、貢獻者和使用者更容易追蹤我們正在做的事情(更重要的是,為什麼我們這麼做),並表示決策有一個可連結的 URL。

所有維護人員(和專案負責人)透過任何媒體進行的溝通都受 Homebrew 行為準則 約束。對其他維護人員、貢獻者或使用者的辱罵行為將不被容忍;維護人員將會收到警告,如果他們的行為持續,他們將被移除維護人員身分。

維護人員應當自由地對其他維護人員的工作和決策提出善意的異議。維護人員之間健康、友善、技術性的異議是積極鼓勵的,並且應當在問題追蹤器上公開進行,以使專案變得更好。人際關係問題應當在 Slack 中私下處理,最好有主持人。如果工作或決策沒有得到充分的記錄或說明,任何維護人員或貢獻者都應當自由地要求澄清。沒有任何維護人員可以僅僅用「因為我這麼說」或「是我做了 X」來證明決策的合理性。在問題追蹤器上進行無關討論、自行車棚效應和人身攻擊是被禁止的。

Fork me on GitHub