Bazel ロードマップ

問題を報告 ソースを表示

概要

Bazel コミュニティの明けましておめでとうございます。新年には、2023 年のロードマップの詳細を発表する予定です。昨年、Bazel 6.0 計画を含む 2022 年のロードマップを公開しました。このロードマップが、お客様のビルドツールのニーズのお役に立てば幸いです。皆様のニーズに応えて Bazel プロジェクトが進化し続けているため、2023 年の最新情報をお知らせいたします。

これらの変更により、Google はオープンソース コミュニティに情報を提供し、参加し続けたいと考えています。このロードマップでは、Bazel 開発の将来に関する現在のイニシアチブと予測について説明し、現在の優先事項と進行中のプロジェクトを可視化します。

Bazel 7.0 リリース

Bazel 7.0 は 2023 年後半に長期サポート(LTS)をリリースする予定です。Bazel 7.0 では、開発中のアイテムの多くを提供するとともに、ユーザーから寄せられた機能の改善に継続的に取り組んでいます。

クロス プラットフォームでのキャッシュ共有を改善

キャッシュに保存されたアーティファクトを、主に Java/Kotlin と Android の開発用に、異なるビルドのローカル(Mac)とリモート(Linux)のビルド プラットフォーム間で共有できるようになり、パフォーマンスとキャッシュの効率的な使用が実現します。

Bazel を使用した Android アプリのビルド

マニフェストとリソース マージが v30.1.3 に更新され、Android アプリのデベロッパーは、tools:node="merge" などの新しいマニフェスト マージ機能を使用できるようになります。

リモート実行の改善

Bazel 7.0 では非同期実行がサポートされており、--jobs フラグで並列処理を強化することでリモート実行を高速化します。

Bzlmod: 外部依存関係管理システム

Bzlmod は推移的な依存関係を自動的に解決するため、高速かつリソース効率を保ちながらプロジェクトをスケーリングできます。Bazel 7.0 では、Bazel の外部依存関係管理機能に対して次のような機能強化が行われています。

  • Bazel での外部依存関係管理のためにデフォルトで bzlmod が有効
  • ロックファイルのサポート - Bzlmod による密閉型のビルドが可能
  • ベンダー/オフライン モードのサポート — 事前にダウンロードした依存関係を使用してビルドを実行可能
  • 完全なリポジトリ キャッシュのサポート(ダウンロードのアーティファクトだけでなく、最終的なリポジトリ コンテンツのキャッシュも保存)
  • Bazel Central Registry: 定期的なコミュニティ貢献と、主要な Bazel ルールとプロジェクトの導入が含まれています

ビルド分析の指標

Bazel 7.0 には分析フェーズ時間の指標が用意されており、デベロッパーは独自のビルド パフォーマンスを最適化できます。

デフォルトでバイトを有効にせずにビルドする

バイトを使用しないビルドは、中間アーティファクトのダウンロードを回避し、ビルドがネットワーク帯域幅のボトルネックになることを防ぎ、パフォーマンスを最適化します。追加された機能は次のとおりです。

Skymeld で生産性を高める

Bazel 7.0 では、Skymeld が導入されています。Skymeld は、マルチターゲット ビルドの経過時間を短縮する評価モードです。Skymeld は分析フェーズと実行フェーズの間の障壁を取り除き、特に複数のトップレベル ターゲットを持つビルドのスピードを向上させます。ただし、単一ターゲットのビルドでは、大きな違いはないと予想されます。

Bazel エコシステムとツール

Bazel を使用した Android アプリのビルド

  • Android のネイティブ ルールを Starlark に移行する: Bazel 7.0 では、Android ルールを Starlark に移行することで、Bazel 自体から開発を切り離し、コミュニティへの貢献を可能にしています。さらに、これらのルールはコアの Bazel バイナリから独立しているため、より頻繁にリリースできます。
  • Starlark への Android ルールの移行
  • R8 のサポート: Android アプリのデベロッパーが R8 で更新された最適化を使用できるようにします。
  • モバイル インストール: 最新バージョンのモバイル インストールにより、Android アプリのデベロッパーは Android アプリの変更を迅速に開発、テスト、デプロイできます。

ソフトウェア部品構成表データ生成(SBOM)と OSS ライセンス コンプライアンス ツール

Bazel を使用すると、デベロッパーは SBOM の生成に役立つデータを生成できます。このデータはテキストまたは JSON 形式で出力され、SPDX または CycloneDX 仕様に合わせて簡単にフォーマットできます。さらに、このプロセスでは、Bazel モジュールが使用可能になっているライセンスを宣言するためのルールと、それらの宣言に関連するプロセスを構築するためのツールが提供されます。GitHub で進行中の rules_license の実装をご覧ください。

署名付きビルド

Bazel は、Google の鍵で署名された Windows と Mac の信頼できるバイナリを提供します。この機能を使用すると、マルチプラットフォームのデベロッパーや開発担当者が Bazel バイナリのソースを特定し、悪意のある未検証のバイナリからシステムを保護できるようになります。

Java、C++、Python のルールの Starlark への移行

Java、C++、Python のルールセットの Starlark への完全な移行。この取り組みにより、Bazel ユーザーはルールセットのみをフォークでき、Bazel バイナリ コードベースはフォークできません。これにより、ユーザーは次のことを行えます。

  • 必要に応じてルールを更新、カスタマイズする
  • Bazel とは別にルールを更新する

Bazel-JetBrains* IntelliJ IDEA サポート

最新の JetBrains プラグイン リリースをサポートするための増分 IntelliJ プラグイン アップデート。

このロードマップのスナップショットは、あくまで対象であり、保証するものではありません。優先事項は、デベロッパーやお客様からのフィードバックや新たな市場機会に応じて変更される場合があります。

Google グループ コミュニティに参加して、新機能(このロードマップのアップデートを含む)に関する通知を受け取りましょう。

*Copyright © 2022 JetBrains s.r.o. JetBrains および IntelliJ は JetBrains s.r.o の登録商標です。