Liberazione di u sistema di creazione Bazel 1.0

Intruduttu liberazione di strumenti di assemblea aperta Bazel 1.0, sviluppatu da ingegneri da Google è usatu per assemblà a maiò parte di i prughjetti interni di a cumpagnia. A versione 1.0 hà marcatu a transizione à a versione di liberazione semantica è era ancu notu per l'introduzione di un gran numaru di cambiamenti chì anu rottu a cumpatibilità inversa. Codice di prughjettu distribuitu da licenziatu sottu Apache 2.0.

Bazel custruisce u prugettu eseguendu i compilatori è e teste necessarii. U sistema di custruzzione hè cuncepitu da a terra per custruisce in modu ottimale prughjetti di Google, cumprese prughjetti assai grandi è prughjetti chì cuntenenu codice in parechje lingue di prugrammazione, necessitanu teste estensive, è sò custruiti per parechje piattaforme. Supporta a creazione è a prova di codice in Java, C++, Objective-C, Python, Rust, Go è parechje altre lingue, è ancu di custruisce applicazioni mobili per Android è iOS. L'usu di schedarii d'assemblea unichi per e diverse piattaforme è architetture hè supportatu per esempiu, un schedariu di assemblea senza cambiamenti pò esse usatu sia per un sistema di servitore sia per un dispositivu mobile.

Trà e caratteristiche distintive di Bazel sò l'alta veloce, affidabilità è ripetibilità di u prucessu di assemblea. Per ottene una alta velocità di creazione, Bazel usa attivamente tecniche di caching è parallelizazione per u prucessu di creazione. I schedari BUILD deve definisce cumplettamente tutte e dipendenze, nantu à a basa di quali decisioni sò prese per ricustruisce i cumpunenti dopu chì i cambiamenti sò fatti (solu i schedarii cambiati sò ricustruiti) è parallelizà u prucessu di assemblea. L'attrezzatura assicura ancu l'assemblea ripetibile, i.e. u risultatu di custruisce un prughjettu nantu à a macchina di u sviluppatore serà cumplettamente identica à a custruzzione nantu à i sistemi di terzu, cum'è i servitori di integrazione cuntinuu.

A cuntrariu di Make è Ninja, Bazel usa un accostu di livellu più altu per custruisce e regule di assemblea, in quale, invece di definisce u ligame di cumandamenti à i schedari chì sò custruiti, sò usati blocchi più astratti pronti, cum'è "custruì un schedariu eseguibile in C++", "custruì una biblioteca in C++" o "eseguisce una prova per C++", è ancu identificà e piattaforme di destinazione è custruisce. In u schedariu di testu BUILD, i cumpunenti di u prughjettu sò descritti cum'è una mansa di biblioteche, schedarii eseguibili è testi, senza dettagliu à u livellu di i schedarii individuali è i cumandamenti di u compilatore. Funzionalità supplementu hè implementata per mezu di u mecanismu di cunnessione estensioni.

Source: opennet.ru

Add a comment