為 Bazel 做出貢獻

回報問題 查看來源

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

提供意見

使用 Bazel 時,您可能會看到可改善的地方。您可以在下列情況下回報問題

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

參與社群

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

捐款代碼

Bazel 是大型專案,要對 Bazel 原始碼進行變更並不容易。

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

  • 提供提取要求,協助規則維護人員
  • 建立新規則並開放資源。
  • 回報給 Bazel 相關工具,例如遷移工具。
  • 改善 Bazel 與其他 IDE 和工具的整合。

在進行變更前,請先建立 GitHub 問題或傳送電子郵件至 bazel-dev@

最實用的貢獻有助於修正錯誤或新增功能 (而非樣式、重構或「清除」變更)。您所做的變更應包括測試和說明文件,考量回溯相容性、可攜性,以及對記憶體用量和效能的影響。

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

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 程式碼搜尋使用手冊