Выпуск зборачнай сістэмы Bazel 1.0

Прадстаўлены выпуск адкрытага зборачнага інструментара Bazel 1.0, Які развіваецца інжынерамі з Google і выкарыстоўванага для зборкі большасці ўнутраных праектаў дадзенай кампаніі. Выпуск 1.0 адзначыў пераход да выкарыстання семантычнага версіявання рэлізаў і таксама адметны занясеннем вялікай колькасці змен, якія парушаюць зваротную сумяшчальнасць. Код праекту распаўсюджваецца пад ліцэнзіяй Apache 2.0.

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

Сярод адметных асаблівасцяў Bazel вылучаюцца высокая хуткасць, надзейнасць і паўтаральнасць працэсу зборкі. Для дасягнення высокай хуткасці зборкі ў Bazel актыўна прымяняюцца тэхнікі кэшавання і распаралельвання працэсу зборкі. У BUILD-файлах абавязкова цалкам вызначаны ўсе залежнасці, на аснове якіх прымаюцца рашэнні па перазборцы кампанентаў пасля занясення змен (перазбіраюцца толькі якія змяніліся файлы) і распаралельванні працэсу зборкі. Інструментарый таксама гарантуе паўтаральнасць зборкі, г.зн. вынік зборкі праекту на машыне распрацоўніка будзе цалкам супадаць са зборкай на іншых сістэмах, такіх як серверы бесперапыннай інтэграцыі.

У адрозненне ад Make і Ninja у Bazel ужываецца больш высокаўзроўневы падыход да пабудовы правіл зборкі, пры якім замест азначэння прывязкі каманд да збіраных файлаў вырабляецца ўжыванне больш абстрактных гатовых блокаў, такіх як «зборка выкананага файла на мове З++», «зборка бібліятэкі на C++» ці «запуск тэста для C++», а таксама вызначэнне мэтавых і зборачных платформ. У тэкставым файле BUILD кампаненты праекту апісваюцца як звязак бібліятэк, выкананых файлаў і тэстаў, без дэталізацыі на ўзроўні асобных файлаў і каманд выкліку кампілятара. Дадатковая функцыянальнасць рэалізуецца праз механізм падключэння пашырэнняў.

Крыніца: opennet.ru

Дадаць каментар