Vydanie montážneho systému Bazel 1.0

Predloženej uvoľnenie nástrojov na otvorenú montáž Bazel 1.0, ktorý vyvinuli inžinieri zo spoločnosti Google a ktorý sa používa na zostavenie väčšiny interných projektov spoločnosti. Vydanie 1.0 znamenalo prechod na sémantické vydanie verzií a bolo tiež pozoruhodné zavedením veľkého počtu zmien, ktoré narušili spätnú kompatibilitu. Kód projektu distribuovaný licencovaný pod Apache 2.0.

Bazel vytvára projekt spustením potrebných kompilátorov a testov. Systém zostavovania je od základov navrhnutý tak, aby optimálne zostavoval projekty Google vrátane veľmi veľkých projektov a projektov, ktoré obsahujú kód vo viacerých programovacích jazykoch, vyžadujú rozsiahle testovanie a sú zostavené pre viaceré platformy. Podporuje vytváranie a testovanie kódu v jazykoch Java, C++, Objective-C, Python, Rust, Go a mnohých ďalších, ako aj vytváranie mobilných aplikácií pre Android a iOS. Podporuje sa použitie jednotlivých súborov zostavy pre rôzne platformy a architektúry, napríklad jeden súbor zostavy bez zmien možno použiť pre serverový systém aj mobilné zariadenie.

Medzi charakteristické znaky Bazel patrí vysoká rýchlosť, spoľahlivosť a opakovateľnosť procesu montáže. Na dosiahnutie vysokej rýchlosti zostavovania Bazel aktívne používa techniky ukladania do vyrovnávacej pamäte a paralelizácie pre proces zostavovania. BUILD súbory musia plne definovať všetky závislosti, na základe ktorých sa rozhoduje o prestavbe komponentov po vykonaní zmien (prestavujú sa len zmenené súbory) a paralelizácia procesu zostavovania. Nástroje zabezpečujú aj opakovateľnú montáž, t.j. výsledok budovania projektu na stroji vývojára bude úplne identický s budovaním na systémoch tretích strán, ako sú servery s nepretržitou integráciou.

Na rozdiel od Make a Ninja Bazel používa prístup na vyššej úrovni k vytváraniu pravidiel zostavovania, v ktorom sa namiesto definovania väzby príkazov na zostavované súbory používajú abstraktnejšie hotové bloky, ako napríklad „zostavenie spustiteľného súboru v C++“, „vytvorenie knižnice v C++“ alebo „spustenie testu pre C++“, ako aj identifikáciu cieľových a zostavovacích platforiem. V textovom súbore BUILD sú komponenty projektu opísané ako zväzok knižníc, spustiteľných súborov a testov, bez toho, aby boli podrobne opísané na úrovni jednotlivých súborov a príkazov na volanie kompilátora. Ďalšie funkcie sú implementované prostredníctvom mechanizmu na pripojenie rozšírení.

Zdroj: opennet.ru

Pridať komentár