Bazel 維護者指南

這是 Bazel 開放原始碼專案維護人員的指南。

如果您想要為 Bazel 做出貢獻,請改為參閱為 Bazel 貢獻內容

這個網頁的目標是:

  1. 做為維護者的可靠資料來源;
  2. 設定社群貢獻者和專案維護者之間的期望。

Bazel's 的核心貢獻者小組有專屬的子團隊,負責管理開放原始碼專案的各個層面。這些形式包括:

  • 發布程序:管理 Bazel's 的發布程序。
  • 綠色團隊:培養健全的規則和工俱生態系統。
  • 開發人員體驗花園:鼓勵外部人士參與、檢視問題和提取要求,並使我們的開發工作流程更開放。

專輯

持續整合

請閱讀 Green's CI 基礎架構的相關指南,瞭解Bazelbuild/持續整合 存放區。

問題的生命週期

  1. 使用者利用問題範本建立問題,並進入未審查的待解決問題集區。
  2. 開發人員體驗 (DevEx) 子小組輪替的成員會查看問題。
    1. 如果問題不是錯誤功能要求,DevEx 成員通常會關閉問題,並將使用者重新導向至 StackOverflowbazel-discuss,提高問題的能見度。
    2. 如果該問題屬於社群擁有的其中一個規則存放區 (例如 Rule_apple),則 DevEx 成員會將這個問題移轉到正確的存放區。
    3. 如果問題模糊或有遺漏,DevEx 成員會指派問題給使用者,要求繼續提供更多資訊。這通常是因為使用者未遵循問題範本
  3. 開發人員在審查問題後,可決定問題是否需要立即處理。否則,他們會從團隊待開發客戶清單中指派「P0」優先順序標籤和擁有者。
  4. DevEx 成員會指派 untriaged 標籤和一個完整的團隊標籤進行轉送。
  5. DevEx 成員還會依照問題類型,只指派一個 type: 標籤,例如 type: bugtype: feature request
  6. 針對平台相關問題,DevEx 成員會指派一個 platform: 標籤,例如 platform:apple 代表 Mac 特有的問題。 在這個階段中,問題會進入未處理的開放式問題集區。

每個 Bazel 子團隊都會依據所擁有的標籤將所有問題分類,最好每週進行一次。小組小組會審查並評估問題,並盡可能提供解決方案。如果您是小組標籤的擁有者,請參閱本節來瞭解詳情。

當問題解決後,就可以關閉該問題。

提取要求的生命週期

  1. 使用者建立了提取要求。
  2. 如果您是 Bazel 小組的成員,並以您所屬區域傳送 PR,您必須負責指派團隊標籤並尋找最佳觀影者。
  3. 否則在進行每日分類時,DevEx 成員會指派一個團隊標籤和小組的技術負責人 (TL),以便進行轉送。
    1. TT 可選擇指派其他人員審查 PR。
  4. 指派的審查者會審核 PR,並與作者合作,直到核准或移除該作者為止。
  5. 一旦通過核准,審查人員公關部門匯入 Google 內部版本控制系統,以供進一步測試。由於 Bazel 是 Google 內部使用的建構系統,因此必須對內部測試套件測試所有公關修訂版本。這也是為什麼我們不直接合併公關。
  6. 如果匯入的修訂版本通過所有內部測試,則該修訂版本會遭到壓縮並匯出回 GitHub。
  7. 修訂內容合併至主要執行個體時,GitHub 會自動關閉公關。

我的團隊擁有一個標籤。該怎麼辦?

子團隊必須按照自己擁有的標籤分類所有問題,最好每週進行一次。

問題

  1. 依團隊標籤 untriaged 標籤篩選問題清單。
  2. 請查看問題。
  3. 找出優先等級並指派標籤。
    1. 如果 DevEx 子團隊是 P0,則該問題可能已優先處理。視需要重新設定優先順序。
    2. 每個問題只能有一個優先級標籤。如果問題為 P0 或 P1,系統會假設該問題正在積極處理。
  4. 請移除「untriaged」標籤。

請注意,您必須是 bazelbuild 機構才能新增或移除標籤。

提取要求

  1. 依據團隊標籤篩選提取要求清單。
  2. 查看待處理的提取要求。
    1. 選用:如果您已取得審核作業,但不適合審查內容,請重新指派合適的審查人員來執行程式碼審查作業。
  3. 與提取要求建立者合作,完成程式碼審查。
  4. 核准公關。
  5. 確保所有測試都通過。
  6. 將修補程式匯入內部版本控制系統,並執行內部預先提交作業。
  7. 提交內部修補程式。如果修補程式提交成功並順利匯出,GitHub 會自動關閉 PR。

優先順序

維護人員將依照下列優先順序定義,將問題分類。

  • P0 - 主要的破壞性功能會讓 Bazel 版本 (減去候選版本) 無法使用,或導致服務中斷,進而嚴重影響 Bazel 專案的開發作業。這包括新版本中推出的迴歸可封鎖大量使用者,或是不符合「破壞變更」政策的不相容變更。目前沒有可行的解決方法。
  • P1 - 在下一個版本中應解決的重大瑕疵或功能,或是會對許多使用者造成影響的嚴重問題 (包括 Bazel 專案的開發作業),但也提供了可行的解決方法。通常不需立即採取行動。需求量大且預計在本季的發展藍圖中規劃。
  • P2 - 應解決的問題或功能,但我們目前並未著手處理。針對已發行的 Bazel 版本中管理即時問題,這種問題不適用於需要在日後推出的版本中解決,且/或需要簡單的替代方案。
  • P3:可影響的微小錯誤修正或強化,且效果不大。系統不會優先處理 Bazel 藍圖或任何即將發布的版本,但還是鼓勵社群成員做出貢獻。
  • P4 - 低缺陷 或不太可能被關閉的功能要求如果有更多使用者受到影響,也可以保持開啟,以便重新設定潛在優先順序。
  • ice-box
    • 我們目前的問題還不足以處理問題,也無法及時接受捐款。我們會關閉這些問題,表示沒有人在著手處理這些問題,但會持續監控他們的有效性,如果確實有足夠人受到影響,且確實有資源應對他們的問題,就會予以恢復。一如往常,歡迎您隨時針對上述問題新增評論或新增回應。

小組標籤

當發生新問題時,我們已淘汰 category: * 標籤,並換上團隊標籤。

如需完整的標籤清單,請參閱這篇文章