Bazel への貢献

Bazel プロジェクトとエコシステムをサポートする方法はたくさんあります。

フィードバックを送信

Bazel を使用していると、改善できる点が見つかることがあります。 次のような場合は、問題を報告することでご協力ください。

  • Bazel がクラッシュした場合、または でしか解決できないバグが発生した場合bazel clean
  • ドキュメントが不完全または不明確な場合。表示しているページの右上にある [問題を作成] リンクを使用して、ページから問題を報告することもできます。
  • エラー メッセージを改善できる場合。

コミュニティに参加する

Bazel コミュニティに参加するには、次の方法があります。

  • Stack Overflow で質問に答える
  • Slack で他のユーザーをサポートする
  • ドキュメントを改善する、またはサンプルを提供する
  • ブログやソーシャル メディアなどで、経験やヒントを共有する。

コードを提供する

Bazel は大規模なプロジェクトであり、Bazel ソースコードを変更するのは難しい場合があります。

Bazel エコシステムに貢献するには、次の方法があります。

  • プルリクエストを提供して、ルール メンテナーをサポートする。
  • 新しいルールを作成してオープンソース化する。
  • 移行ツールなど、Bazel 関連のツールに貢献する。
  • 他の IDE やツールとの Bazel の統合を改善する。

変更を行う前に、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 のリポジトリ、ブランチ、ファイルに移動できます。閲覧履歴、差分、blame 情報も表示できます。詳細については、 Bazel ソースコード検索ユーザーガイドをご覧ください。