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:
Dukungan untuk penghapusan cache jarak jauh dengan layanan sewa, sehingga pengguna tidak mengalami error saat artefak dihapus sebelum waktunya
Mengatasi kesenjangan fitur dalam dukungan symlink
Memberikan opsi untuk mengambil output perantara dari tindakan jarak jauh
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