Компания «РОСА» объявила о выпуске новой версии среды разработки и сборки свободного программного обеспечения ROSA Automatic Build Farm (ABF) 2.0, позволяющая управлять всеми стадиями разработки дистрибутивов от создания исходного кода до сборки отдельных пакетов и ISO-образов. ABF не привязана к конкретному дистрибутиву и может использоваться для разработки различных типов дистрибутивов на основе RPM, DEB и других форматов пакетов. ABF используется как основная платформа для разработки дистрибутивов ROSA, OpenMandriva и Conectiva, кроме того работа ABF протестирована на сборке AltLinux, Fedora, openSUSE, Scientific Linux и RHEL. Исходные тексты открыты под лицензией GPLv2. Ядро ABF написано на языке Python, а web-интерфейс на Ruby с использованием Ruby on Rails. Для хранения исходные текстов пакетов задействована система контроля версий Git.
ABF позволяет собирать пакеты для всех поддерживаемых дистрибутивов, поддерживает сборку дистрибутива, предоставляет web-интерфейс для сопровождения процесса разработки c возможностью планирования работы, проведения обсуждений и обмена наработками между группами разработчиков и дистрибутивами. Ядро ABF составляют такие подсистемы, как система сборки (клиент и сервер для сборки пакетов из исходных кодов), менеджер сборки продуктов (формирование iso-образа дистрибутива) и компоненты поддержки сборки любых дистрибутивов. Web-интерфейс позволяет управлять всеми процессами разработки и сборки дистрибутивов СПО, а также организовать взаимодействия разработчиков, пользователей и мэйнтейнеров.
Основные новшества ABF 2.0:
- REST API, позволяющий использовать ABF как платформу для различных приложений и сервисов, а также для автоматизации рутинных операций;
- Pull Request - даёт возможность предложить изменения в git-репозитории других участников. После отправки такого запроса, все заинтересованные участники могут видеть, обсуждать и, при необходимости, редактировать код;
- Построчное комментирование кода с использованием простого языка разметки Github Flavored Markdown. Вместе с возможностью обсуждать каждую строчку кода, возможность также предоставляет команде разработчиков хороший инструмент для дискуссий;
- Трекер с реакцией на изменение кода, позволяющий отображать в задаче такие данные, как информация о сделанных изменениях в исходном коде, если в коммите был указан номер задачи, а также информация о других задачах и запросах на изменения исходного кода, если в них ссылались на данную. Теперь в задаче можно увидеть всю информацию о ней: обсуждения, коммиты, связанные задачи и запросы на изменения исходного кода (Pull Request).
- Поддержка работы с Git через ssh избавляет разработчика от необходимости вводить пароль для совершения каждой операции и снимает ограничение на объем передаваемых данных;
- Обновленная подсистема сборки пакетов, отличающаяся адаптацией для сборки под разные дистрибутивы и повышенным уровнем безопасности. Для каждой из сборок теперь используется чистая виртуальная машина. Также добавлены новые возможности по работе со сборочными заданиями и проведена унификация рабочих инструментов. Например, добавлена возможность отмены уже собирающегося задания и стал доступен автообновляемый общий лог процесса.
- Добавлена возможность сравнения произвольных коммитов и веток в веб-интерфейсе;
- Реализованы почтовые оповещения по различным аспектам системы и гибкие возможности настройки таких оповещений;
- Подготовлен механизм массовых сборок.