Ringkasan
Selamat tahun baru untuk komunitas Bazel kami. Dengan tahun baru, kami berencana menghadirkan detail roadmap 2023 kami. Tahun lalu, kami memublikasikan roadmap tahun 2022 dengan paket Bazel 6.0. Kami harap roadmap yang diberikan dapat memberi Anda informasi tentang kebutuhan alat build Anda. Seiring berkembangnya project Bazel sebagai respons terhadap kebutuhan Anda, kami ingin menyampaikan informasi terbaru kami untuk tahun 2023.
Dengan perubahan ini, kami ingin agar komunitas open source kami tetap mendapatkan informasi dan menyertakan mereka. Roadmap ini menjelaskan inisiatif dan prediksi saat ini untuk masa depan pengembangan Bazel, yang memberi Anda visibilitas terkait prioritas saat ini dan project yang sedang berlangsung.
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 ingin mengirimkan banyak item yang masih dalam proses pengembangan dan terus melakukan peningkatan fitur yang diminta oleh pengguna.
Berbagi cache lintas platform yang lebih baik
Memungkinkan artefak yang di-cache untuk 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.
Membangun aplikasi Android dengan Bazel
Manifes & Penggabungan Resource 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 secara otomatis menyelesaikan dependensi transitif, sehingga project dapat diskalakan dengan tetap cepat dan hemat resource. Bazel 7.0 berisi sejumlah peningkatan untuk fungsi pengelolaan 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 cache repositori yang lengkap (tidak hanya mendownload artefak ke dalam cache, tetapi juga konten repositori akhir)
- Bazel Central Registry mencakup kontribusi rutin komunitas dan penerapan aturan utama Bazel & project
Membuat metrik analisis
Bazel 7.0 menyediakan metrik waktu fase analisis, yang memungkinkan developer mengoptimalkan performa build mereka sendiri.
Bangun tanpa mengaktifkan Byte secara default
Build tanpa Bytes 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 lease, sehingga pengguna tidak mengalami error saat artefak dikeluarkan sebelum waktunya
Mengatasi kesenjangan fitur dalam dukungan symlink
Menyediakan opsi untuk mengambil output perantara dari tindakan jarak jauh
Membangun Produktivitas dengan Skymeld
Bazel 7.0 memperkenalkan Skymeld — mode evaluasi yang mengurangi waktu tunggu untuk build multi-target. Skymeld menghilangkan pembatas antara fase analisis dan eksekusi untuk meningkatkan kecepatan build, terutama untuk build dengan beberapa target level atas. Namun, untuk build target tunggal, diperkirakan tidak akan ada perbedaan yang signifikan.
Ekosistem Bazel & Alat
Membangun 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 agar dapat mendukung kontribusi komunitas dengan lebih baik. Selain itu, kami telah membuat aturan ini yang terpisah dari biner Bazel inti, sehingga kami dapat merilis 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 apa pun dengan cepat melalui versi Instal Seluler yang diupdate.
Pembuatan data Software Bill of Materials (SBOM) & Alat kepatuhan lisensi OSS
Dengan Bazel, developer dapat membuat data untuk membantu membuat SBOM. Data ini dihasilkan dalam format teks atau JSON, dan dapat diformat dengan mudah agar memenuhi spesifikasi SPDX atau CycloneDX. Selain itu, proses ini menyediakan aturan untuk menyatakan lisensi yang disediakan modul Bazel, dan alat untuk membangun proses seputar deklarasi tersebut. Lihat implementasi aturan_lisensi 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
Selesaikan migrasi set aturan Java, C++, dan Python ke Starlark. Upaya ini memungkinkan pengguna Bazel untuk hanya melakukan fork set aturan dan bukan basis kode biner Bazel, yang memungkinkan pengguna
- Memperbarui dan menyesuaikan aturan sesuai kebutuhan
- Mengupdate aturan secara terpisah dari Bazel
Dukungan Bazel-JetBrains* IntelliJ IDEA
Pembaruan 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 info terbaru terkait 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