„Bazel 1.0“ kūrimo sistemos išleidimas

Įvesta atviro surinkimo įrankių išleidimas Bazel 1.0, развиваемого инженерами из Google и используемого для сборки большинства внутренних проектов данной компании. Выпуск 1.0 ознаменовал переход к использованию семантического версионирования релизов и также примечателен внесением большого числа изменений, нарушающих обратную совместимость. Код проекта išplatino licencijuota pagal Apache 2.0.

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

Tarp išskirtinių „Bazel“ savybių yra didelis surinkimo proceso greitis, patikimumas ir pakartojamumas. Kad pasiektų didelę kūrimo spartą, „Bazel“ kūrimo procesui aktyviai naudoja talpyklos ir lygiagretinimo būdus. BUILD failai turi visiškai apibrėžti visas priklausomybes, kurių pagrindu priimami sprendimai po pakeitimų atstatyti komponentus (atkuriami tik pakeisti failai) ir sugretinti surinkimo procesą. Įrankiai taip pat užtikrina pakartotinį surinkimą, t.y. Projekto kūrimo kūrėjo kompiuteryje rezultatas bus visiškai identiškas trečiųjų šalių sistemoms, pvz., nuolatinio integravimo serveriams.

Skirtingai nei Make ir Ninja, Bazel naudoja aukštesnio lygio metodą, kad sukurtų surinkimo taisykles, kai užuot apibrėžęs komandų susiejimą su kuriamais failais, naudojami abstraktesni paruošti blokai, pvz., „vykdomojo failo kūrimas C++“, „bibliotekos kūrimas C++“ arba „C++ testavimo vykdymas“, taip pat tikslinių ir kūrimo platformų nustatymas. Tekstiniame faile BUILD projekto komponentai aprašomi kaip bibliotekų, vykdomųjų failų ir testų krūva, nedetalizuojant atskirų failų ir kompiliatoriaus iškvietimo komandų. Papildomos funkcijos įgyvendinamos naudojant plėtinių prijungimo mechanizmą.

Šaltinis: opennet.ru

Добавить комментарий