Rilis sistem perakitan Bazel 1.0

Disampaikan oleh pelepasan alat perakitan terbuka Bazel 1.0, dikembangkan oleh para insinyur dari Google dan digunakan untuk merakit sebagian besar proyek internal perusahaan. Rilis 1.0 menandai transisi ke versi rilis semantik dan juga terkenal karena memperkenalkan sejumlah besar perubahan yang merusak kompatibilitas. Kode proyek didistribusikan oleh berlisensi di bawah Apache 2.0.

Bazel membangun proyek dengan menjalankan kompiler dan pengujian yang diperlukan. Sistem pembangunan dirancang dari awal untuk membangun proyek Google secara optimal, termasuk proyek yang sangat besar dan proyek yang berisi kode dalam berbagai bahasa pemrograman, memerlukan pengujian ekstensif, dan dibuat untuk berbagai platform. Ini mendukung pembuatan dan pengujian kode dalam Java, C++, Objective-C, Python, Rust, Go dan banyak bahasa lainnya, serta membangun aplikasi seluler untuk Android dan iOS. Penggunaan file rakitan tunggal untuk platform dan arsitektur berbeda didukung; misalnya, satu file rakitan tanpa perubahan dapat digunakan untuk sistem server dan perangkat seluler.

Di antara ciri khas Bazel adalah kecepatan tinggi, keandalan, dan pengulangan proses perakitan. Untuk mencapai kecepatan build yang tinggi, Bazel secara aktif menggunakan teknik caching dan paralelisasi untuk proses build. File BUILD harus sepenuhnya mendefinisikan semua dependensi, berdasarkan keputusan yang dibuat untuk membangun kembali komponen setelah perubahan dilakukan (hanya file yang diubah yang dibangun kembali) dan memparalelkan proses perakitan. Perkakas juga memastikan perakitan berulang, mis. hasil pembangunan proyek di mesin pengembang akan sepenuhnya identik dengan pembangunan di sistem pihak ketiga, seperti server integrasi berkelanjutan.

Tidak seperti Make dan Ninja, Bazel menggunakan pendekatan tingkat yang lebih tinggi untuk membuat aturan perakitan, di mana, alih-alih menentukan pengikatan perintah ke file yang sedang dibuat, blok siap pakai yang lebih abstrak digunakan, seperti β€œmembuat file yang dapat dieksekusi di C++”, β€œmembangun perpustakaan di C++" atau "menjalankan pengujian untuk C++", serta mengidentifikasi target dan membangun platform. Dalam file teks BUILD, komponen proyek digambarkan sebagai sekumpulan perpustakaan, file yang dapat dieksekusi, dan pengujian, tanpa merinci pada tingkat file individual dan perintah panggilan kompiler. Fungsionalitas tambahan diimplementasikan melalui mekanisme untuk menghubungkan ekstensi.

Sumber: opennet.ru

Tambah komentar