Izdanje Bazel 1.0 build sistema

Poslao oslobađanje otvorenih alata za montažu Bazel 1.0, развиваемого инженерами из Google и используемого для сборки большинства внутренних проектов данной компании. Выпуск 1.0 ознаменовал переход к использованию семантического версионирования релизов и также примечателен внесением большого числа изменений, нарушающих обратную совместимость. Код проекта distribuira licenciran pod Apache 2.0.

Bazel обеспечивает сборку проекта, запуская необходимые компиляторы и тесты. Сборочная система изначально спроектирована для оптимальной сборки проектов Google, в том числе сборки очень больших проектов и проектов, содержащих код на нескольких языках программирования, требующих расширенного тестирования и собираемых для нескольких платформ. Поддерживается сборка и тестирование кода на Java, C++, Objective-C, Python, Rust, Go и многих других языках, а также сборка мобильных приложений для Android и iOS. Поддерживается использование единых сборочных файлов для разных платформ и архитектур, например, один файл сборки без изменений может применяться как для серверной системы, так и для мобильного устройства.

Među karakterističnim karakteristikama Bazela su velika brzina, pouzdanost i ponovljivost procesa montaže. Da bi postigao veliku brzinu izgradnje, Bazel aktivno koristi tehnike keširanja i paralelizacije za proces izgradnje. BUILD fajlovi moraju u potpunosti definisati sve zavisnosti, na osnovu kojih se donose odluke o rekonstrukciji komponenti nakon izvršenih promena (samo promenjene datoteke se ponovo grade) i paralelizuju proces sklapanja. Alat također osigurava ponovljivu montažu, tj. rezultat izgradnje projekta na mašini programera biće potpuno identičan izgradnji na sistemima treće strane, kao što su serveri za kontinuiranu integraciju.

Za razliku od Make i Ninja, Bazel koristi pristup višeg nivoa građenju pravila sklapanja, u kojem se, umjesto definiranja vezivanja naredbi za datoteke koje se grade, koriste apstraktniji gotovi blokovi, kao što je „izgradnja izvršne datoteke u C++“, „izgradnja biblioteke u C++“ ili „pokretanje testa za C++“, kao i prepoznavanje ciljnih i platformi za izgradnju. U tekstualnoj datoteci BUILD, komponente projekta su opisane kao gomila biblioteka, izvršnih datoteka i testova, bez detalja na nivou pojedinačnih datoteka i komandi poziva kompajlera. Dodatna funkcionalnost je implementirana kroz mehanizam za povezivanje ekstenzija.

izvor: opennet.ru

Dodajte komentar