Roadmap Bazel

Laporkan masalah Lihat sumber

Ringkasan

Selamat tahun baru untuk komunitas Bazel kami. Menjelang tahun baru, kami berencana untuk menghadirkan detail roadmap tahun 2023. Tahun lalu, kami memublikasikan roadmap tahun 2022 dengan rencana Bazel 6.0. Kami berharap roadmap yang diberikan dapat menginformasikan kebutuhan alat build Anda. Seiring dengan terus berkembangnya project Bazel sebagai respons terhadap kebutuhan Anda, kami ingin membagikan perubahan terbaru pada tahun 2023.

Dengan perubahan ini, kami ingin memastikan komunitas open-source kami tetap mendapatkan informasi dan diikutsertakan. Roadmap ini menjelaskan inisiatif dan prediksi saat ini untuk masa depan pengembangan Bazel, sehingga Anda dapat melihat prioritas saat ini dan project yang sedang berjalan.

Rilis Bazel 7.0

Kami berencana untuk menghadirkan dukungan jangka panjang (LTS) Bazel 7.0 kepada Anda pada akhir tahun 2023. Dengan Bazel 7.0, kami bertujuan untuk memberikan banyak item yang sedang dikerjakan dan terus melakukan peningkatan fitur yang diminta pengguna kami.

Berbagi cache lintas platform yang lebih baik

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

Membuat 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 menyediakan dukungan untuk eksekusi asinkron, yang mempercepat eksekusi jarak jauh melalui peningkatan paralelisme dengan flag --jobs.

Bzlmod: sistem manajemen dependensi eksternal

Bzlmod otomatis menyelesaikan dependensi transitif, sehingga project dapat diskalakan dengan tetap cepat dan hemat resource. Bazel 7.0 berisi sejumlah peningkatan untuk fungsi manajemen dependensi eksternal Bazel, termasuk:

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

Membuat metrik analisis

Bazel 7.0 menyediakan metrik waktu fase analisis, sehingga developer dapat mengoptimalkan performa build mereka sendiri.

Build tanpa Byte yang diaktifkan secara default

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

Membangun Produktivitas dengan Skymeld

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

Ekosistem & Alat Bazel

Membuat aplikasi Android dengan Bazel

  • Memigrasikan aturan native Android ke Starlark: Untuk Bazel 7.0, aturan Android bermigrasi ke Starlark untuk memisahkan pengembangan dari Bazel itu sendiri dan memungkinkan kontribusi komunitas dengan lebih baik. Selain itu, kami telah membuat aturan ini terpisah dari biner Bazel inti, sehingga kami dapat merilisnya lebih sering.
  • Migrasi aturan Android ke Starlark
  • Dukungan R8: Memungkinkan developer aplikasi Android menggunakan pengoptimalan yang diupdate R8.
  • Penginstalan Seluler: Memungkinkan developer aplikasi Android mengembangkan, menguji, dan menerapkan perubahan aplikasi Android dengan cepat melalui versi Penginstalan Seluler yang diupdate.

Pembuatan data Bill of Materials (SBOM) Software & alat kepatuhan lisensi OSS

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

Build bertanda tangan

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

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

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

  • Perbarui dan sesuaikan aturan sesuai kebutuhan
  • Memperbarui aturan secara terpisah dari Bazel

Dukungan Bazel-JetBrains* IntelliJ IDEA

Update plugin IntelliJ inkremental untuk mendukung rilis plugin JetBrains terbaru.

Panduan roadmap ini menargetkan, dan tidak boleh dianggap sebagai jaminan. Prioritas dapat berubah sesuai dengan masukan dari developer dan pelanggan, atau peluang pasar baru.

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

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