ABF — система для
совместной разработки
свободного ПО

Роман Вялов
Владимир Рубанов
Евгений Соколов
Владимир Шаршов (докладчик)

ROSA Lab
Что такое ABF?

Automatic Build Farm (ABF) —
интегрированная система для совместной
разработки ПО:

● Хостинг проектов
● Система сборки

● Проектная wiki

● Проектный трекер задач
Что такое ABF?

Automatic Build Farm (ABF) —
интегрированная система для совместной
разработки ПО:

● Хостинг проектов
● Система сборки

● Проектная wiki

● Проектный трекер задач
ABF для разработчика


● Git-репозиторий
● Легковесный проектный трекер задач


● Проектная (контекстная) вики


● Площадка для обмена и обсуждения

  кода (PullRequest)
● Веб-интерфейс для работы с git


● Автоматизированный workflow
ABF для майтейнера


● Сборка проектов под разные
  дистрибутивы и архитектуры
● Частные репозитории

● Удобный мониторинг задач

● Сборка ISO
ABF: основные идеи

● Хостинг, разработка и сборка кода должны
  быть доступны на единой площадке
● Пользовательский интерфейс - важная

  часть системы
● Поддержка разработки множества

  различных дистрибутивов
● Собрать свой образ дистрибутива должно

  быть не просто, а очень просто
● Персональный репозиторий каждому

  пользователю
● Всесторонние автоматические проверки

  пакетов залог здоровья репозитория
Избранные возможности


●   Запросы на изменения (PullRequest)
●   Интегрированная проектная wiki
●   Приватные проекты
●   Частные репозитории
Чем ABF не является?


● Системой сборки с мета-спеком для
  множества дистрибутивов
● Системой, полностью повторяющей весь

  процесс сборки для всех дистрибутивов
● Лучшим решением из всех для всех
Зачем для ROSA?


● Замена морально устаревшей и
  неподдерживаемой системы Kenobi
● Собственный инструмент разработки и

  сборки (с возможностью автоматизации
  специализированных сценариев работы)
● Объедение сообщества Mandriva
Архитектура: идея
Архитектура: как на самом деле
Архитектура: в разработке
Функции веб-подсистемы

● Аутентификация и авторизация
  пользователей для всех подсистем
● Пользовательский интерфейс для

  управления элементами системы
● Управление заданиями для ядра

  сборочной системы пакетов и клиентов
  сборки образов
● Сопутствующие службы: проектный

  трекер задач, wiki, PullRequest, лента
  активности...
Функции системы хранения
             исходного кода


●
    Хранение кода в git-репозиториях
●   Отдача/приемка исходного кода

    Обрабатывает следующие команды: git
    pull, git push...
    Вместе с веб-подсистемой образуют
    систему хостинга проектов
Функции ядра сборочной системы

● Управление платформами (дистрибутивами) и
  репозиториями
● Формирование заданий на сборку (сборочных

  листов) по заявки от веб-подсистемы
● Информирование веб-подсистемы об изменениях

  статуса задачи
● Диспетчеризация сборочных листов между

  клиентами
● Поддержка репозитория: публикация сборочных

  листов(контейнеров), генерация мета-данных, ...

    Вместе со сборочным клиентом образуют систему
    сборки
Функции ядра сборочной системы

● Управление платформами (дистрибутивами) и
  репозиториями
● Формирование заданий на сборку (сборочных

  листов) по заявки от веб-подсистемы
● Информирование веб-подсистемы об изменениях

  статуса задачи
● Диспетчеризация сборочных листов между

  клиентами
● Поддержка репозитория: публикация сборочных

  листов(контейнеров), генерация мета-данных, ...

    Вместе со сборочным клиентом образуют систему
    сборки
Функции клиента для репозитория

● Публикация сборочных листов(контейнеров)
● Генерация мета-данных
Функции сборочного клиента

● Информирование ядра о ходе сборки
● Передача результатов

  сборки(контейнера)
● Сборка сборочного листа:

    ●   В доверенной среде
    ●   Повторяемая
    ●   Родными инструментами дистрибутива
    ●   С обратными зависимостями
Функции сборочного клиента

● Информирование ядра о ходе сборки
● Передача результатов

  сборки(контейнера)
● Сборка сборочного листа:

    ●   В доверенной среде
    ●   Повторяемая
    ●   Родными инструментами дистрибутива
    ●   С обратными зависимостями
Передача информации
Планы на ближайшее будущее

● REST API для управления сборочными
  заданиями
● Интеграция автоматических тестов

  (rpmlint, LSB, LTP и др.)
● Консольный клиент работы с ABF
ABF: динамика разработки
Что используем
Где посмотреть «в живую» и
             поучаствовать

                   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

Abf

  • 1.
    ABF — системадля совместной разработки свободного ПО Роман Вялов Владимир Рубанов Евгений Соколов Владимир Шаршов (докладчик) ROSA Lab
  • 2.
    Что такое ABF? AutomaticBuild Farm (ABF) — интегрированная система для совместной разработки ПО: ● Хостинг проектов ● Система сборки ● Проектная wiki ● Проектный трекер задач
  • 3.
    Что такое ABF? AutomaticBuild Farm (ABF) — интегрированная система для совместной разработки ПО: ● Хостинг проектов ● Система сборки ● Проектная wiki ● Проектный трекер задач
  • 4.
    ABF для разработчика ●Git-репозиторий ● Легковесный проектный трекер задач ● Проектная (контекстная) вики ● Площадка для обмена и обсуждения кода (PullRequest) ● Веб-интерфейс для работы с git ● Автоматизированный workflow
  • 5.
    ABF для майтейнера ●Сборка проектов под разные дистрибутивы и архитектуры ● Частные репозитории ● Удобный мониторинг задач ● Сборка ISO
  • 6.
    ABF: основные идеи ●Хостинг, разработка и сборка кода должны быть доступны на единой площадке ● Пользовательский интерфейс - важная часть системы ● Поддержка разработки множества различных дистрибутивов ● Собрать свой образ дистрибутива должно быть не просто, а очень просто ● Персональный репозиторий каждому пользователю ● Всесторонние автоматические проверки пакетов залог здоровья репозитория
  • 7.
    Избранные возможности ● Запросы на изменения (PullRequest) ● Интегрированная проектная wiki ● Приватные проекты ● Частные репозитории
  • 8.
    Чем ABF неявляется? ● Системой сборки с мета-спеком для множества дистрибутивов ● Системой, полностью повторяющей весь процесс сборки для всех дистрибутивов ● Лучшим решением из всех для всех
  • 9.
    Зачем для ROSA? ●Замена морально устаревшей и неподдерживаемой системы Kenobi ● Собственный инструмент разработки и сборки (с возможностью автоматизации специализированных сценариев работы) ● Объедение сообщества Mandriva
  • 10.
  • 11.
  • 12.
  • 13.
    Функции веб-подсистемы ● Аутентификацияи авторизация пользователей для всех подсистем ● Пользовательский интерфейс для управления элементами системы ● Управление заданиями для ядра сборочной системы пакетов и клиентов сборки образов ● Сопутствующие службы: проектный трекер задач, wiki, PullRequest, лента активности...
  • 14.
    Функции системы хранения исходного кода ● Хранение кода в git-репозиториях ● Отдача/приемка исходного кода Обрабатывает следующие команды: git pull, git push... Вместе с веб-подсистемой образуют систему хостинга проектов
  • 15.
    Функции ядра сборочнойсистемы ● Управление платформами (дистрибутивами) и репозиториями ● Формирование заданий на сборку (сборочных листов) по заявки от веб-подсистемы ● Информирование веб-подсистемы об изменениях статуса задачи ● Диспетчеризация сборочных листов между клиентами ● Поддержка репозитория: публикация сборочных листов(контейнеров), генерация мета-данных, ... Вместе со сборочным клиентом образуют систему сборки
  • 16.
    Функции ядра сборочнойсистемы ● Управление платформами (дистрибутивами) и репозиториями ● Формирование заданий на сборку (сборочных листов) по заявки от веб-подсистемы ● Информирование веб-подсистемы об изменениях статуса задачи ● Диспетчеризация сборочных листов между клиентами ● Поддержка репозитория: публикация сборочных листов(контейнеров), генерация мета-данных, ... Вместе со сборочным клиентом образуют систему сборки
  • 17.
    Функции клиента длярепозитория ● Публикация сборочных листов(контейнеров) ● Генерация мета-данных
  • 18.
    Функции сборочного клиента ●Информирование ядра о ходе сборки ● Передача результатов сборки(контейнера) ● Сборка сборочного листа: ● В доверенной среде ● Повторяемая ● Родными инструментами дистрибутива ● С обратными зависимостями
  • 19.
    Функции сборочного клиента ●Информирование ядра о ходе сборки ● Передача результатов сборки(контейнера) ● Сборка сборочного листа: ● В доверенной среде ● Повторяемая ● Родными инструментами дистрибутива ● С обратными зависимостями
  • 20.
  • 21.
    Планы на ближайшеебудущее ● REST API для управления сборочными заданиями ● Интеграция автоматических тестов (rpmlint, LSB, LTP и др.) ● Консольный клиент работы с ABF
  • 22.
  • 23.
  • 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