Facebook опубликовал систему сборки Buck2
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Facebook представил новую сборочную систему Buck2, ориентированную на организацию сборки проектов из очень крупных репозиториев, включающих код на разных языках программирования. Ключевыми отличиями новой реализации от ранее применявшейся в Facebook системы Buck является использование языка Rust вместо Java и существенное увеличение эффективности и производительности сборочного процесса (во внутренних тестах в той же инфраструктуре Buck2 выполняет сборочные задания быстрее Buck в два раза). Код распространяется под лицензией Apache 2.0.
Система не привязана к сборке кода на конкретных языках и из коробки поддерживает сборку проектов, написанных на языках C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell и OCaml, используемых в Facebook. Для оформления дополнений, сборочных сценариев и правил применяется язык Starlark, основанный на Python (как в Bazel). Starlark позволяет расширять возможности сборочной системы и абстрагироваться от конкретных языков, применяемых в собираемых проектах.
Высокая производительнось достигается за счёт кэширования результатов, распараллелирования работ и поддержки удалённого выполнения заданий (Remote Build Execution). В сборочном окружении применяется концепция "гермитичности" - собираемый код отрезан от внешнего мира, в процессе сборки извне ничего не загружается, а повторные выполнения работ на разных системах приводят к одному и тому же результату (повторяемые сборки, например, результат сборки проекта на машине разработчика будет полностью совпадать со сборкой на сервере непрерывной интеграции). Ситуация отсутствия зависимости воспринимается в Buck2 как ошибка.
Ключевые особенности Buck2:
- Правила поддержки языков программирования и ядро сборочной системы полностью разделены. Для правил используется язык Starlark, а инструментарий и реализация Starlark написаны на Rust.
- В сборочной системе применяется единый инкрементальный граф зависимостей (без разделения на стадии), что позволяет повысить глубину распараллеливания работ по сравнению с Buck и Bazel и избежать многих типов ошибок.
- Опубликованный на GitHub код Buck2 и правила поддержки языков программирования почти идентичны со внутренней версией, применяемой в инфраструктуре Facebook (отличия только в привязке к редакциям компиляторов и сборочным серверам, применяемым в Facebook).
- Сборочная система спроектирована с оглядкой на интеграцию с системами удалённого выполнения заданий, позволяющими запускать работы на удалённых серверах. API для удалённого выполнения совместим с Bazel и протестирован на совместимость с Buildbarn и EngFlow.
- Обеспечена интеграция с виртуальными файловыми системами, в которых представлено содержимое всего репозитория, но фактически работа осуществляется с актуальным локальным срезом части репозитория (разработчик видит весь репозиторий, но из репозитория извлекаются только востребованные файлы, к которым выполняется обращение). Поддерживаются VFS на базе EdenFS и Git LFS, которые используются в Sapling.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://engineering.fb.com/202...)
- OpenNews: Выпуск сборочной системы Meson 1.0
- OpenNews: Проект AlmaLinux представил новую сборочную систему ALBS
- OpenNews: Релиз goredo 1.0.0, реализации системы сборки redo, предложенной DJB
- OpenNews: Android переходит на сборочную систему Bazel
- OpenNews: Сотрудник Red Hat представил сборочную систему Goals
Похожие новости:
- Уязвимость в Bitbucket Server, приводящая к выполнению кода на сервере
- Facebook открыл код фреймворка для выявления утечек памяти в JavaScript
- Уязвимость в Bitbucket Server, позволяющая выполнить код на сервере
- Facebook выделил C++, Rust, Python и Hack в качестве предпочтительных языков программирования
- Релиз мета-дистрибутива T2 SDE 22.6
- Facebook опубликовал модель для машинного перевода, поддерживающую 200 языков
- Facebook представил механизм TMO, позволяющий экономить 20-32% памяти на серверах
- Facebook открыл код Lexical, библиотеки для создания редакторов текста
- Релиз системы сборки CMake 3.23
- Выпуск сборочного инструментария Qbs 1.21 и начало тестирования Qt 6.3
Теги для поиска: #_buck2, #_buck, #_facebook, #_build
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 17:41
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Facebook представил новую сборочную систему Buck2, ориентированную на организацию сборки проектов из очень крупных репозиториев, включающих код на разных языках программирования. Ключевыми отличиями новой реализации от ранее применявшейся в Facebook системы Buck является использование языка Rust вместо Java и существенное увеличение эффективности и производительности сборочного процесса (во внутренних тестах в той же инфраструктуре Buck2 выполняет сборочные задания быстрее Buck в два раза). Код распространяется под лицензией Apache 2.0. Система не привязана к сборке кода на конкретных языках и из коробки поддерживает сборку проектов, написанных на языках C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell и OCaml, используемых в Facebook. Для оформления дополнений, сборочных сценариев и правил применяется язык Starlark, основанный на Python (как в Bazel). Starlark позволяет расширять возможности сборочной системы и абстрагироваться от конкретных языков, применяемых в собираемых проектах. Высокая производительнось достигается за счёт кэширования результатов, распараллелирования работ и поддержки удалённого выполнения заданий (Remote Build Execution). В сборочном окружении применяется концепция "гермитичности" - собираемый код отрезан от внешнего мира, в процессе сборки извне ничего не загружается, а повторные выполнения работ на разных системах приводят к одному и тому же результату (повторяемые сборки, например, результат сборки проекта на машине разработчика будет полностью совпадать со сборкой на сервере непрерывной интеграции). Ситуация отсутствия зависимости воспринимается в Buck2 как ошибка. Ключевые особенности Buck2:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 17:41
Часовой пояс: UTC + 5