Vydanie montážneho systému Bazel 2.0

K dispozícii uvoľnenie nástrojov na otvorenú montáž Bazel 2.0, ktorý vyvinuli inžinieri zo spoločnosti Google a ktorý sa používa na zostavenie väčšiny interných projektov spoločnosti. Bazel vytvára projekt spustením potrebných kompilátorov a testov. 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. Kód projektu distribuovaný licencovaný pod Apache 2.0.

Významná zmena verzie zahŕňa pridanie zmien, ktoré narušia spätnú kompatibilitu. Počnúc Bazel 2.0 sú predvolene povolené nasledujúce režimy: „—incompatible_remap_main_repo“ (odkazy podľa názvu a cez @ teraz odkaz na rovnaké úložisko), „—incompatible_disallow_dict_lookup“_(použitie nehašovateľných kľúčov),
"--incompatible_remove_native_maven_jar" a "--incompatible_prohibit_aapt1". Medzi ďalšie zmeny patria:

  • V tíme akvariát objavila sa experimentálna podpora pre novú edíciu výstupného formátu „proto“ (-output=proto), ktorý je v súčasnosti štandardne vypnutý (-incompatible_proto_output_v2) a poskytuje kompaktnejšiu prezentáciu údajov;
  • Pridaný príznak „--incompatible_remove_enabled_toolchain_types“ na odstránenie poľa PlatformConfiguration.enabled_toolchain_types;
  • Pridaná ochrana proti načítaniu balíkov, ktoré používajú cyklické symbolické odkazy pri načítavaní ciest pri ich rozširovaní;
  • Implementovaná schopnosť používať príznak „--disk_cache“ s externými vyrovnávacími pamäťami gRPC;
  • Balík Debianu a binárny inštalátor obsahuje vylepšenú vrstvu, ktorá spracováva súbory ~/.bazelversion a premennú prostredia $USE_BAZEL_VERSION;
  • V rámci prípravy na ukončenie podpory súborov manifestu runfiles bol pridaný príznak "--experimental_skip_runfiles_manifests".

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í.

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. 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ú si rozsiahle testovanie a sú zostavené pre viaceré platformy.

Zdroj: opennet.ru

Pridať komentár