Roadmap Bazel

Laporkan masalah Lihat sumber Nightly · 8.1 · 8.0 · 7.6 · 7.5 · 7.4

Seiring Bazel terus berkembang sebagai respons terhadap kebutuhan Anda, kami ingin membagikan update roadmap 2025 kami.

Kami berencana menghadirkan dukungan jangka panjang (LTS) Bazel 9.0 kepada Anda pada akhir tahun 2025.

Transisi penuh ke Bzlmod

Bzlmod telah menjadi sistem dependensi eksternal standar di Bazel sejak Bazel 7, menggantikan sistem WORKSPACE lama. Mulai Maret 2025, Bazel Central Registry menghosting lebih dari 650 modul.

Dengan Bazel 9, kami akan menghapus fungsi WORKSPACE sepenuhnya, dan Bzlmod akan menjadi satu-satunya cara untuk memperkenalkan dependensi eksternal di Bazel. Untuk meminimalkan biaya migrasi bagi komunitas, kami akan berfokus untuk lebih meningkatkan kualitas panduan dan alat migrasi kami.

Selain itu, kami ingin menerapkan cache repositori bersama yang ditingkatkan (lihat #12227) dengan pembersihan sampah memori, dan dapat melakukan backport ke Bazel 8. Bazel Central Registry juga akan mendukung verifikasi pengesahan SLSA.

Migrasi aturan Android, C++, Java, Python, dan Proto

Dengan Bazel 8, kami telah memigrasikan dukungan untuk aturan Android, Java, Python, dan Proto dari codebase Bazel ke aturan Starlark di repositori yang sesuai. Untuk memudahkan migrasi, kami menerapkan fitur autoload di Bazel, yang dapat dikontrol dengan flag --incompatible_autoload_externally dan --incompatible_disable_autoloads_in_main_repo.

Dengan Bazel 9, kami ingin menonaktifkan pemuatan otomatis secara default dan mewajibkan setiap project untuk memuat aturan yang diperlukan secara eksplisit dalam file BUILD.

Kita akan menulis ulang sebagian besar dukungan bahasa C++ ke Starlark, melepaskannya dari biner Bazel, dan memindahkannya ke repositori /rules_cc. Ini adalah dukungan bahasa utama terakhir yang masih menjadi bagian dari Bazel.

Kami juga mem-port pengujian unit untuk aturan C++, Java, dan Proto ke Starlark, memindahkannya ke repositori di samping implementasi untuk meningkatkan kecepatan penulis aturan.

Peningkatan Starlark

Bazel akan memiliki kemampuan untuk mengevaluasi makro simbolis secara lambat. Artinya, makro simbolis tidak akan berjalan jika target yang dideklarasikannya tidak diminta, sehingga meningkatkan performa untuk paket yang sangat besar.

Starlark akan memiliki sistem jenis eksperimental, mirip dengan anotasi jenis Python. Kami memperkirakan sistem jenis akan stabil setelah Bazel 9 diluncurkan.

Kemampuan Konfigurasi

Fokus utama kami adalah mengurangi biaya dan kebingungan terkait flag build.

Kami bereksperimen dengan model konfigurasi project baru yang tidak mengharuskan pengguna mengetahui flag build dan pengujian yang akan ditetapkan. Jadi, $ bazel test //foo secara otomatis menetapkan flag yang tepat berdasarkan kebijakan project foo. Fitur ini kemungkinan akan tetap bersifat eksperimental di versi 9.0, tetapi masukan yang memandu akan diterima.

Pembatasan tanda memungkinkan Anda menghapus tanda Starlark saat keluar dari batas project, sehingga tidak merusak caching pada dependensi transitif yang tidak memerlukannya. Hal ini membuat build yang menggunakan transisi menjadi lebih murah dan lebih cepat. Berikut contohnya. Kami memperluas ide untuk mengontrol flag mana yang di-propagate ke konfigurasi eksekusi dan mempertimbangkan dukungan yang lebih fleksibel seperti Starlark kustom untuk menentukan edge dependensi mana yang harus menyebarkan flag.

Kami memprioritaskan upaya untuk memindahkan flag bahasa bawaan dari Bazel dan ke Starlark, tempat flag tersebut dapat digunakan dengan definisi aturan terkait.

Peningkatan eksekusi jarak jauh

Kami berencana menambahkan dukungan untuk eksekusi asinkron, yang mempercepat eksekusi jarak jauh dengan meningkatkan paralelisme.


Untuk mengikuti update pada roadmap dan mendiskusikan fitur yang direncanakan, bergabunglah ke server Slack komunitas di slack.bazel.build.

Roadmap ini dimaksudkan untuk membantu menginformasikan kepada komunitas tentang niat tim untuk Bazel 9.0. Prioritas dapat berubah sebagai respons terhadap masukan developer dan pelanggan, atau peluang pasar baru.