此為 Bazel 開放原始碼專案的維護者指南。
如果您有意為 Bazel 貢獻心力,請改為參閱參與 Bazel。
這個網頁的目標包括:
- 做為專案貢獻程序的維護者可靠資料來源。
- 設定社群貢獻者與專案維護者之間的期望。
Bazel 的核心貢獻者群組有專門的子團隊,負責管理開放原始碼專案的各方面。分別是:
- 發布程序:管理 Bazel 的發布程序。
- 綠色團隊:建立健全的規則和工俱生態系統。
- 開發人員體驗園地:鼓勵外部貢獻資源、查看問題和提取要求,並讓開發工作流程更開放。
版本
持續整合
參閱 Green 團隊在 bazelbuild/continuous-integration 存放區上的 Bazel 持續整合基礎架構指南。
問題的生命週期
- 使用者透過問題範本建立問題,並進入尚未審查的待解決問題集區。
- 開發人員體驗 (DevEx) 子團隊輪替的成員會審查問題。
- 如果問題不是錯誤或功能要求,DevEx 成員通常會關閉問題,並將使用者重新導向至 StackOverflow 和 bazel-discuss,以提升問題的可見度。
- 如果問題出現在社群擁有的其中一個規則存放區 (例如 rules_apple) 中,DevEx 成員就會將這個問題轉移到正確的存放區。
- 如果問題不夠明確或缺少資訊,DevEx 成員會將問題指派給使用者,要求提供更多資訊,然後再繼續操作。這通常是因為使用者未遵循問題範本而發生。
- 查看問題後,DevEx 成員會決定該問題是否需要立即處理。若是如此,他們將會指派團隊待開發客戶清單中的 P0 優先順序標籤和擁有者。
- DevEx 成員會指派
untriaged
標籤和一個團隊標籤以進行轉送。 - DevEx 成員也會根據問題類型只指派一個
type:
標籤,例如type: bug
或type: feature request
。 - 針對平台相關問題,DevEx 成員會指派一個
platform:
標籤,例如適用於 Mac 問題的platform:apple
。在這個階段,問題會進入未分類待解決的問題集區。
每個 Bazel 子團隊都會將自有標籤下的所有問題分類,最好每週一次。子團隊會審查並評估問題,並盡可能提供解決方法。如果您是團隊標籤的擁有者,請參閱這個部分 瞭解詳情。
問題解決後,即可關閉該問題。
提取要求的生命週期
- 使用者建立提取要求。
- 如果您是 Bazel 團隊成員,針對您所在的區域傳送 PR,您必須負責指派團隊標籤,並找出最佳審核人員。
- 否則,在每日分類期間,DevEx 成員會指派一個團隊標籤和團隊技術主管 (TL) 來處理轉送。
- 團隊主管可選擇指派其他人檢閱 PR。
- 指定的審查人員會審查 PR,並與作者在核准或捨棄之前與作者合作。
- 如果核准,審查者會將 PR 的修訂版本匯入 Google 內部版本管控系統,以便進一步測試。由於 Bazel 是 Google 內部使用的建構系統,因此我們需要針對內部測試套件測試所有 PR 修訂版本。正因如此,我們不直接合併 PR 。
- 如果匯入的修訂版本通過所有內部測試,系統會將修訂版本壓縮並匯出回 GitHub。
- 當修訂版本合併為主要版本時,GitHub 會自動關閉 PR。
我的團隊擁有標籤,該怎麼做?
子團隊需要在自己擁有的標籤中將所有問題分類,最好每週一次。
問題
- 按照團隊標籤「和」
untriaged
標籤篩選問題清單。 - 查看問題。
- 確認優先順序等級並指派標籤。
- 如果問題為 P0,DevEx 子團隊可能已優先處理該問題。如有需要,請重新更改優先順序。
- 每個問題都只能有一個優先順序標籤。如果問題為 P0 或 P1,我們會假設他們正在積極處理。
- 移除
untriaged
標籤。
請注意,您必須屬於 bazelbuild 機構,才能新增或移除標籤。
提取要求
- 按照團隊標籤篩選提取要求清單。
- 查看公開的提取要求。
- 選用:如果您指派給審查作業但不適合該審查,請重新指派適當的審查人員來執行程式碼審查。
- 與提取要求建立者合作,完成程式碼審查。
- 核准 PR。
- 確保所有測試都通過。
- 將修補程式匯入內部版本管控系統,並執行內部預先提交。
- 提交內部修補程式。如果修補程式成功提交及匯出,GitHub 會自動關閉 PR。
優先順序
維護人員會使用下列的優先順序定義,將問題分類。
- P0 - 導致 Bazel 版本 (減去候選版本) 無法使用的重大功能異常,或是嚴重影響 Bazel 專案的服務中斷服務。這包括在新版本中導入的迴歸 (系統會封鎖大量使用者),或違反破壞性變更政策的不相容破壞性變更。沒有實際可行的解決方法。
- P1:應在下一版中解決的重大瑕疵或功能,或是會對許多使用者造成影響 (包括 Bazel 專案開發) 的重大問題,但實際可行的解決方法。通常不需要立即採取行動。需求量高,並已規劃於本季的發展藍圖中。
- P2 - 有問題或功能需要處理,但我們目前尚未開發。已發布的 Bazel 版本中中度存在問題,但這對需要在日後推出的版本中處理的使用者來說不夠方便,且/或已有簡易解決方法。
- P3 - 需要的小型錯誤修正或強化功能 (只影響微幅)。不會優先採用 Bazel 發展藍圖或任何即將發布的版本,但建議社群貢獻心力。
- P4 - 優先順序低的瑕疵或功能要求不太可能關閉。如果影響到更多使用者,也可以保持開放狀態,以利日後可能會重新執行優先順序。
- Ice-box
- 我們目前沒有時間處理,也沒有時間接受捐款的問題。我們會關閉這些問題,指出沒有人在處理這些問題,但會持續監控這些問題的有效性,並在足夠的人受到影響時,讓他們在有足夠資源可以處理這些問題時無效。一如既往,您可以隨時針對這些問題發表留言或回應
團隊標籤
team-Android
:Android 團隊相關問題- 聯絡人:ahumesky
team-Bazel
:一般的 Bazel 產品/策略問題- 聯絡人:sventiffe
team-Build-Language
:關於 BUILD、.bzl API 和 Stardoc 的問題。- 聯絡人:brandjon
team-Configurability
:設定能力團隊的問題- 聯絡人:gregestren
team-Core
:核心團隊的問題- 聯絡人:haxorz
team-Documentation
:說明文件團隊問題- 聯絡人:communikit
team-ExternalDeps
:外部依附元件處理、Bzlmod、遠端存放區、WORKSPACE 檔案- 聯絡人:meteorcloudy
team-Local-Exec
:執行 (本機) 團隊相關問題- 聯絡人:meisterT
team-OSS
:Bazel OSS 團隊的問題:安裝、發布程序、Bazel 封裝、網站、文件基礎架構- 聯絡人:meteorcloudy
team-Performance
:Bazel 效能團隊的問題- 聯絡人:meisterT
team-Remote-Exec
:執行 (遠端) 團隊相關問題- 聯絡人:coeuvre
team-Rules-CPP
:C++ 規則問題,包括原生 Apple 規則邏輯- 聯絡人:oquenchil
team-Rules-Java
:Java 規則相關問題- 聯絡人:comius
team-Rules-Python
:原生 Python 規則的問題- 聯絡人:comius
team-Rules-Server
:Bazel 包含的伺服器端規則相關問題- 聯絡人:comius
team-Starlark-integration
:非 API Bazel + Starlark 整合。包含:Bazel 如何觸發 Starlark 解譯器、Stardoc、內建插入、字元編碼。不包括:建構問題或 .bzl 語言問題。- 聯絡人:brandjon
team-Starlark-interpreter
:Starlark 解譯器的問題 (java.net.starlark 中的任何項目)。BUILD 和 .bzl API 問題 (代表 Bazel 與 Starlark 整合) 的問題會出現在team-Build-Language
中。- 聯絡人:brandjon
針對新問題,我們已淘汰 category: *
標籤,改用團隊標籤。
如要查看完整的標籤清單,請按這裡。