Vydání sestavení systému Bazel 1.0

Předložené uvolnění otevřených montážních nástrojů Bazel 1.0, který vyvinuli inženýři z Google a který slouží k sestavení většiny interních projektů společnosti. Vydání 1.0 znamenalo přechod na sémantické verze verzí a bylo také pozoruhodné zavedením velkého počtu změn, které narušily zpětnou kompatibilitu. Kód projektu distribuovány licencováno pod Apache 2.0.

Bazel staví projekt spuštěním nezbytných kompilátorů a testů. Systém sestavování je od základu navržen tak, aby optimálně sestavoval projekty Google, včetně velmi velkých projektů a projektů, které obsahují kód v několika programovacích jazycích, vyžadují rozsáhlé testování a jsou sestaveny pro více platforem. Podporuje vytváření a testování kódu v jazycích Java, C++, Objective-C, Python, Rust, Go a mnoha dalších, stejně jako vytváření mobilních aplikací pro Android a iOS. Je podporováno použití jednotlivých souborů sestavení pro různé platformy a architektury, například jeden soubor sestavení beze změn lze použít pro serverový systém i mobilní zařízení.

Mezi charakteristické rysy Bazel patří vysoká rychlost, spolehlivost a opakovatelnost procesu montáže. K dosažení vysoké rychlosti sestavení Bazel aktivně používá techniky ukládání do mezipaměti a paralelizace pro proces sestavení. Soubory BUILD musí plně definovat všechny závislosti, na základě kterých se rozhodují o přestavbě komponent po provedení změn (přestavují se pouze změněné soubory) a paralelizaci procesu sestavení. Nástrojové vybavení také zajišťuje opakovatelnou montáž, tzn. výsledek výstavby projektu na vývojářském stroji bude zcela identický se stavbou na systémech třetích stran, jako jsou servery pro nepřetržitou integraci.

Na rozdíl od Make a Ninja používá Bazel přístup na vyšší úrovni k vytváření pravidel sestavení, ve kterém se namísto definování vazby příkazů na sestavované soubory používají abstraktnější hotové bloky, jako je „sestavení spustitelného souboru v C++“, „vytváření knihovny v C++“ nebo „provádění testu pro C++“, stejně jako identifikace cílových a sestavovacích platforem. V textovém souboru BUILD jsou komponenty projektu popsány jako hromada knihoven, spustitelných souborů a testů, bez podrobností na úrovni jednotlivých souborů a příkazů volání kompilátoru. Další funkce jsou implementovány prostřednictvím mechanismu pro připojení rozšíření.

Zdroj: opennet.ru

Přidat komentář