Випуск складальної системи 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

Додати коментар або відгук