Bazel Build API 2021 發展藍圖

回報問題 查看原始碼 。 。 。 。 夜間。 。 7.3 。 。 7.2 。 。 7.1 。 。 7.06.5

上次驗證日期:2021 年 4 月 9 日 (更新記錄)

聯絡窗口: comius

討論: 建構 API 藍圖:討論

範圍

建構 API 團隊會介紹原生規則實作和原生 API 暴露在 Starlark 中。

目標

在 Starlark 實施所有規則,並轉交給專業團隊, 選擇特定語言從 Bazel 的核心移除語言專屬邏輯。

Java 規則

首先,Java 規則會先重新編寫為 Starlark,然後在內部 大型程式碼集之後就會發布到 Bazel。

2021 年第 1 季

  • 改善 Java 三明治,以便重新編寫現有的 Java 程式碼 不過,編寫這類演算法並不容易 因為我們無法寫出所有可能的規則完成

2021 年第 2 季

  • 改善 Starlark 對 Java 中原生程式庫的支援。 進行中
  • 改善 java_common 對外掛程式和 IDE 的支援 - 提案 Java 通用重構進行中
  • java_library 規則是 Starlarkified。印度 進度

2021 年中旬

  • java_binary 和 java_test 規則為 Starlarkified。
  • java_import 和 java_plugin 規則是 Starlarkified。

2021 年秋季

  • java_*_proto_library 的星號
  • 其餘的 Java 規則是 Starlarkified:java_package_configuration、 java_runtime、java_toolchain

2022

  • java_common 模組的星號宣告。

C++ 規則

在 Starlark 中重新編寫 C++ 規則之前,您必須先進行一些內部清理作業。 之後,C++ 規則會逐一重寫至 Starlark 部分 內建功能。C++ 規則的 API 將無法透過以下服務存取 .bzl 檔案,直到 cc_module 重新寫入 Starlark 為止。

2021 年第 1 季

  • Clang 模組支援,DROPPED*
  • 包含掃描支援、預期效能提升 二者皆是 DROPPED*
  • *我們需要更多資料來評估模組是否真的需要 改善效能

2021 年第 2 季

  • 內部 Go 規則是依照星光設計,印度 進度
  • Objective-C 規則 objc_library 和 objc_import 和原生程式碼相關 他們在階段

2021 年秋季與 2022 年初

  • cc_binary、cc_test 和 cc_library 是 Starlarkified

2022

  • 其他 C++ 規則的星號標記 (fdo_profile、cc_import、 cc_toolchain、cc_toolchain_suite、fdo_prefetch_hints、cc_toolchain_alias cc_libc_top_alias、cc_host_toolchain_alias, +2)
  • cc_common 模組的星號說明

其他

2021 年中旬

  • 切面可以傳播其他層面 - 提案 傳播其他切面進行中
  • 改善 Starlark 測試架構