1. ABF — система для
совместной разработки
свободного ПО
Роман Вялов
Владимир Рубанов
Евгений Соколов
Владимир Шаршов (докладчик)
ROSA Lab
2. Что такое ABF?
Automatic Build Farm (ABF) —
интегрированная система для совместной
разработки ПО:
● Хостинг проектов
● Система сборки
● Проектная wiki
● Проектный трекер задач
3. Что такое ABF?
Automatic Build Farm (ABF) —
интегрированная система для совместной
разработки ПО:
● Хостинг проектов
● Система сборки
● Проектная wiki
● Проектный трекер задач
4. ABF для разработчика
● Git-репозиторий
● Легковесный проектный трекер задач
● Проектная (контекстная) вики
● Площадка для обмена и обсуждения
кода (PullRequest)
● Веб-интерфейс для работы с git
● Автоматизированный workflow
5. ABF для майтейнера
● Сборка проектов под разные
дистрибутивы и архитектуры
● Частные репозитории
● Удобный мониторинг задач
● Сборка ISO
6. ABF: основные идеи
● Хостинг, разработка и сборка кода должны
быть доступны на единой площадке
● Пользовательский интерфейс - важная
часть системы
● Поддержка разработки множества
различных дистрибутивов
● Собрать свой образ дистрибутива должно
быть не просто, а очень просто
● Персональный репозиторий каждому
пользователю
● Всесторонние автоматические проверки
пакетов залог здоровья репозитория
7. Избранные возможности
● Запросы на изменения (PullRequest)
● Интегрированная проектная wiki
● Приватные проекты
● Частные репозитории
8. Чем ABF не является?
● Системой сборки с мета-спеком для
множества дистрибутивов
● Системой, полностью повторяющей весь
процесс сборки для всех дистрибутивов
● Лучшим решением из всех для всех
9. Зачем для ROSA?
● Замена морально устаревшей и
неподдерживаемой системы Kenobi
● Собственный инструмент разработки и
сборки (с возможностью автоматизации
специализированных сценариев работы)
● Объедение сообщества Mandriva
13. Функции веб-подсистемы
● Аутентификация и авторизация
пользователей для всех подсистем
● Пользовательский интерфейс для
управления элементами системы
● Управление заданиями для ядра
сборочной системы пакетов и клиентов
сборки образов
● Сопутствующие службы: проектный
трекер задач, wiki, PullRequest, лента
активности...
14. Функции системы хранения
исходного кода
●
Хранение кода в git-репозиториях
● Отдача/приемка исходного кода
Обрабатывает следующие команды: git
pull, git push...
Вместе с веб-подсистемой образуют
систему хостинга проектов
15. Функции ядра сборочной системы
● Управление платформами (дистрибутивами) и
репозиториями
● Формирование заданий на сборку (сборочных
листов) по заявки от веб-подсистемы
● Информирование веб-подсистемы об изменениях
статуса задачи
● Диспетчеризация сборочных листов между
клиентами
● Поддержка репозитория: публикация сборочных
листов(контейнеров), генерация мета-данных, ...
Вместе со сборочным клиентом образуют систему
сборки
16. Функции ядра сборочной системы
● Управление платформами (дистрибутивами) и
репозиториями
● Формирование заданий на сборку (сборочных
листов) по заявки от веб-подсистемы
● Информирование веб-подсистемы об изменениях
статуса задачи
● Диспетчеризация сборочных листов между
клиентами
● Поддержка репозитория: публикация сборочных
листов(контейнеров), генерация мета-данных, ...
Вместе со сборочным клиентом образуют систему
сборки
17. Функции клиента для репозитория
● Публикация сборочных листов(контейнеров)
● Генерация мета-данных
18. Функции сборочного клиента
● Информирование ядра о ходе сборки
● Передача результатов
сборки(контейнера)
● Сборка сборочного листа:
● В доверенной среде
● Повторяемая
● Родными инструментами дистрибутива
● С обратными зависимостями
19. Функции сборочного клиента
● Информирование ядра о ходе сборки
● Передача результатов
сборки(контейнера)
● Сборка сборочного листа:
● В доверенной среде
● Повторяемая
● Родными инструментами дистрибутива
● С обратными зависимостями
21. Планы на ближайшее будущее
● REST API для управления сборочными
заданиями
● Интеграция автоматических тестов
(rpmlint, LSB, LTP и др.)
● Консольный клиент работы с ABF
24. Где посмотреть «в живую» и
поучаствовать
https://abf.rosalinux.ru
https://abf.rosalinux.ru/abf/abf
http://wiki.rosalab.ru/ru/index.php/Категория:Сборочная_среда_ABF
E-mail:
roman.vyalov@rosalab.ru
rubanov@rosalab.ru
eugene.sokolov@rosalab.ru
vladimir.sharshov@rosalab.ru