Сборочная среда ABF — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Функционал альфа-версии ABF)
м (Ссылки:: Drop ancient link)
 
(не показана 21 промежуточная версия 3 участников)
Строка 1: Строка 1:
'''ABF''' (''Automatic Build Farm'') это распределенная среда непрерывной разработки дистрибутивов СПО и прикладных программ для них на основе системы управления версиями Git. ABF спроектирован как структурный фасад для [[Сборочный сервер: механизм работы.|частных (дистрибутиво-зависимых) технических процессов]]. Данный подход позволяет с минимальным порогом входа, без масштабных изменений в пакетных базах и технологиях сборки, добавлять в ABF дистрибутивы на различных пакетных базах. Единая внешняя логика, поддерживаемая ABF, предоставляет возможность быстрого обмена функционалом между группами разработчиков из базовых и производных дистрибутивов и между разными базовыми дистрибутивами, а также ускоряет появление в дистрибутивах нового прикладного функционала от внешних поставщиков.
+
'''ABF''' (''Automatic Build Farm'') это распределенная среда разработки и сборки программных продуктов для ОС Linux и создания дистрибутивов на их основе. ABF предоставляет удобный интерфейс для одновременной сборки продукта под различные аппаратные и программные платформы.
  
== Функционал альфа-версии ABF ==
+
= Основные сущности ABF =
Состояние на февраль 2012 (подробнее в [[Краткое руководство по работе в сборочной среде ABF|руководстве пользователя]]):
+
ER-диаграмма ABF представлена на рисунке ниже.
*Управление пользователями, ролями, пакетами, репозиториями (пользовательскими, групповыми, платформами), бранчами (ветками), заданиями на сборку;
+
*Создание проектов (соответствующих пакетам ОС) на основе импорта внешних src.rpm или клонирования (форка) доступных пакетов ABF в пользовательский репозиторий;
+
*Публичный или ограниченный доступ к платформам/репозиториям;
+
*Просмотр данных об исходном коде пакетов (история изменений, авторы, версии);
+
*Сборка бинарных пакетов под указанную архитектуру в пользовательский репозиторий либо общественный репозиторий (платформу);
+
*Мониторинг состояния сборки пакетов на распределенном множестве сборочных узлов;
+
*Сборка ISO-образов дистрибутивов;
+
*Назначение различных полномочий пользователей на выполнение операций вплоть до уровня отдельных пакетов;
+
*Ведение журнала операций и возможность полного аудита событий в системе.
+
  
Помимо перечисленного функционала, альфа-версия ABF поддерживает (в экспериментальном режиме) [[Сборка пакетов с учётом его обратных зависимостей|сборку пакета с учетом его обратных зависимостей]]. Данный механизм позволяет проверить при обновлении пакета отсутствие нарушений сборки во всем множестве зависимых от него пакетов путем построения согласованной иерархии сборочных контейнеров.
+
[[File:Abf erd rus.png|640px|center|none|ER-диаграмма ABF]]
  
ABF разработан в компании РОСА полностью «с нуля» и реализован на Python и Ruby on Rails. Альфа-версия ABF работает через веб-интерфейс.
+
* Основными действующими лицами в ABF являются ''пользователи'', которые могут объединятся в ''группы''.
 +
* У каждого пользователя и каждой группы есть ''персональный репозиторий'', в который они могут собирать свои программные ''проекты''.
 +
* Проект содержит исходный код приложения и другие файлы, необходимые для его сборки.
 +
* Исходный код и текстовые файлы хранится в ''Git-репозитории'', а бинарные файлы помещаются в отдельное ''файловое хранилище'' (а в Git-репозиторий помещается специальный файл со ссылками на бинарные файлы в хранилище).
 +
 
 +
Помимо персональных репозиториев, проекты могут быть собраны в репозитории того или иного дистрибутива, собираемого на ABF. В терминах ABF, каждому дистрибутиву Linux соответствует отдельная ''платформа'', а ''репозитории платформы'' соответствуют репозиториям дистрибутива.
 +
 
 +
Чтобы иметь возможность собрать проект в репозиторий платформы, его необходимо явно прикрепить к этому репозиторию (что может потребовать соответствующих привилегий). Для удобства, ABF позволяет ассоциировать отдельную ветку Git-репозитория с конкретной платформой.
 +
 
 +
Также для каждой платформы задаются аппаратные архитектуры, сборка для которых производится по умолчанию.
 +
 
 +
== Функционал ABF ==
 +
 
 +
;Для разработчика:
 +
* git-репозиторий;
 +
* легковесный проектный трекер задач;
 +
* проектная вики;
 +
* возможность редактирования файлов в веб-интерфейсе;
 +
* гибкое управление правами доступа к проекту, включая группы;
 +
* проект может быть публичным, доступным для чтения всем пользователям, или приватным, доступный только ограниченному кругу лиц и невидимый остальным;
 +
* возможность комментировать сделанные изменения (коммиты);
 +
* возможность сравнения (diff), просмотра истории изменений (log), аннотация файла (blame) в веб-интерфейсе;
 +
* возможность клонировать (fork) исходного кода любого публичного проекта ABF.
 +
 
 +
;Для мэйтейнера:
 +
* импорт исходного кода из src.rpm через веб-интерфейс;
 +
* возможность собирать в свой частный репозиторий, доступный всем пользователям ABF;
 +
* удобный мониторинг задач, позволяющий увидеть состояние ваших, связанных с вами или всех доступных сборочных заданий;
 +
* подробный лог сборки;
 +
* возможность установить для тестирования собравшийся пакет (контейнер сборки, представляющим собой полноценный репозиторий) до выкладывания его в общий репозиторий;
 +
* возможность одновременной сборки под несколько архитектур и платформ одновременно;
 +
* возможность выбора, какие репозитории платформы будут подключены для сборки, индивидуально для каждой платформы;
 +
* возможность отмены задания на сборку;
 +
* легкое подключение частного репозитория (генерирует команду для подключения);
 +
* чистая и безопасная сборка на распределенном множестве сборочных узлов.
 +
 
 +
;Для владельцев и участников платформ:
 +
* поддержка собственного дистрибутива в рамках ABF;
 +
* возможность управление репозиториями (включение/исключение проектов);
 +
* возможность сборки продуктов (ISO образов).
 +
 
 +
;Для администраторов:
 +
* управление пользователями (в том числе и блокировка);
 +
* ведение журнала операций и возможность полного аудита событий в системе.
 +
 
 +
;Для всех:
 +
* удобный, понятный и легкий веб-интерфейс;
 +
* возможность создавать и участвовать в различных группах и проектах;
 +
* гибкая настраиваемая почтовая система оповещений о различных событиях в системе;
 +
* лента активности, позволяющая быть в курсе последних событий в ваших проектах в веб-интерфейсе;
 +
* публичный профиль участника, где показаны его контактные данные, а также список его публичных проектов.
 +
 
 +
Помимо перечисленного функционала, ABF поддерживает в экспериментальном режиме сборку пакета с учетом его обратных зависимостей. Данный механизм позволяет проверить при обновлении пакета отсутствие нарушений сборки во всем множестве зависимых от него пакетов путем построения согласованной иерархии сборочных контейнеров.
 +
 
 +
ABF разработан в компании РОСА полностью «с нуля» и реализован на Ruby on Rails.  
 +
Работа с ABF может производиться через веб-интерфейс, через REST API, а также посредством [[Консольный_клиент_ABF|консольного клиента]].
  
 
== Ссылки: ==
 
== Ссылки: ==
[https://abf.rosalinux.ru/invite.html Веб-интерфейс ABF (прием заявок)]<br/>
+
* [https://abf.io/ Веб-интерфейс публичной системы ABF]
[http://forum.rosalab.ru/viewforum.php?f=10 Форум проекта]<br/>
+
* [http://forum.rosalab.ru/viewforum.php?f=10 Форум проекта]
[http://www.gosbook.ru/node/37078 Комментарий по НПП от R&D ЗАО "РОСА"] <br/>
+
 
 +
 
 +
{{Навигационная полоса|Документация по теме «Сборочная среда ABF»|[[Сборочная среда ABF]]&nbsp;&#8226;&nbsp;[[Краткое руководство по работе в сборочной среде ABF]]&nbsp;&#8226;&nbsp;[[ABF: Руководство пользователя]]&nbsp;&#8226;&nbsp;[[ABF: Руководство администратора]]}}
 +
 
 +
[[en:ABF]]
 +
[[Категория:Сборочная среда ABF]]

Текущая версия на 11:53, 12 февраля 2015

ABF (Automatic Build Farm) — это распределенная среда разработки и сборки программных продуктов для ОС Linux и создания дистрибутивов на их основе. ABF предоставляет удобный интерфейс для одновременной сборки продукта под различные аппаратные и программные платформы.

Основные сущности ABF

ER-диаграмма ABF представлена на рисунке ниже.

ER-диаграмма ABF
  • Основными действующими лицами в ABF являются пользователи, которые могут объединятся в группы.
  • У каждого пользователя и каждой группы есть персональный репозиторий, в который они могут собирать свои программные проекты.
  • Проект содержит исходный код приложения и другие файлы, необходимые для его сборки.
  • Исходный код и текстовые файлы хранится в Git-репозитории, а бинарные файлы помещаются в отдельное файловое хранилище (а в Git-репозиторий помещается специальный файл со ссылками на бинарные файлы в хранилище).

Помимо персональных репозиториев, проекты могут быть собраны в репозитории того или иного дистрибутива, собираемого на ABF. В терминах ABF, каждому дистрибутиву Linux соответствует отдельная платформа, а репозитории платформы соответствуют репозиториям дистрибутива.

Чтобы иметь возможность собрать проект в репозиторий платформы, его необходимо явно прикрепить к этому репозиторию (что может потребовать соответствующих привилегий). Для удобства, ABF позволяет ассоциировать отдельную ветку Git-репозитория с конкретной платформой.

Также для каждой платформы задаются аппаратные архитектуры, сборка для которых производится по умолчанию.

Функционал ABF

Для разработчика
  • git-репозиторий;
  • легковесный проектный трекер задач;
  • проектная вики;
  • возможность редактирования файлов в веб-интерфейсе;
  • гибкое управление правами доступа к проекту, включая группы;
  • проект может быть публичным, доступным для чтения всем пользователям, или приватным, доступный только ограниченному кругу лиц и невидимый остальным;
  • возможность комментировать сделанные изменения (коммиты);
  • возможность сравнения (diff), просмотра истории изменений (log), аннотация файла (blame) в веб-интерфейсе;
  • возможность клонировать (fork) исходного кода любого публичного проекта ABF.
Для мэйтейнера
  • импорт исходного кода из src.rpm через веб-интерфейс;
  • возможность собирать в свой частный репозиторий, доступный всем пользователям ABF;
  • удобный мониторинг задач, позволяющий увидеть состояние ваших, связанных с вами или всех доступных сборочных заданий;
  • подробный лог сборки;
  • возможность установить для тестирования собравшийся пакет (контейнер сборки, представляющим собой полноценный репозиторий) до выкладывания его в общий репозиторий;
  • возможность одновременной сборки под несколько архитектур и платформ одновременно;
  • возможность выбора, какие репозитории платформы будут подключены для сборки, индивидуально для каждой платформы;
  • возможность отмены задания на сборку;
  • легкое подключение частного репозитория (генерирует команду для подключения);
  • чистая и безопасная сборка на распределенном множестве сборочных узлов.
Для владельцев и участников платформ
  • поддержка собственного дистрибутива в рамках ABF;
  • возможность управление репозиториями (включение/исключение проектов);
  • возможность сборки продуктов (ISO образов).
Для администраторов
  • управление пользователями (в том числе и блокировка);
  • ведение журнала операций и возможность полного аудита событий в системе.
Для всех
  • удобный, понятный и легкий веб-интерфейс;
  • возможность создавать и участвовать в различных группах и проектах;
  • гибкая настраиваемая почтовая система оповещений о различных событиях в системе;
  • лента активности, позволяющая быть в курсе последних событий в ваших проектах в веб-интерфейсе;
  • публичный профиль участника, где показаны его контактные данные, а также список его публичных проектов.

Помимо перечисленного функционала, ABF поддерживает в экспериментальном режиме сборку пакета с учетом его обратных зависимостей. Данный механизм позволяет проверить при обновлении пакета отсутствие нарушений сборки во всем множестве зависимых от него пакетов путем построения согласованной иерархии сборочных контейнеров.

ABF разработан в компании РОСА полностью «с нуля» и реализован на Ruby on Rails. Работа с ABF может производиться через веб-интерфейс, через REST API, а также посредством консольного клиента.

Ссылки:


Документация по теме «Сборочная среда ABF»