Bazel Vision

<ph type="x-smartling-placeholder"></ph> 問題を報告する ソースを表示 夜間 · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

あらゆるソフトウェア開発者が効率的にビルド、テスト、パッケージ化できる あらゆるプロジェクト、あらゆる規模のプロジェクト、 どんなプロジェクトでも導入でき できます。

  • エンジニアは構築の基礎を当たり前のことから学べます。ソフトウェア デベロッパー コードを作成するという創造的なプロセスに集中できます。これは、 タスクが解決します。ビルドシステムをカスタマイズして、 新しい言語や組織固有のニーズをサポートする場合、ユーザーは ユースケース固有の拡張性の側面が実現します。 基本的な配管を一から見直す必要があります。

  • エンジニアはどんなプロジェクトにも簡単に貢献できます。たとえば プロジェクトのクローンを作成して 構築できます。ローカルで構成する必要はなく、そのまま機能します。あり 任意のマシンでどこでも実行でき プロジェクトがターゲットとするすべてのプラットフォームで変更を徹底的にテストする。 エンジニアが新しいプロジェクトまたは段階的なビルドを迅速に構成可能 移行することもできます。

  • プロジェクトは、コードベースやチームの規模を問わずスケールできます。高速、 段階的なテストにより、すべての変更を事前に完全に検証できる できます。このことは、リポジトリが増加しても、プロジェクトは複数のプロジェクトにまたがって リポジトリがあり、複数の言語が導入されています。インフラストラクチャが テスト カバレッジとビルド速度のトレードオフ

Bazel には、このビジョンを実現する可能性が秘められていると信じています。

Bazel は、再現可能なビルド(つまり、 常に同じ出力が生成され、移植可能(ビルド 任意のマシンで出力に影響を与えることなく実行できます)。

これらの特性は、安全なインクリメンタリティを支えています( 破損のリスクは引き起こさず)分散性(ビルド アクションが分離され、オフロード可能)。必要な作業を最小限に抑える 適切なビルドと並列化が 複数のコアやリモートで実行されている Bazel であらゆるビルドを高速化できます。

Bazel の抽象化レイヤ - 言語、プラットフォーム、 単純な拡張言語で実装されたツールチェーンで、 どのようなコンテキストにも簡単に適用できます。

Bazel コア コンピテンシー

  1. Bazel は、多言語、マルチプラットフォームのビルドとテストをサポートしています。Google Chat では ソースツリー全体を 1 つのコマンドでビルドし、テストできます。 ターゲット言語とプラットフォームの組み合わせ
  2. Bazel ビルドは高速で正確です。すべてのビルドとテストの実行は パフォーマンスのCI で実行できます
  3. Bazel は統一された拡張可能な言語を提供し、あらゆる用途のビルドを定義 言語やプラットフォームによって異なります。
  4. Bazel では、リモート実行に接続してビルドをスケーリングできます。 キャッシュサービスを使用します
  5. Bazel は、すべての主要な開発プラットフォーム(Linux、macOS、 です。
  6. Bazel の導入には労力が必要になることは理解していますが、段階的な導入は 考えていますBazel インターフェースと事実上の標準ツールとの プラットフォーム。

言語コミュニティでのサービス提供

ソフトウェア エンジニアリングは、言語コミュニティのコンテキストの中で進化します。 共通のツールや手法を使用するユーザーの自己組織化グループです。

言語コミュニティのメンバーに役立つには、質の高い Bazel ルールが そのコミュニティのワークフローや慣例と統合できます。

Bazel は拡張可能でオープンであること、そして Bazel が適切なルールセットをサポートできるよう、 あらゆる言語に対応できます。

適切なルールセットの要件

  1. このルールは、VM の効率的なビルドとテストをサポートする必要があります。 コード カバレッジを含められます。
  2. ルールは、広く使用されている「パッケージ マネージャー」とやり取りする必要があります。 サポートしており、段階的な移行パスもサポートしています。 他のビルド システムとの相違点もあります。
  3. ルールは、拡張可能で相互運用可能 "Bazel sandwich" 学びました。
  4. ルールは remote-execution ready である必要があります。これは実際には ツールチェーン メカニズムを使用して構成できます
  5. ルール(と Bazel)は、広く使用されている IDE とやり取りする必要があります。 表示されます
  6. ルールには、入門レベルの内容が記載された、使いやすい入念なドキュメントが必要です。 初めてのユーザー向けの資料、上級ユーザー向けの包括的なドキュメントが用意されています。

これらの項目のそれぞれが不可欠であり、組み合わせると Bazel に搭載されます コンピューティングの能力を 確保することです

また、基本的には Bazel で十分です。すべてが満たされると、Bazel は完全に その価値をその言語コミュニティのメンバーに 提供しています