Ringkasan
Project Bazel terus berkembang sesuai dengan kebutuhan Anda — mengembangkan fitur dan memberikan dukungan sambil mempertahankan, memfaktorkan ulang, dan meningkatkan performa produk inti.
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.
Roadmap ini mengambil snapshot, dan tidak boleh dianggap sebagai jaminan. Prioritas dapat berubah sesuai dengan masukan developer dan pelanggan, atau peluang pasar baru.
Untuk mendapatkan notifikasi tentang fitur baru — termasuk pembaruan pada roadmap ini — bergabunglah dengan komunitas Google Grup.
Q4 — Rilis Bazel 6.0
Q4 menghadirkan Bazel 6.0 — versi dukungan jangka panjang (LTS) yang baru. Bazel 6.0 berencana menyertakan fitur baru yang andal dan diminta komunitas untuk mengelola dependensi, mengembangkan aplikasi dengan Android, dan banyak lagi.
Bzlmod: sistem manajemen dependensi eksternal
Bzlmod otomatis menyelesaikan dependensi transitif, sehingga project dapat diskalakan dengan tetap cepat dan hemat resource. Diperkenalkan secara eksperimental di Bazel 5.0, Bzlmod akan tersedia secara umum dan memberikan solusi untuk masalah dependensi berlian.
- Bzlmod berubah dari 'eksperimental' menjadi 'tersedia secara umum'
- Termasuk dukungan untuk
rules\_jvm\_external
, yang memungkinkan pengguna mendownload dependensi Maven untuk project Java - Panduan Migrasi Bzlmod menyediakan alat, skrip, dan dokumentasi untuk tim yang ingin menerapkan Bzlmod
- Repositori pusat Bazel menghosting aturan Bazel inti
BUILD
(rules\_jvm\_external
,rules\_go
,rules\_python
,rules\_nodejs
) dan dependensi kunci yang diperlukan untuk Bzlmod
Untuk mengetahui informasi selengkapnya tentang pengembangan ini, tonton pembaruan komunitas Bzlmod atau baca dokumen desain asli.
Membuat aplikasi Android dengan Bazel
Bazel 6.0 akan menghadirkan peningkatan kualitas alat dan kontribusi fitur komunitas yang digabungkan. Mengantisipasi adopsi lebih lanjut dan codebase yang terus berkembang, tim Bazel akan memprioritaskan integrasi alat build Android dengan aturan Android Bazel.
- Mengupdate D8 ke v. 3.3.28 dan menyetelnya sebagai dexer default.
- Penggabungan ke kontribusi fitur komunitas utama yang ditambahkan di 5.X termasuk dukungan untuk:
- Pekerja persisten dengan D8
- Desugaring menggunakan D8
- Menggabungkan tag "uses-permissions" di manifes Android
- Pekerja multipleks dalam pemrosesan resource Android
Toolchain opsional
Survei Kepuasan Developer kami menunjukkan bahwa penulis aturan menginginkan dukungan untuk pengembangan toolchain lebih lanjut. Bazel 6.0 akan memungkinkan penulis menulis aturan menggunakan toolchain opsional berperforma tinggi saat tersedia dengan implementasi fallback untuk platform lain.
Dukungan Bazel-JetBrains* IntelliJ IDEA
JetBrains telah berpartner dengan Bazel untuk bersama-sama mengelola plugin Bazel IntelliJ IDEA, sehingga mendukung tujuan meningkatkan pengelolaan komunitas dan membuka kapasitas untuk pengembangan dan permintaan fitur.
- Plugin IntelliJ v. 2022.2 memberikan dukungan untuk rilis plugin JetBrains terbaru
- Meningkatkan kompatibilitas dengan pengembangan jarak jauh
- Melanjutkan pengembangan berbasis komunitas untuk fitur yang sedang berlangsung seperti dukungan Scala
Untuk mengetahui informasi selengkapnya tentang pengembangan ini, baca pengumuman blog Bazel-JetBrains.
Pengembangan di masa mendatang
Ke depannya, tim Bazel telah memulai pengembangan atau mengantisipasi akan memprioritaskan fitur berikut pada tahun 2023 dan seterusnya.
Meningkatkan aturan build Android Bazel
Teruslah berinvestasi pada pengalaman pengembangan aplikasi Android, dengan berfokus pada alur kerja melalui build, pengujian, dan deployment.
- Migrasi ke dan dukungan untuk R8
- Update pada aturan Android, termasuk terjemahan ke bahasa Starlark
- Dukungan untuk App Bundle
- Dukungan untuk versi NDK terbaru
- Cakupan kode pengujian
Alat kepatuhan lisensi OSS
Developer meminta pemeriksa kepatuhan lisensi yang ketat untuk memastikan ketersediaan dan keamanan paket yang disertakan. Project ini menyediakan serangkaian aturan dan alat untuk membantu mengidentifikasi serta mengurangi risiko kepatuhan dan lisensi yang terkait dengan komponen software tertentu. Fitur target mencakup:
- Kemampuan untuk mengaudit paket yang digunakan oleh target tertentu
- Kemampuan untuk membuat pemeriksaan kepatuhan lisensi khusus organisasi.
Lihat penerapan rules_license yang sedang berlangsung di GitHub.
Bzlmod: sistem manajemen dependensi eksternal
Saat peluncuran, Bzlmod meningkatkan skalabilitas dan keandalan dependensi transitif. Selama tiga tahun ke depan, Bzlmod bertujuan untuk mengganti WORKSPACE
sebagai subsistem pengelolaan dependensi ruang kerja Bazel default. Fitur yang ditargetkan mencakup:
- Dukungan untuk build hermetic
- Aturan penyematan mode vendor/offline ke salinan lokal
- Bazel Central Registry menyertakan kontribusi komunitas rutin serta penerapan aturan & project utama Bazel
- Bzlmod menjadi alat default untuk mem-build project Bazel
Build bertanda tangan
Bazel akan memberikan 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 berbahaya yang tidak terverifikasi.
Standardized Platforms API
Platforms API baru akan menstandarkan konfigurasi arsitektur untuk build multi-platform dan multibahasa. Dengan fitur ini, developer dapat mengurangi error dan kompleksitas waktu pengembangan yang mahal dalam build mereka yang besar.
Membuat metrik analisis
Telemetri Bazel akan menyediakan metrik waktu fase analisis, sehingga developer dapat mengoptimalkan performa build mereka sendiri.
Eksekusi jarak jauh dengan “Builds without the Bytes”
Build tanpa Byte akan mengoptimalkan performa dengan hanya mengizinkan Bazel mendownload artefak yang diperlukan, sehingga mencegah build mengalami bottleneck pada bandwidth jaringan. Fitur yang ditambahkan untuk build jarak jauh meliputi:
- Menggunakan download asinkron agar tindakan lokal dan jarak jauh dapat dimulai segera setelah pengguna selesai mendownload output dependennya
- Menambahkan dukungan Symlinks
- Mengambil output perantara dari tindakan jarak jauh setelah build selesai
*Hak Cipta © 2022 JetBrains s.r.o. JetBrains dan IntelliJ adalah merek dagang terdaftar JetBrains s.r.o.