paglabas ng mga open source na tool sa pagpupulong , na binuo ng mga inhinyero ng Google at ginamit upang bumuo ng karamihan sa mga panloob na proyekto ng kumpanya. Ang 1.0 na release ay minarkahan ang paglipat sa semantic versioning at kapansin-pansin din sa pagpapakilala ng malaking bilang ng mga pagbabago na sumisira sa backward compatibility. Ang code ng proyekto lisensyado sa ilalim ng Apache 2.0.
Ang Bazel ang humahawak sa mga pagbuo ng proyekto, na nagpapatakbo ng mga kinakailangang compiler at pagsubok. Ang sistema ng pagbuo ay dinisenyo mula sa simula upang mahusay na makabuo ng mga proyekto ng Google, kabilang ang napakalaking proyekto at mga proyektong naglalaman ng code sa maraming wika ng programming, na nangangailangan ng malawak na pagsubok, at pagbuo 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 app para sa Android at iOS. Sinusuportahan ang paggamit ng mga karaniwang assembly file para sa iba't ibang platform at arkitektura; halimbawa, maaaring gamitin ang isang assembly file nang hindi nababago para sa parehong server system at isang mobile device.
Kabilang sa mga natatanging tampok ni Bazel ay ang mataas na bilis, pagiging maaasahan, at pag-uulit ng proseso ng pagbuo. Upang makamit ang mataas na bilis ng pagbuo, aktibong ginagamit ni Bazel ang mga diskarte sa pag-cache at parallelization. Ang mga file ng BUILD ay dapat na ganap na tukuyin ang lahat ng mga dependency, na ginagamit upang matukoy kung muling bubuo ng mga bahagi pagkatapos ng mga pagbabago (ang mga binagong file lang ang itinayong muli) at kung ihahalintulad ang proseso ng pagbuo. Ginagarantiyahan din ng tooling ang build repeatability, ibig sabihin, ang proyektong binuo sa makina ng developer ay magiging ganap na pare-pareho sa build sa mga third-party 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 pagbuo. Sa halip na tukuyin ang mga command binding para sa mga file na binuo, gumagamit ito ng higit pang abstract, ready-made blocks, gaya ng "build a C++ executable," "build a C++ library," o "run a C++ test," pati na rin ang pagtukoy ng target at build platforms. Sa BUILD text file, ang mga bahagi ng proyekto ay inilalarawan bilang mga bundle ng mga library, executable, at mga pagsubok, nang hindi nagdedetalye ng mga indibidwal na file at mga command sa invocation ng compiler. Ang karagdagang pag-andar ay ipinapatupad sa pamamagitan ng mga extension.
Pinagmulan: opennet.ru
