Ringkasan
Selamat tahun baru untuk komunitas Bazel kami. Di tahun baru ini, kami berencana untuk memberikan detail rencana tahun 2023. Tahun lalu, kami memublikasikan rencana tahun 2022 dengan rencana Bazel 6.0. Kami harap rencana tersebut dapat memberikan informasi yang Anda butuhkan untuk alat build. Seiring dengan terus berkembangnya project Bazel sebagai respons terhadap kebutuhan Anda, kami ingin membagikan update tahun 2023.
Dengan perubahan ini, kami ingin terus memberikan informasi dan melibatkan komunitas open source kami. Rencana ini menjelaskan inisiatif dan prediksi saat ini untuk masa depan pengembangan Bazel, sehingga Anda dapat melihat prioritas saat ini dan project yang sedang berlangsung.
Rilis Bazel 7.0
Kami berencana untuk memberikan dukungan jangka panjang (LTS) Bazel 7.0 kepada Anda pada akhir tahun 2023. Dengan Bazel 7.0, kami ingin memberikan banyak item yang sedang dalam proses dan terus berupaya meningkatkan fitur yang diminta oleh pengguna kami.
Berbagi cache lintas platform yang lebih baik
Memungkinkan artefak yang di-cache untuk dibagikan di berbagai platform build lokal (Mac) dan build 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
Update Penggabungan Manifes & Resource 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 pengelolaan dependensi eksternal
Bzlmod otomatis menyelesaikan 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 hermetik dengan Bzlmod
- Dukungan mode vendor/offline — memungkinkan pengguna menjalankan build dengan dependensi yang telah didownload sebelumnya
- Dukungan cache repositori lengkap (cache tidak hanya mendownload artefak, tetapi juga konten repositori akhir)
- Bazel Central Registry menyertakan kontribusi komunitas reguler dan adopsi aturan & project Bazel utama
Metrik analisis build
Bazel 7.0 menyediakan metrik waktu fase analisis, sehingga developer dapat mengoptimalkan performa build mereka sendiri.
Build tanpa Byte diaktifkan secara default
Build tanpa Byte mengoptimalkan performa dengan menghindari download artefak perantara dan mencegah build mengalami bottleneck pada bandwidth jaringan. Fitur yang ditambahkan mencakup:
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
Produktivitas Build dengan Skymeld
Bazel 7.0 memperkenalkan Skymeld — mode evaluasi yang mengurangi waktu nyata build multi-target Anda. Skymeld menghilangkan hambatan antara fase analisis dan eksekusi untuk meningkatkan kecepatan build, terutama untuk build dengan beberapa target tingkat atas. Namun, untuk build target tunggal, 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 merilisnya lebih sering.
- Migrasi aturan Android ke Starlark
- Dukungan R8: Memungkinkan developer aplikasi Android menggunakan pengoptimalan R8 yang diperbarui.
- Mobile Install: Memungkinkan developer aplikasi Android mengembangkan, menguji, dan men-deploy perubahan aplikasi Android dengan cepat melalui Mobile Install versi terbaru.
Pembuatan data Software Bill of Materials (SBOM) &alat kepatuhan lisensi OSS
Dengan Bazel, developer dapat membuat data untuk membantu menghasilkan SBOM. Data ini dioutput dalam format teks atau JSON, dan dapat dengan mudah diformat untuk memenuhi spesifikasi SPDX atau CycloneDX. Selain itu, proses ini menyediakan aturan untuk mendeklarasikan lisensi yang digunakan untuk menyediakan modul Bazel, dan alat untuk membuat 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 terverifikasi.
Migrasi aturan Java, C++, dan Python ke Starlark
Migrasi lengkap kumpulan aturan Java, C++, dan Python ke Starlark. Upaya ini memungkinkan pengguna Bazel hanya melakukan fork kumpulan aturan, bukan kode dasar biner Bazel, sehingga pengguna dapat
- Memperbarui dan menyesuaikan aturan sesuai kebutuhan
- Memperbarui aturan secara independen dari Bazel
Dukungan IntelliJ IDEA Bazel-JetBrains*
Update plugin IntelliJ inkremental untuk mendukung rilis plugin JetBrains terbaru.
Rencana ini menampilkan target, 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 rencana ini — bergabunglah dengan komunitas Google Group.
*Copyright © 2022 JetBrains s.r.o. JetBrains dan IntelliJ adalah merek dagang terdaftar dari JetBrains s.r.o