International conference of developers
and users of free / open source software

Инструменты компании Etersoft для разработчиков

Денис Баранов, Виталий Липатов, Санкт-Петербург, Russia

LVEE Winter 2012

Korinf and Gitum are the instruments for developers initially created for the internal needs of Etersoft company. Korinf system enables the convertation of software packages for different Linux distributions and operating systems. Git Upstream Manager (Gitum) helps to create and maintain the branches of upstream repositories. At the moment both instruments are available for all comers under public licences.

В разработке программного обеспечения большое значение имеет инфраструктура, инструменты, средства для разработчиков, помогающие более эффективно использовать время. В компании Etersoft осуществляется работа над разными проектами: начатыми с нуля, ответвления от upstream и др. Для обеспечения совместимости между существующими дистрибутивами разработана система Korinf, позволяющая собирать индивидуально подходящий для каждой ОС Linux свой пакет. Также разработан дополнительный инструмент для работы с системой контроля версий Git – Git Upstream Manager (Gitum), позволяющий эффективно создавать и сопровождать ответвления от upstream-репозиториев.

Korinf@Etersoft

Korinf — система сборки пакетов под целевые операционные системы на основе единого src.rpm, выполненного согласно правилам ALT Linux (http://www.altlinux.org/Policy).

Применение
Сборка пакетов, не являющихся системообразующими (неправильно применять Коринф для сборки glibc или rpm для разных систем).
Тестовая пересборка пакета (проекта) «под все системы» (полезно для тестирования разработчиком).
Создание дистрибутиво-специфичных репозиториев бинарных пакетов (позволяет не заниматься пустой работой по упаковыванию Clip Art для разных систем).
Сборка пакетов в автоматическом режиме на основе специального файла задания (робот-сборщик).
Полученные репозитории могут быть использованы при сборке специальных версий дистрибутивов (mkimage для ALT Linux).

Единый исходник
Исходной единицей, отправляемой на сборку, является src.rpm со спеком, написанным согласно принятым в ALT Linux правилам.
Сборка может осуществляться под различные ОС: Linux, Solaris, Mac OS, Windows.
Так система сборки пакетов Korinf уже много лет используется для создания сборок продукта WINE@Etersoft (собственной версии Wine) под различные дистрибутивы. В прошлом году был запущен публичный сервер Korinf, призванный помочь сторонним разработчикам создавать версии своего ПО для разнообразных дистрибутивов Linux. Желающие воспользоваться публичным сервером Korinf, могут обратиться по адресу korinf@etersoft.ru.
Сайт проекта: http://freesource.info/wiki/korinf

Git Upstream Manager

В 90% случаев при разработке проекта,на основе свободного ПО берётся стабильный релиз и переделывается, добавляется новый функционал. При попытке смержиться с upstream-веткой происходят конфликты, после исправления которых все наработки размазываются по истории коммитов и уже невозможно легко найти «свои» патчи. При ведении быстроразвивающихся проектов, таких как WINE (http://winehq.org), частые мержи и невозможность отделить «свои» от upstream-коммитов делают актуальным вопрос о корректном управлении и разборе кода. В 2011 года была начата разработка проекта, который позволит более легко и быстро ориентироваться в коде.
Git Upstream Manager – дополнительный режим работы Git, позволяющий легко вести ветки разработки со своими патчами и обновлять их с upstream-веток, при этом ведя общую общую историю изменений и поддерживая патчи всегда в актуальном состоянии согласно состоянию upstream.
На данный момент выпущена версия gitum-0.4.1 и доступная для свободного использования.

Краткая характеристика рабочего процесса с gitum
Gitum имеет 5 рабочих веток:
1. Ветка апстрим репозитория – upstream.
2. Ветка с патчами наверху – rebased.
3. Ветка с непрерывной историей изменений – рабочая ветка – mainline.
4. Ветка с патчами в виде отдельных файлов – каждый коммит это состояние репозитория – patches.
5. Ветка с конфигурационным файлом, где содержатся имена 4-х предыдущих веток gitum-config.
Таким образом, разработчик всегда имеет актуальную версию upstream-ветки, ветку со всеми «своими» патчами и всей историей изменений в процессе разработке «ответвления».
Разработанная система Git Upstream Manager позволяет разработчикам с меньшем количеством усилий производить обновление своих продуктов до последних версий апстрима и отсылать пачти в основную ветку разработки.
Сайт проекта: http://freesource.info/wiki/GitUM

Сегодня компания Etersoft готова делиться своим опытом и предоставлять доступ к этим решениям всем желающим. На данный момент все инструменты распространяются под свободными лицензиями.

Лицензия Creative Commons
Текст тезисов доступен под лицензией Creative Commons Attribution-ShareAlike 3.0.

Presentation