協助改善 Bazel

回報問題 查看來源

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

提供意見

使用 Bazel 時,發現可以改善的地方。您可以在發生以下情況時回報問題

  • Bazel 當機,或你使用 bazel clean 只解決這個錯誤的錯誤。
  • 文件不完整或不明確。您也可以透過頁面右上角的「建立問題」連結來回報所查看網頁的問題。
  • 錯誤訊息可改善。

參與社群活動

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

  • Stack Overflow 上回答問題。
  • Slack 協助其他使用者。
  • 改善說明文件或提供示例
  • 分享自身經驗或獨門秘訣,例如在網誌或社群媒體上分享。

提供代碼

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

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

  • 提出提取要求,協助規則維護者。
  • 建立新規則並開啟開放原始碼。
  • 適用於 Bazel 相關工具,例如遷移工具。
  • 改善 Bazel 與其他 IDE 和工具的整合作業。

變更之前,請先建立 GitHub 問題或傳送電子郵件至 bazel-Talk@

最實用的貢獻修正了錯誤或新增功能 (而非樣式、重構或「清理」變更)。變更應包含測試和說明文件,並留意回溯相容性、可攜性,以及對記憶體用量和效能的影響。

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

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 Code Search。您可以瀏覽 Bazel 的存放區、分支版本與檔案。您也可以查看記錄、差異和異常資訊。詳情請參閱 Bazel Code Search 使用手冊