Starlark のロードマップ

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

最終確認日: 2020 年 4 月 21 日更新履歴

連絡先: laurentlb

目標

Google の目標は、Bazel の拡張性を高めることです。ユーザーは簡単に操作できる 独自のルールを実装し、新しい言語とツールをサポートしています。目標 ルールの作成と維持の効率が向上します。

次の 2 つの領域に重点を置いています。

  • シンプルかつパワフルな言語と API にしましょう。
  • コードの読み取り、書き込み、更新、デバッグ、テストを行うための優れたツールを提供する。

2020 年第 2 四半期

ビルドの健全性とベスト プラクティス:

  • P0.名前のないマクロは使用しないで、名前が一意であることを確認してください 文字列リテラル。本作業は Google コードベースに焦点を当てていますが、 公開されています。
  • P0.選択と変数に関して Buildozer コマンドの信頼性を高める。
  • P1. 並べ替えの対象から外れた重複を Buildifier で削除 できます。
  • P1. Buildifier リンターを更新して、簡単な式のインライン化を推奨するようにしました。
  • P2. native.existing_rule のユースケースを調べ、代替手段を提案する
  • P2. プレリュード ファイルのユースケースを検討し、代替案を提案する

パフォーマンス:

  • P1. フラット環境とバイトコードを使用して Starlark インタープリタを最適化する コンパイルします。

技術的負債の削減:

  • P0.@bazel_tools の下の Starlark にネイティブ シンボルを移植する機能を追加。
  • P1. 古いフラグを削除します(一部は Google でまだ使用されているため、 まずコードベースをクリーンアップします)。incompatible_always_check_depset_elementsincompatible_disable_deprecated_attr_params, incompatible_no_support_tools_in_action_inputsincompatible_new_actions_api
  • P1. Bazel 4.0 で次のフラグを反転できることを確認します。 incompatible_disable_depset_items さん、incompatible_no_implicit_file_export さん、 incompatible_run_shell_command_string, incompatible_restrict_string_escapes
  • P1. lib.syntax 処理(API のクリーンアップ、Bazel からの分離)を完了します。
  • P2. Bazel の Java パッケージを少し編集するだけで、ビルドとテストのレイテンシが 50% 短縮されます。

コミュニティ:

  • rules_python はコミュニティによって活発に管理されており、
  • rules_jvm_external の継続的なサポート(未処理の pull リクエストがない、 トリアージ、リリースの作成などを行います。
  • Bazel ドキュメント インフラストラクチャのメンテナンス: CSS の一元化と正規化 bazel-website、bazel-blog、ドキュメントのスタイル
  • Bazel ドキュメント: 回帰を防ぐために、e2e ドキュメント サイトビルドの CI テストを追加しました。

2020 Q1

ビルドの健全性とベスト プラクティス:

  • bazel query を介してエクスポートするために、ターゲットにマクロ コールスタックのトラッキングを許可する
  • --incompatible_no_implicit_file_export を実装する
  • 非推奨の depset API を削除しました(#5817、#10313、#9017)。
  • Buildifier にクロスファイル アナライザを追加し、非推奨のチェックを実装 使用できます。

パフォーマンス:

  • Bazel による Java ベースのテストの速度が 2 倍になります。
  • Starlark CPU Profiler を実装します。

技術的負債の削減:

  • 8 つの互換性のないフラグを削除(反転後)。
  • lib.syntax のクリーンアップを終了します(依存関係を解除します)。
  • Starlark の最適化: フラット環境、バイトコードのコンパイル
  • 可能であれば、分析フェーズからすべてのシリアル化を削除する
  • lib.packages の簡素化と最適化に関する計画を立てる

コミュニティ:

  • Bazel 固有のすべての用語の定義を含む用語集を公開する