Paglabas ng Bazel 1.0 build system

Ipinasa ni paglabas ng mga bukas na kagamitan sa pagpupulong Bazel 1.0, na binuo ng mga inhinyero mula sa Google at ginamit upang tipunin ang karamihan sa mga panloob na proyekto ng kumpanya. Ang Release 1.0 ay minarkahan ang paglipat sa paggamit ng semantic versioning ng mga release at kapansin-pansin din sa pagpapakilala ng malaking bilang ng mga pagbabago na lumabag sa backward compatibility. Code ng proyekto ipinamahagi ni lisensyado sa ilalim ng Apache 2.0.

Binubuo ni Bazel ang proyekto sa pamamagitan ng pagpapatakbo ng mga kinakailangang compiler at pagsubok. Ang build system ay idinisenyo mula sa simula upang mahusay na bumuo ng mga proyekto ng Google, kabilang ang napakalaking proyekto at proyekto na naglalaman ng code sa maraming programming language, nangangailangan ng malawak na pagsubok, at binuo para sa maraming platform. Sinusuportahan nito ang pagbuo at pagsubok ng code sa Java, C++, Objective-C, Python, Rust, Go at marami pang ibang wika, pati na rin ang pagbuo ng mga mobile application para sa Android at iOS. Ang paggamit ng mga solong assembly file para sa iba't ibang platform at arkitektura ay sinusuportahan; halimbawa, ang isang assembly file na walang mga pagbabago ay maaaring gamitin para sa parehong server system at isang mobile device.

Kabilang sa mga natatanging tampok ng Bazel ay ang mataas na bilis, pagiging maaasahan at pag-uulit ng proseso ng pagpupulong. Upang makamit ang mataas na bilis ng build, aktibong gumagamit si Bazel ng mga diskarte sa pag-cache at parallelization para sa proseso ng pagbuo. Ang mga file ng BUILD ay dapat na ganap na tukuyin ang lahat ng mga dependency, batay sa kung aling mga desisyon ang ginawa upang muling itayo ang mga bahagi pagkatapos gawin ang mga pagbabago (mga binagong file lang ang muling itinayong) at iparallelize ang proseso ng pagpupulong. Tinitiyak din ng tooling ang paulit-ulit na pagpupulong, i.e. ang resulta ng pagbuo ng proyekto sa makina ng developer ay magiging ganap na kapareho sa build sa mga third-party na system, gaya ng tuluy-tuloy na integration server.

Hindi tulad ng Make at Ninja, gumagamit si Bazel ng mas mataas na antas na diskarte sa pagbuo ng mga panuntunan sa pagpupulong, kung saan, sa halip na tukuyin ang pagbubuklod ng mga utos sa mga file na binuo, mas abstract na mga bloke ang ginagamit, tulad ng "pagbuo ng isang executable file sa C++", "pagbuo ng library sa C++" o "pagpapatakbo ng pagsubok para sa C++", pati na rin ang pagtukoy ng target at pagbuo ng mga platform. Sa BUILD text file, ang mga bahagi ng proyekto ay inilalarawan bilang isang bungkos ng mga aklatan, mga executable na file at mga pagsubok, nang hindi nagdedetalye sa antas ng mga indibidwal na file at mga command ng compiler na tawag. Ang karagdagang pag-andar ay ipinapatupad sa pamamagitan ng mekanismo para sa pagkonekta ng mga extension.

Pinagmulan: opennet.ru

Magdagdag ng komento