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

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(+ ERD)
м (Ссылки:: Drop ancient link)
 
(не показаны 2 промежуточные версии 1 участника)
Строка 1: Строка 1:
'''ABF''' (''Automatic Build Farm'') это распределенная среда разработки и сборки программных продуктов для ОС Linux и создания дистрибутивов на их основе. ABF предоставляет удобный интерфейс для одновременной сборки продукта под различные аппаратные и программные платформы.
+
'''ABF''' (''Automatic Build Farm'') это распределенная среда разработки и сборки программных продуктов для ОС Linux и создания дистрибутивов на их основе. ABF предоставляет удобный интерфейс для одновременной сборки продукта под различные аппаратные и программные платформы.
  
=Основные сущности ABF=
+
= Основные сущности ABF =
 
ER-диаграмма ABF представлена на рисунке ниже.
 
ER-диаграмма ABF представлена на рисунке ниже.
  
[[File:Abf erd rus.png|center|none|ER-диаграмма ABF]]
+
[[File:Abf erd rus.png|640px|center|none|ER-диаграмма ABF]]
  
Основными действующими лицами в ABF являются '''пользователи''', которые могут объединятся в '''группы'''. У каждого пользователя и каждой группы есть '''персональный репозиторий''', в который они могут собирать свои программные '''проекты'''. Проект содержит исходный код приложения и другие файлы, необходимые для его сборки. Исходный код и текстовые файлы хранится в '''Git-репозитории''', а бинарные файлы помещаются в отдельное '''файловое хранилище''' (а в Git-репозиторий помещается специальный файл со ссылками на бинарные файлы в хранилище).
+
* Основными действующими лицами в ABF являются ''пользователи'', которые могут объединятся в ''группы''.
 +
* У каждого пользователя и каждой группы есть ''персональный репозиторий'', в который они могут собирать свои программные ''проекты''.  
 +
* Проект содержит исходный код приложения и другие файлы, необходимые для его сборки.  
 +
* Исходный код и текстовые файлы хранится в ''Git-репозитории'', а бинарные файлы помещаются в отдельное ''файловое хранилище'' (а в Git-репозиторий помещается специальный файл со ссылками на бинарные файлы в хранилище).
  
Помимо персональных репозиториев, проекты могут быть собраны в репозитории того или иного дистрибутива, собираемого на ABF. В терминах ABF, каждому дистрибутиву Linux соответствует отдельная '''платформа''', а '''репозитории платформы''' соответствуют репозиториям дистрибутива. Чтобы иметь возможность собрать проект в репозиторий платформы, его необходимо явно прикрепить к этому репозиторию (что может потребовать соответствующих привилегий). Для удобства, ABF позволяет проассоциировать отдельную ветку Git-репозитория с конкретной платформой. Также для каждой платформы задаются аппаратные архитектуры, сборка для которых производится по умолчанию.
+
Помимо персональных репозиториев, проекты могут быть собраны в репозитории того или иного дистрибутива, собираемого на ABF. В терминах ABF, каждому дистрибутиву Linux соответствует отдельная ''платформа'', а ''репозитории платформы'' соответствуют репозиториям дистрибутива.  
  
=Функционал ABF=
+
Чтобы иметь возможность собрать проект в репозиторий платформы, его необходимо явно прикрепить к этому репозиторию (что может потребовать соответствующих привилегий). Для удобства, ABF позволяет ассоциировать отдельную ветку Git-репозитория с конкретной платформой.
  
'''Для разработчика:'''
+
Также для каждой платформы задаются аппаратные архитектуры, сборка для которых производится по умолчанию.
  
*git-репозиторий;
+
== Функционал ABF ==
*легковесный проектный трекер задач;
+
*проектная вики;
+
*возможность редактирования файлов в веб-интерфейсе;
+
*гибкое управление правами доступа к проекту, включая группы;
+
*проект может быть публичным, доступным для чтения всем пользователям, или приватным, доступный только ограниченному кругу лиц и невидимый остальным;
+
*возможность комментировать сделанные изменения(коммиты);
+
*возможность сравнения(diff), просмотра истории изменений(log), аннотация файла(blame) в веб-интерфейсе;
+
*возможность клонировать (fork) исходного кода любого публичного проекта ABF.
+
  
'''Для мэйтейнера:'''
+
;Для разработчика:
 +
* git-репозиторий;
 +
* легковесный проектный трекер задач;
 +
* проектная вики;
 +
* возможность редактирования файлов в веб-интерфейсе;
 +
* гибкое управление правами доступа к проекту, включая группы;
 +
* проект может быть публичным, доступным для чтения всем пользователям, или приватным, доступный только ограниченному кругу лиц и невидимый остальным;
 +
* возможность комментировать сделанные изменения (коммиты);
 +
* возможность сравнения (diff), просмотра истории изменений (log), аннотация файла (blame) в веб-интерфейсе;
 +
* возможность клонировать (fork) исходного кода любого публичного проекта ABF.
  
*импорт исходного кода из src.rpm через веб-интерфейс;
+
;Для мэйтейнера:
*возможность собирать в свой частный репозиторий, доступный всем пользователям ABF;
+
* импорт исходного кода из src.rpm через веб-интерфейс;
*удобный мониторинг задач, позволяющий увидеть состояние ваших, связанных с вами или всех доступных сборочных заданий;
+
* возможность собирать в свой частный репозиторий, доступный всем пользователям ABF;
*подробный лог сборки;
+
* удобный мониторинг задач, позволяющий увидеть состояние ваших, связанных с вами или всех доступных сборочных заданий;
*возможность установить для тестирования собравшийся пакет (контейнер сборки, представляющим собой полноценный репозиторий) до выкладывания его в общий репозиторий;
+
* подробный лог сборки;
*возможность одновременной сборки под несколько архитектур и платформ одновременно;
+
* возможность установить для тестирования собравшийся пакет (контейнер сборки, представляющим собой полноценный репозиторий) до выкладывания его в общий репозиторий;
*возможность выбора, какие репозитории платформы будут подключены для сборки, индивидуально для каждой платформы;
+
* возможность одновременной сборки под несколько архитектур и платформ одновременно;
*возможность отмены задания на сборку;
+
* возможность выбора, какие репозитории платформы будут подключены для сборки, индивидуально для каждой платформы;
*легкое подключение частного репозитория(генерирует команду для подключения);
+
* возможность отмены задания на сборку;
*чистая и безопасная сборка на распределенном множестве сборочных узлов.
+
* легкое подключение частного репозитория (генерирует команду для подключения);
 +
* чистая и безопасная сборка на распределенном множестве сборочных узлов.
  
'''Для владельцев и участников платформ:'''
+
;Для владельцев и участников платформ:
 +
* поддержка собственного дистрибутива в рамках ABF;
 +
* возможность управление репозиториями (включение/исключение проектов);
 +
* возможность сборки продуктов (ISO образов).
  
*поддержка собственного дистрибутива в рамках ABF;
+
;Для администраторов:
*возможность управление репозиториями(включение/исключение проектов);
+
* управление пользователями (в том числе и блокировка);
*возможность сборки продуктов(ISO образов).
+
* ведение журнала операций и возможность полного аудита событий в системе.
  
'''Для администраторов:'''
+
;Для всех:
 
+
* удобный, понятный и легкий веб-интерфейс;
*управление пользователями(в том числе и блокировка);
+
* возможность создавать и участвовать в различных группах и проектах;
*ведение журнала операций и возможность полного аудита событий в системе.
+
* гибкая настраиваемая почтовая система оповещений о различных событиях в системе;
 
+
* лента активности, позволяющая быть в курсе последних событий в ваших проектах в веб-интерфейсе;
'''Для всех:'''
+
* публичный профиль участника, где показаны его контактные данные, а также список его публичных проектов.
 
+
*удобный, понятный и легкий веб-интерфейс;
+
*возможность создавать и участвовать в различных группах и проектах;
+
*гибкая настраиваемая почтовая система оповещений о различных событиях в системе;
+
*лента активности, позволяющая быть в курсе последних событий в ваших проектах в веб-интерфейсе;
+
*публичный профиль участника, где показаны его контактные данные, а также список его публичных проектов.
+
  
 
Помимо перечисленного функционала, ABF поддерживает в экспериментальном режиме сборку пакета с учетом его обратных зависимостей. Данный механизм позволяет проверить при обновлении пакета отсутствие нарушений сборки во всем множестве зависимых от него пакетов путем построения согласованной иерархии сборочных контейнеров.
 
Помимо перечисленного функционала, ABF поддерживает в экспериментальном режиме сборку пакета с учетом его обратных зависимостей. Данный механизм позволяет проверить при обновлении пакета отсутствие нарушений сборки во всем множестве зависимых от него пакетов путем построения согласованной иерархии сборочных контейнеров.
  
ABF разработан в компании РОСА полностью «с нуля» и реализован на Python и Ruby on Rails. Работа с ABF может производиться через веб-интерфейс, через REST API, а также посредством [[Консольный_клиент_ABF|консольного клиента]].
+
ABF разработан в компании РОСА полностью «с нуля» и реализован на Ruby on Rails.  
 +
Работа с ABF может производиться через веб-интерфейс, через REST API, а также посредством [[Консольный_клиент_ABF|консольного клиента]].
  
 
== Ссылки: ==
 
== Ссылки: ==
[https://abf.io/ Веб-интерфейс публичной системы 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/>
+
  
  
Строка 69: Строка 71:
  
 
[[en:ABF]]
 
[[en:ABF]]
 
 
[[Категория:Сборочная среда 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»