Bazel 發展藍圖

回報問題 查看原始碼

總覽

Bazel 社群愉快,新年快樂。新的一年計劃預計在 2023 年推出。去年,我用了 Bazel 6.0 計劃進行了 2022 年路徑歲路。我提供了希望路徑為知識地建造您的工具工具需求。隨著 Bazel 專案持續滿足您的需求,我們想要分享 2023 年的最新資訊。

這些異動旨在讓開放原始碼社群掌握最新資訊,並確保其安全無虞。此藍圖說明 Bazel 開發的未來計畫與預測,可讓您掌握目前的優先順序和進行中的專案。

Bazel 7.0 版本

我們預計於 2023 年底,為您提供 Bazel 7.0 長期支援 (LTS)。Bazel 7.0 的目標是提供許多進行中的項目,並持續處理使用者要求的功能改善。

更完善的跨平台快取共用功能

可讓主要的本機 (Mac) 和遠端 (Linux) 建構平台共用快取構件,主要用於 Java/Kotlin 和 Android 開發作業,藉此提升效能和效率的快取用量。

使用 Bazel 建構 Android 應用程式

資訊清單與資源合併工具已更新至 30.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 可消除分析與執行階段之間的障礙,藉此提升建構速度,特別是對具有多個頂層目標的建構作業。但是,對於單一目標版本而言,預期不會有任何顯著的差異。

Bazel 生態系統和工具

使用 Bazel 建構 Android 應用程式

  • 將 Android 原生規則遷移至 Starlark:如果是 Bazel 7.0,Android 規則會遷移至 Starlark,以便將開發運作與 Bazel 本身分離,並進一步改善社群貢獻。此外,我們已將這些規則與核心 Bazel 二進位檔分開,如此一來,我們就能更頻繁地推出新版本。
  • 將 Android 規則遷移至 Starlark
  • R8 支援:允許 Android 應用程式開發人員使用最新的 R8 最佳化功能。
  • 行動安裝:允許 Android 應用程式開發人員透過最新版本的行動安裝版本,快速開發、測試、部署任何 Android 應用程式變更。

產生軟體軟體帳單 (SBOM) 和 OSS 授權法規遵循工具

開發人員可以利用 Bazel 產生資料,協助產生 SBOM。這項資料會以純文字或 JSON 格式輸出,且經過簡易的格式可滿足 SPDXCycloneDX 規格。此外,該程序也提供規則,宣告 Bazel 模組提供授權,以及使用這些資料來建構這些聲明的工具。查看 GitHub 上的進行中 rules_license 實作

已簽署的版本

Bazel 可透過以 Google 金鑰簽署的 Windows 和 Mac 版本提供可信任的二進位檔。這項功能可讓多平台開發人員/開發運作,識別 Bazel 二進位檔的來源,並保護系統免於潛在且未經驗證的惡意二進位檔。

將 Java、C++ 和 Python 規則遷移至 Starlark

將 Java、C++ 和 Python 規則集遷移至 Starlark。這麼做可讓 Bazel 使用者只建立規則集,而非 Bazel 二進位程式碼集,

  • 視需要更新及自訂規則
  • 可獨立於 Bazel 更新規則

Bazel-JetBrains* IntelliJ IDEA 支援

漸進式的 IntelliJ 外掛程式更新,以支援最新的 JetBrains 外掛程式版本。

這份藍圖圖旨在提供導覽服務,不應做為保證。我們會視情況調整開發人員和客戶的意見回饋,或新的市場商機。

請在加入 Google 網路論壇社群後收到新功能更新 (包括更新藍圖) 的通知。

*Copyright © 2022 JetBrains s.r.o. JetBrains 和 IntelliJ 是 JetBrains s.r.o 的註冊商標