為 Bazel 做出貢獻

回報問題 查看原始碼 Nightly · 8.0 . 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

您可以透過多種方式協助 Bazel 專案和生態系統。

提供意見

使用 Bazel 時,您可能會發現可改善之處。在下列情況下,請回報問題,協助我們改善服務:

  • Bazel 發生當機,或您遇到只能使用 bazel clean 才能解決的錯誤。
  • 說明文件內容不完整或不清楚。您也可以透過頁面右上角的「建立問題」連結,從目前查看的頁面回報問題。
  • 錯誤訊息可以改善。

參與社群活動

您可以透過以下方式與 Bazel 社群互動:

  • Stack Overflow 上回答問題。
  • Slack 上協助其他使用者。
  • 改善說明文件或提供範例
  • 在網誌或社群媒體上分享你的經驗或訣竅。

提供程式碼

Bazel 是一個大型專案,因此變更 Bazel 原始碼可能會很困難。

您可以透過以下方式為 Bazel 生態系統做出貢獻:

  • 提交提取要求,協助規則維護者。
  • 建立新規則並開放原始碼。
  • 協助開發 Bazel 相關工具,例如遷移工具。
  • 改善 Bazel 與其他 IDE 和工具的整合功能。

如要變更,請先建立 GitHub 問題或傳送電子郵件至 bazel-discuss@

最有幫助的貢獻是修正錯誤或新增功能 (而非樣式、重構或「清理」變更)。變更內容應包含測試和說明文件,並考量向後相容性、可攜性,以及對記憶體用量和效能造成的影響。

如要瞭解如何提交變更,請參閱修補程式接受程序

Bazel 的程式碼說明

Bazel 有大量程式碼基底,且程式碼位於多個位置。詳情請參閱程式碼集指南

Bazel 的結構如下:

  • 用戶端程式碼位於 src/main/cpp 中,並提供指令列介面。
  • 通訊協定緩衝區位於 src/main/protobuf 中。
  • 伺服器程式碼位於 src/main/javasrc/test/java 中。
    • 核心程式碼,主要由 SkyFrame 和一些公用程式組成。
    • 內建規則位於 com.google.devtools.build.lib.rulescom.google.devtools.build.lib.bazel.rules 中。建議您先參閱「撰寫規則的挑戰」一文。
  • Java 原生介面位於 src/main/native 中。
  • 如需支援語言的各種工具,請參閱「編譯 Bazel」一節中的清單。

搜尋 Bazel 的原始碼

如要快速搜尋 Bazel 的原始碼,請使用 Bazel 程式碼搜尋功能。您可以瀏覽 Bazel 的存放區、分支和檔案。您也可以查看修訂記錄、差異和歸咎資訊。詳情請參閱 Bazel Code Search 使用者指南