The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск сборочной системы Bazel 1.0

10.10.2019 18:43

Представлен выпуск открытого сборочного инструментария 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 компоненты проекта описываются как связка библиотек, исполняемых файлов и тестов, без детализации на уровне отдельных файлов и команд вызова компилятора. Дополнительная функциональность реализуется через механизм подключения расширений.

  1. Главная ссылка к новости (https://blog.bazel.build/2019/...)
  2. OpenNews: Google открыл систему для создания sandbox-окружений для библиотек C/C++
  3. OpenNews: Компания Google представила первый выпуск открытой системы сборки Bazel
  4. OpenNews: Компания Google развивает новую открытую систему сборки Bazel
  5. OpenNews: Релиз системы сборки CMake 3.15
  6. OpenNews: Выпуск сборочной системы Meson 0.52
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/51650-bazel
Ключевые слова: bazel, build
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (53) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 18:57, 10/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    Офтопик поддерживается? Если нет, то не особо нужно, т.к. не особо кроссплатформенно.
     
     
  • 2.27, artenox (?), 21:35, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    На опеннете значит уважают винду. А где новости про опенсорсный MPC-HC?
     
     
  • 3.36, Аноним (36), 22:06, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Действительно, где? Мы же тут про открытое ПО и опенсорс, вон даже про фряху каждую неделю новости.
     
  • 3.45, llolik (ok), 08:15, 11/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вот, например, Miranda тоже opensource (https://github.com/miranda-ng/miranda-ng) под GNU GPL, тоже довольно популярна, а новостей нет.
    Я как понял, если кто соберётся отслеживать и писать про opensource под офтопик, то принципиально никто не против. Пока, как видно, желающих в районе нуля.
     
     
  • 4.50, Попугай Кеша (?), 12:19, 11/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Опенсорс для проприетарной ОС видимо не так интересен
     
  • 3.46, Аноним (46), 10:06, 11/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Новости присылают пользователи и пишут редакторы. Ссылка внизу.
     

  • 1.4, Аноним (4), 19:15, 10/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Ну теперь то заживём!

    >Google

    А, ну да. Напомните, сколько они всего успешного придумали? И не "купили", а "сделали". Тут они выкатили кусок свой внутренней сборочной системы, все должны сразу бежать и завязываться на гугл и на задачи гугла?

    И насчёт новости, как-то не бросается в глаза, что это сборочная система на жаве, я что-то вообще не вижу упоминаний. А ведь это основное.

     
     
  • 2.7, Futu (?), 19:27, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +9 +/
    С хуже сборочной системы чем Bazel не приходилось работать. Скорость у нее такая же как у всех кто написан на джаве. Интреграция с IDE отсутсвует как таковая. Debug отделальная боль. Писать расширения еще больнее.

    Заточена на монорепо, что отдельная больная тема. Ну сам Гугл использует Blaze, которые немного отличается от Bazel.

     
  • 2.10, Аноним (10), 19:41, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > А, ну да. Напомните, сколько они всего успешного придумали? И не "купили", а "сделали".

    protobuf, gmock и gtest. Всё, это полный список.

     
     
  • 3.12, Аноним (12), 19:52, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ты забыл, как минимум, Android, Chrome и Go. Ну если ты чистый крестовик, то тебе в копилку ещё re2 и flatbuffers.
     
     
  • 4.15, Аноним (15), 20:26, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Меня всегда удивляют фразы "Не сделали, а купили".

    Был мало кому нужный KHTML, пришла Apple и, на половину его переписав, запилила на его основе WebKit. Потом Гугл пришел к Apple и они начали вместе разрабатывать WebKit. Затем они посорились и теперь в Хроме WebKit переименован Blink. При этом, в современном браузере, движок для разбора html/css занимает жалкие проценты от объема кодовой базы. Кто что у кого купил/форкнул? Там хоть что-нибудь от KHTML осталось?

    Или тот же Андроид, который Гуг тоже купила. Операционка разрабатываемая для кнопочных фотокамер. Даже если взять публичные релизы Андроид 1.6 и современный Андроид 10, между ними мало общего.

    Или можно сказать, что Майкрософт купила Виндовс 10. Когда-то же они приобрели прародителя Windows NT.

     
     
  • 5.17, Аноним (4), 20:57, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вопрос вроде был про "придумали". Гугл - корпоративная секта попильщиков рекламных бюджетов, место его сотрудников - в коробке на свалке. Вместо этого эти сотрудники жируют и щемят свободы человечества в интересах транснационального бизнеса, в оставшееся же время они имитируют бурную деятельность (не забывая про главное - щемить любые свободы, другое просто не поощряется).
     
     
  • 6.23, Аноним (12), 21:20, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Чем выпуск Bazel 1.0 ущемил твою свободу?
     
  • 6.25, Аноним (25), 21:25, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Какую конкретно (а не абстрактно и философски) из свобод у тебя отняли?
    За что тебя заставили заплатить, что заставили купить, чем заставили пользоваться?)
    У продуктов Гугла есть и плюсы и минусы - это отдельная тема, но нытье про свободу вообще ни к месту.
     
     
  • 7.28, Аноним (4), 21:36, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Свободу не сливать историю перемешений в гугл. Свободу не сливать все разговоры в присутсвии телефонов в гугл. Свободу отказаться от рекламы в почте и выдаче поисковика (таргетированной и не только). Свободу не сливать историю посещений браузера в гугл (привязанную к устройству, адресу и онлайн-профилю). Этого мало?

    А по поводу заставили купить и заставили пользоваться... Распознавание лиц и распознование устройств сегодня используется во всяких абстрактных пятёрочках. Спасибо гуглу за это, конечно.

     
     
  • 8.29, artenox (?), 21:43, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Хром ее не сливает, кстати В отличии от Оперы Ну, если галочки поснимаешь и си... текст свёрнут, показать
     
     
  • 9.31, Аноним (4), 21:52, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Аналитика сейчас на всех сайтах, с устройства можно и не отправлять списки Дост... текст свёрнут, показать
     
     
  • 10.38, Аноним (46), 23:22, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Говори лично за свой сайт ... текст свёрнут, показать
     
  • 8.35, Аноним (36), 22:04, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А кстати гугл вроде собирается запретить все эти блокировщики трекинга и рекламы... текст свёрнут, показать
     
     
  • 9.39, Аноним (46), 23:28, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это как Потребует, чтобы сайты не работали без аналитики и рекапчи, а остальные... текст свёрнут, показать
     
     
  • 10.56, Аноним84701 (ok), 21:59, 11/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это вот так https www opennet ru opennews art shtml num 50868 У вас, коне... текст свёрнут, показать
     
  • 5.40, vitalif (ok), 23:32, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Андроид 1.6 и современный Андроид 10

    Как раз не так уж сильно и отличаются, принципиально всё уже и в 1.6 было. Свистелок-перделок было меньше только

     

  • 1.5, danonimous (?), 19:16, 10/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Уже бежать переучиваться с Gradle на этот Базель? Как раз заканчиваю переучиваться с Java На Kotlin. Даёшь новый язык и систему сборки каждый год!
     
     
  • 2.8, Грусть (?), 19:29, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Переходите на Nix, например https://github.com/ip1981/npm.nix
     
     
  • 3.9, JL2001 (ok), 19:40, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Java
    > Переходите на Nix, например https://github.com/ip1981/npm.nix

    1) nix поддерживает работу с maven-репозиториями и понимает pom.xml из оных?
    ну и:
    2) параллельная сборка?
    3) компиляция только изменённых файлов и кеш скомпиленного для пересборки?

     
     
  • 4.19, Грусть (?), 21:01, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Он поддерживает всё, как и make, например. Java в планах по образу и подобию.
     
  • 4.21, Аноним (21), 21:13, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Груздь херню спорол. Nix хорошо подходит для сборки проекта целиком и управления зависимостями. Для сборки отдельных компонентов (библиотек или бинарников) он не предназначен вообще никак.
     
     
  • 5.41, Грусть (?), 23:56, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы не поверите.
     
  • 3.53, Leo90 (?), 15:12, 11/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    nix управляет этими системами. он собирает окружение с помощью как раз таки всяких сборочных систем.
     
  • 2.13, IRASoldier_registered (ok), 20:00, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зачем каждый год? Kotlin примерно с 2017 в тренде. Пока что ничего ему на замену не позиционируется. К тому же "переучиваться" - тоже какой-то перебор. Kotlin не заменяет Java, он её дополняет как инструмент для разработки. Если и заменит - то постепенно и без необходимости вот прямо сразу каждому брать и переписывать весь проект.
     
     
  • 3.18, artenox (?), 20:59, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >в тренде

    Вот же слово дурацкое в моду вошло. По моему даже до ТВ добралось.
    Орнуть еще.

     
     
  • 4.24, Аноним (12), 21:22, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Вот же слово дурацкое в моду вошло.

    Да уж вышло почти что. Лет 10 назад было в моде, а теперь уже не в тренде.

     
  • 4.42, IRASoldier_registered (ok), 00:27, 11/10/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Вот же слово дурацкое в моду вошло

    Не говорить же всем "не лепо ли ныне бяшет", как при царе Горохе.

     
     
  • 5.51, InuYasha (?), 14:28, 11/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    а что - возьму на вооружение.
    всё лучше идиотских англизмов.
     
     
  • 6.57, IRASoldier_registered (ok), 06:42, 12/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > всё лучше идиотских англизмов

    Заодно отрасти бороду лопатой, оденься в кафтан на вате, вышитую народными узорами, характерными для деревни, из которой произошли твои предки (никак иначе, а то будет подделка, а не этничность!), рубашку и онучи с лаптями непременно вместо ботинок или кроссовок. Если джинсы на домотканые шаровары с первого раза сменить не выйдет - именуй впредь джинсы исключительно портками. И не забывай оставлять в бороде остатки щей после обеда - важная деталь.

     
  • 3.43, danonimous (?), 01:20, 11/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    С Котлина на Dart уже можно переучиваться, который на Фуксию и Хромос планируется вместе с Flutter.
    Ещё и версии с библиотеками как угарелые клепают, параллельно за Джавой и Котлином надо следить - времени на разработку непосредственно своей программы не остаётся!
     
  • 2.14, Анонимно (?), 20:04, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Котя и Гоша наше всё.
     
  • 2.16, Андрей (??), 20:49, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не надо бежать поперед батька. Возьмём Debian. Gradle появился с версии 0.9.1 в январе 2011-го. Meson появился ещё с версии 0.17.0 в середине 2014-го. А Bazel там всё ещё нет.
     
     
  • 3.30, Аноним (30), 21:48, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Возьмём Debian

    Шлакварю ещё возьмите.....

     
  • 3.33, Аноним (46), 21:53, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Дебиан - это известные любители несвежего.
     
     
  • 4.34, artenox (?), 22:02, 10/10/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Как будто что-то плохое.
     
  • 4.59, Аноним (59), 12:39, 13/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Стабильного. А свежего, да с лопаты - это в арчеводы и федорасты.
     

  • 1.20, Аноним (20), 21:12, 10/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чем это лучше гуглового же GN?
     
     
  • 2.48, Аноним (48), 10:09, 11/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тем что напоминает о Базель III, который суть начало конца Гуглей.
     

  • 1.32, Аноним (46), 21:52, 10/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не рекомендую юзать это оно. Подумываю о форке базэля с целью выпилить из него всё, что мне не нравится (бандлованную джаву, сборку зависимостей вместо использования предсобранных из пакетов и серверные процессы), оставив совместимость с TensorFlow и PlaidML.
     
     
  • 2.55, виндотролль (ok), 15:48, 11/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    подписался на github.com/Аноним/bazel
     

  • 1.44, Аноним (44), 03:28, 11/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Так я не понял, оно поддерживает remote caching? А то у нас сотни разработчиков, и не хотелось бы самому билдить то, что другие уже сбилдили у себя. Чтобы как в гугле -- подтянулись уже сбилженные другими с клауда.
     
     
  • 2.52, 1 (??), 15:11, 11/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://docs.bazel.build/versions/1.0.0/remote-caching.html
     

  • 1.47, Аноним (47), 10:08, 11/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чем это лучше Gradle?
     
     
  • 2.54, Аноним (12), 15:14, 11/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    escobar.jpg
     
  • 2.60, Аноним (59), 12:40, 13/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Тем что NIH.
     

  • 1.49, Аноним (49), 11:34, 11/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    весьма специфичная система - как правильно было сказано, система сборки под моно... большой текст свёрнут, показать
     
  • 1.58, j3t (?), 18:12, 12/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мда кажный день, какая то система сборки зарелизится и каждая прогрессивная, молодежная и кривая, эх лучше родной и единый MSBuild
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру