Keluaran sistem binaan Bazel 1.0

Dikemukakan oleh pelepasan alat pemasangan terbuka Bazel 1.0, dibangunkan oleh jurutera daripada Google dan digunakan untuk memasang kebanyakan projek dalaman syarikat. Keluaran 1.0 menandakan peralihan kepada versi keluaran semantik dan juga terkenal kerana memperkenalkan sejumlah besar perubahan yang memecahkan keserasian ke belakang. Kod projek diedarkan oleh berlesen di bawah Apache 2.0.

Bazel membina projek dengan menjalankan penyusun dan ujian yang diperlukan. Sistem binaan direka bentuk dari bawah untuk membina projek Google secara optimum, termasuk projek dan projek yang sangat besar yang mengandungi kod dalam berbilang bahasa pengaturcaraan, memerlukan ujian yang meluas dan dibina untuk berbilang platform. Ia menyokong membina dan menguji kod dalam Java, C++, Objective-C, Python, Rust, Go dan banyak bahasa lain, serta membina aplikasi mudah alih untuk Android dan iOS. Penggunaan fail pemasangan tunggal untuk platform dan seni bina yang berbeza disokong; contohnya, satu fail pemasangan tanpa perubahan boleh digunakan untuk kedua-dua sistem pelayan dan peranti mudah alih.

Antara ciri tersendiri Bazel ialah kelajuan tinggi, kebolehpercayaan dan kebolehulangan proses pemasangan. Untuk mencapai kelajuan binaan yang tinggi, Bazel secara aktif menggunakan teknik caching dan selari untuk proses binaan. Fail BUILD mesti mentakrifkan sepenuhnya semua kebergantungan, berdasarkan keputusan yang dibuat untuk membina semula komponen selepas perubahan dibuat (hanya fail yang diubah dibina semula) dan menyelaraskan proses pemasangan. Perkakas juga memastikan pemasangan berulang, i.e. hasil membina projek pada mesin pembangun akan sama sepenuhnya dengan binaan pada sistem pihak ketiga, seperti pelayan penyepaduan berterusan.

Tidak seperti Make dan Ninja, Bazel menggunakan pendekatan peringkat lebih tinggi untuk membina peraturan pemasangan, di mana, bukannya menentukan pengikatan arahan pada fail yang sedang dibina, lebih banyak blok siap pakai yang abstrak digunakan, seperti "membina fail boleh laku dalam C++", "membina perpustakaan dalam C++" atau "menjalankan ujian untuk C++", serta mengenal pasti sasaran dan membina platform. Dalam fail teks BUILD, komponen projek diterangkan sebagai sekumpulan perpustakaan, fail boleh laku dan ujian, tanpa memperincikan pada tahap fail individu dan arahan panggilan pengkompil. Kefungsian tambahan dilaksanakan melalui mekanisme untuk menyambung sambungan.

Sumber: opennet.ru

Tambah komen