Ringkasan
Selamat tahun baru untuk komunitas Bazel kami. Dengan tahun baru, kami berencana untuk membawa detail rencana kami untuk tahun 2023. Tahun lalu, kami memublikasikan rencana tahun 2022 kami dengan rencana Bazel 6.0 kami. Kami berharap peta jalan yang diberikan sesuai dengan kebutuhan alat build Anda. Karena project Bazel terus berkembang sebagai respons terhadap kebutuhan Anda, kami ingin membagikan pembaruan tahun 2023.
Dengan perubahan ini, kami ingin terus memberi tahu dan menjadikan komunitas open source kami sebagai publik. Roadmap 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 menghadirkan dukungan jangka panjang (LTS) Bazel 7.0 kepada Anda di akhir tahun 2023. Dengan Bazel 7.0 kami berupaya untuk memberikan banyak item yang sedang dalam proses dan terus mengerjakan peningkatan fitur yang diminta oleh pengguna.
Berbagi cache lintas platform yang lebih baik
Memungkinkan artefak yang di-cache dibagikan di seluruh 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.
Build aplikasi Android dengan Bazel
Penggabungan Manifes & Resource diperbarui 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 --tugas.
Bzlmod: sistem pengelolaan dependensi eksternal
Bzlmod otomatis mengatasi dependensi transitif, sehingga memungkinkan project diskalakan sambil 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 hermetik dengan Bzlmod
- Dukungan mode offline/vendor — memungkinkan pengguna menjalankan build dengan dependensi yang sudah didownload sebelumnya
- Dukungan cache repositori lengkap (membuat cache artefak tidak hanya download, tetapi juga konten repositori akhir)
- Bazel Central Registry mencakup kontribusi komunitas reguler dan adopsi aturan & amp; proyek utama Bazel
Membuat metrik analisis
Bazel 7.0 menyediakan metrik waktu fase analisis, yang memungkinkan developer mengoptimalkan performa build mereka sendiri.
Mem-build tanpa Byte diaktifkan secara default
Build tanpa Byte akan mengoptimalkan performa dengan menghindari download artefak perantara dan mencegah build menghambat pada bandwidth jaringan. Fitur yang ditambahkan meliputi:
Dukungan untuk penghapusan cache jarak jauh dengan layanan sewa agar pengguna tidak mengalami error saat artefak dikeluarkan sebelum waktunya
Mengatasi kesenjangan fitur di dukungan symlink
Memberikan opsi untuk mengambil output perantara dari tindakan jarak jauh
Membangun Produktivitas dengan Skymeld
Bazel 7.0 memperkenalkan Skymeld — mode evaluasi yang mengurangi waktu proses build multi-target dari build Anda. Skymeld menghilangkan penghalang antara fase analisis dan eksekusi untuk meningkatkan kecepatan build, terutama untuk build dengan beberapa target level teratas. Namun, untuk build target tunggal, tidak ada perbedaan signifikan yang diperkirakan.
Ekosistem & amp; Peralatan 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 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 men-deploy perubahan aplikasi Android apa pun dengan cepat melalui versi Instal Seluler yang telah diupdate.
Software Bill of Materials Data Generation (SBOM) & amp; alat kepatuhan lisensi OSS
Dengan Bazel, developer dapat membuat data untuk membantu menghasilkan SBOM. Data ini output dalam format teks atau JSON, dan dapat dengan mudah diformat untuk memenuhi spesifikasi SPDX atau CycloneDX. Selain itu, proses tersebut menyediakan aturan untuk mendeklarasikan lisensi modul Bazel yang tersedia, dan alat untuk mem-build proses berdasarkan deklarasi tersebut. Lihat penerapan_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-op multi-platform mengidentifikasi sumber biner Bazel dan melindungi sistem mereka dari biner yang berpotensi berbahaya dan belum diverifikasi.
Migrasi aturan Java, C++, dan Python ke Starlark
Menyelesaikan migrasi kumpulan aturan Java, C++, dan Python ke Starlark. Upaya ini memungkinkan pengguna Bazel hanya melakukan fork kumpulan aturan dan bukan codebase biner Bazel, sehingga pengguna dapat
- Memperbarui dan menyesuaikan aturan sesuai kebutuhan
- Memperbarui aturan secara terpisah dari Bazel
Dukungan Bazel-JetBrains* IntelliJ IDEA
Update plugin IntelliJ inkremental untuk mendukung rilis plugin JetBrains terbaru.
Ringkasan peta jalan ini ditargetkan, dan tidak boleh dianggap sebagai jaminan. Prioritas dapat berubah seiring dengan masukan 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 dari JetBrains s.r.o