Roadmap Bazel

Laporkan masalah Lihat sumber Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Ringkasan

Selamat tahun baru untuk komunitas Bazel kami. Di tahun baru ini, kami berencana untuk memberikan detail rencana jangka panjang kami tahun 2023. Tahun lalu, kami memublikasikan rencana tahun 2022 dengan rencana Bazel 6.0. Kami harap rencana yang diberikan dapat memenuhi kebutuhan alat build Anda. Seiring dengan terus berkembangnya project Bazel sebagai respons terhadap kebutuhan Anda, kami ingin membagikan info terbaru untuk tahun 2023.

Dengan perubahan ini, kami ingin terus memberi tahu dan menyertakan komunitas open source kami. Roadmap ini menjelaskan inisiatif dan prediksi saat ini untuk pengembangan Bazel di masa mendatang, sehingga Anda dapat melihat prioritas saat ini dan project yang sedang berlangsung.

Rilis Bazel 7.0

Kami berencana menghadirkan dukungan jangka panjang (LTS) Bazel 7.0 kepada Anda pada akhir tahun 2023. Dengan Bazel 7.0, kami ingin menghadirkan banyak item yang sedang dalam proses dan terus berupaya meningkatkan fitur yang diminta pengguna.

Berbagi cache lintas platform yang lebih baik

Memungkinkan artefak yang di-cache dibagikan di berbagai platform build lokal (Mac) dan jarak jauh (Linux) terutama untuk pengembangan Java/Kotlin dan Android, sehingga menghasilkan performa yang lebih baik dan penggunaan cache yang efisien.

Build aplikasi Android dengan Bazel

Manifest & Resource Merger diupdate ke v30.1.3 sehingga developer aplikasi Android dapat menggunakan fitur penggabungan manifes yang lebih baru seperti tools:node="merge".

Peningkatan eksekusi jarak jauh

Bazel 7.0 memberikan dukungan untuk eksekusi asinkron, mempercepat eksekusi jarak jauh melalui paralelisme yang ditingkatkan dengan flag --jobs.

Bzlmod: sistem pengelolaan dependensi eksternal

Bzlmod secara otomatis me-resolve dependensi transitif, sehingga project dapat diskalakan sekaligus tetap cepat dan hemat resource. Bazel 7.0 berisi sejumlah peningkatan pada fungsi pengelolaan dependensi eksternal Bazel, termasuk:

  • Bzlmod diaktifkan secara default untuk pengelolaan dependensi eksternal di Bazel
  • Dukungan file kunci — memungkinkan build hermetis dengan Bzlmod
  • Dukungan mode vendor/offline — memungkinkan pengguna menjalankan build dengan dependensi yang didownload sebelumnya
  • Dukungan cache repositori lengkap (cache tidak hanya mendownload artefak, tetapi juga konten repositori akhir)
  • Bazel Central Registry mencakup kontribusi komunitas reguler dan penerapan aturan & project Bazel utama

Membuat metrik analisis

Bazel 7.0 menyediakan metrik waktu fase analisis, yang memungkinkan developer mengoptimalkan performa build mereka sendiri.

Melakukan build tanpa mengaktifkan Byte secara default

Build tanpa Byte mengoptimalkan performa dengan menghindari download artefak perantara dan mencegah build mengalami bottleneck pada bandwidth jaringan. Fitur yang ditambahkan meliputi:

Meningkatkan Produktivitas dengan Skymeld

Bazel 7.0 memperkenalkan Skymeld — mode evaluasi yang mengurangi waktu tunggu build multi-target Anda. Skymeld menghilangkan hambatan antara fase analisis dan eksekusi untuk meningkatkan kecepatan build, terutama untuk build dengan beberapa target tingkat teratas. Namun, untuk build satu target, tidak ada perbedaan yang signifikan.

Ekosistem & Alat Bazel

Build aplikasi Android dengan Bazel

  • Memigrasikan aturan native Android ke Starlark: Untuk Bazel 7.0, aturan Android dimigrasikan ke Starlark untuk memisahkan pengembangan dari Bazel itu sendiri dan untuk mengaktifkan kontribusi komunitas dengan lebih baik. Selain itu, kami telah membuat aturan ini independen dari biner Bazel inti, sehingga kami dapat merilis lebih sering.
  • Migrasi aturan Android ke Starlark
  • Dukungan R8: Memungkinkan developer aplikasi Android menggunakan pengoptimalan R8 yang telah diupdate.
  • Mobile Install: Memungkinkan developer aplikasi Android mengembangkan, menguji, men-deploy perubahan aplikasi Android dengan cepat melalui versi terbaru Mobile Install.

Alat pembuatan data Software Bill of Materials (SBOM) & kepatuhan lisensi OSS

Dengan Bazel, developer dapat membuat data untuk membantu menghasilkan SBOM. Data ini menghasilkan output dalam format teks atau JSON, dan dapat diformat dengan mudah untuk memenuhi spesifikasi SPDX atau CycloneDX. Selain itu, proses ini menyediakan aturan untuk mendeklarasikan lisensi yang digunakan untuk menyediakan modul Bazel, dan alat untuk mem-build proses di sekitar deklarasi tersebut. Lihat implementasi rules_license yang sedang berlangsung di GitHub.

Build yang ditandatangani

Bazel menyediakan biner tepercaya untuk Windows dan Mac yang ditandatangani dengan kunci Google. Fitur ini memungkinkan developer/dev-ops multi-platform mengidentifikasi sumber biner Bazel dan melindungi sistem mereka dari biner yang berpotensi berbahaya dan tidak diverifikasi.

Migrasi aturan Java, C++, dan Python ke Starlark

Menyelesaikan migrasi kumpulan aturan Java, C++, dan Python ke Starlark. Upaya ini memungkinkan pengguna Bazel melakukan fork hanya pada ruleset, bukan codebase biner Bazel, sehingga pengguna dapat

  • Memperbarui dan menyesuaikan aturan sesuai kebutuhan
  • Memperbarui aturan secara terpisah dari Bazel

Dukungan IntelliJ IDEA Bazel-JetBrains*

Update plugin IntelliJ inkremental untuk mendukung rilis plugin JetBrains terbaru.

Ringkasan roadmap ini menargetkan, dan tidak boleh dianggap sebagai jaminan. Prioritas dapat berubah sebagai respons terhadap masukan developer dan pelanggan, atau peluang pasar baru.

Untuk mendapatkan notifikasi tentang fitur baru — termasuk update pada roadmap ini — bergabunglah dengan komunitas Google Grup.

*Hak Cipta © 2022 JetBrains s.r.o. JetBrains dan IntelliJ adalah merek dagang terdaftar dari JetBrains s.r.o