Roadmap Bazel

Laporkan masalah Lihat sumber {/18/}{/1/}

Ringkasan

Project Bazel terus berkembang sebagai respons terhadap kebutuhan Anda — mengembangkan fitur dan memberikan dukungan sekaligus memelihara, memfaktorkan ulang, dan meningkatkan performa produk inti.

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.

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.

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 kuat dan diminta komunitas untuk mengelola dependensi, melakukan pengembangan dengan Android, dan banyak lagi.

Bzlmod: sistem manajemen dependensi eksternal

Bzlmod secara 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 beralih dari 'eksperimental' menjadi 'tersedia secara umum'
  • Menyertakan dukungan untuk rules\_jvm\_external, yang memungkinkan pengguna mendownload dependensi Maven untuk project Java
  • Panduan Migrasi Bzlmod menyediakan alat, skrip, dan dokumentasi kepada tim yang ingin mengadopsi Bzlmod
  • Repositori pusat Bazel menghosting aturan BUILD Bazel inti (rules\_jvm\_external, rules\_go, rules\_python, rules\_nodejs) dan dependensi kunci yang diperlukan untuk Bzlmod

Untuk mengetahui informasi selengkapnya tentang pengembangan ini, tonton info terbaru komunitas Bzlmod atau baca dokumen desain asli.

Membangun aplikasi Android dengan Bazel

Bazel 6.0 akan menyertakan alat yang ditingkatkan 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" dalam 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 mengizinkan penulis untuk menulis aturan menggunakan toolbar opsional berperforma tinggi jika tersedia dengan implementasi penggantian untuk platform lain.

Dukungan Bazel-JetBrains* IntelliJ IDEA

JetBrains telah berpartner dengan Bazel untuk bersama-sama mengelola plugin Bazel IntelliJ IDEA, yang mendukung sasaran meningkatkan pelayanan komunitas dan membuka kapasitas untuk permintaan fitur dan pengembangan.

  • Plugin IntelliJ v. 2022.2 menyediakan dukungan untuk rilis plugin JetBrains terbaru
  • Meningkatkan kompatibilitas dengan pengembangan jarak jauh
  • Mengembangkan pengembangan berbasis komunitas untuk fitur dalam penerbangan seperti dukungan Scala

Untuk mengetahui informasi selengkapnya tentang pengembangan ini, baca pengumuman blog Bazel-JetBrains.

Pengembangan di masa depan

Ke depannya, tim Bazel telah memulai pengembangan atau memperkirakan akan memprioritaskan fitur-fitur berikut pada tahun 2023 dan seterusnya.

Meningkatkan aturan build Android Bazel

Teruslah berinvestasi dalam pengalaman pengembangan aplikasi Android, dengan berfokus pada alur kerja melalui build, pengujian, dan deployment.

  • Migrasi ke dan dukungan untuk R8
  • Pembaruan pada aturan Android, termasuk terjemahan ke bahasa Starlark
  • Dukungan untuk App Bundle
  • Dukungan untuk versi NDK terbaru
  • Menguji cakupan kode

Alat kepatuhan lisensi OSS

Developer meminta pemeriksa kepatuhan lisensi yang andal untuk memastikan ketersediaan dan keamanan paket yang disertakan. Project ini menyediakan serangkaian aturan dan alat untuk membantu mengidentifikasi serta memitigasi risiko kepatuhan dan lisensi yang terkait dengan komponen software tertentu. Fitur target meliputi:

  • Kemampuan untuk mengaudit paket yang digunakan oleh target tertentu
  • Kemampuan untuk membuat pemeriksaan kepatuhan lisensi khusus organisasi.

Lihat penerapan aturan_lisensi 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 meliputi:

  • Dukungan untuk build hermetic
  • Mode vendor/offline menyematkan aturan referensi berversi ke salinan lokal
  • Bazel Central Registry mencakup kontribusi rutin komunitas serta adopsi aturan & project utama Bazel
  • Bzlmod menjadi alat default untuk membuat project Bazel

Build yang ditandatangani

Bazel akan 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 berbahaya yang tidak diverifikasi.

API Platform Standar

Platforms API yang 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 memberikan metrik waktu fase analisis, sehingga developer dapat mengoptimalkan performa build mereka sendiri.

Eksekusi jarak jauh dengan “Build tanpa Byte”

Build tanpa Bytes 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:

  • Gunakan download asinkron agar tindakan lokal dan jarak jauh dapat dimulai segera setelah mereka mendownload output dependennya
  • Menambahkan dukungan Symlink
  • Mengambil output perantara dari tindakan jarak jauh setelah build selesai

*Hak Cipta © 2022 JetBrains s.r.o. JetBrains dan IntelliJ adalah merek dagang terdaftar dari JetBrains s.r.o.