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

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