[sisyphus] Предложения по формированию бранчей
Андрей Черепанов
cas на altlinux.ru
Чт Май 21 13:29:43 MSD 2009
В данном письме я попробую проанализировать ситуацию со стабильными срезами
Сизифа (бранчами) и предложить стратегию их жизненного цикла. Буду рад любым
конструктивным предложениям и дополнениям.
Текущая ситуация
----------------
Существует вечно развивающаяся пакетная база Sisyphus, активно поддерживаемая
сопровождающими (мейнтейнерами). В определённое время (обычно раз в полгода)
при достаточно стабильном качестве репозитория из него форкается копия,
называемая бранчем (branch), получающая собственный incoming и ACL на пакеты.
Развитие Sisyphus продолжается безотносительно от бранча.
Основной целью создания бранча является обеспечение стабильной пакетной базы
для создания конечных решений в виде дистрибутивов с гарантией, что ничего не
будет разломано.
Однако такая стабилизация в силу своей природы имеет ряд неприятных моментов:
1. Дополнительные усилия от сопровождающего пакет по бэкпортированию
(адаптации новой версии пакета под старую пакетную базу) и тестированию помимо
Sisyphus ещё и в бранч (один или несколько).
2. Как следствие п. 1 в бранче остаются старые версии пакетов, в том числе и
без необходимых обновлений по безопасности. На огромной пакетной базе бранча
поддержка полной проверки и бэкпортирования потребует больших трудозатрат (а с
учётом частого выпуска бранчей - просто колоссальных).
3. Отсутствующая или плохая поддержка нового оборудования.
Налицо противоречие, которое необходимо если не предотвратить, то хотя бы
снизить его негативные факторы.
Бранч и задачи целевых групп
----------------------------
Рассматриваемые целевые группы:
а) сопровождающие (мейнтейнеры);
б) создатели дистрибутивов (release managers);
в) продвинутые пользователи (целью которых является постоянное обновление);
г) обычные пользователи;
д) техническая поддержка и сторонние разработчики;
Сопровождающие пакетов вообще не заинтересованы в бранче, поддержка пакетов в
котором требует от них дополнительных усилий.
Создатели дистрибутивов заинтересованы в бранче только в подмножестве пакетов,
необходимых для сборки дистрибутива. При этом стабилизация важна лишь на этапе
тестирования дистрибутива, а пакетная база должна быть как можно новее (для
поддержки новейшего оборудования и для новых фич).
Продвинутые пользователи заинтересованы в бранче больше всех, так как
обновляются и ставят разные пакеты, не входящие в дистрибутив.
Обычные пользователи обычно используют пакетную базу дистрибутивов и им
достаточно обновлений только этой пакетной базы.
Техническая поддержка и сторонние разработчики заинтересованы в бранче в
разрезе пакетной базе дистрибутивов и небольшого детерменированного
подмножества пакетов. Также эта целевая группа желает поддерживать как можно
меньше бранчей, что совпадает с устремлениями сопровождающих пакетов.
Итоги
-----
Итак, существующая политика создания бранчей (форк бранча и через много
месяцев создание дистрибутивов на его основе) приводит к "протуханию" пакетной
базы уже к созданию дистрибутивов (что нежелательно для создателей
дистрибутивов). Кроме того, полная копия Sisyphus приводит к практически
отсутствующей практике выпуска обновлений для этого бранча. Попытка участить
выпуск бранчей проблему не решает, а усугубляет нарастающей массой кода,
требующего качественной поддержки. Единственные люди, которые радуются новым
бранчам - это продвинутые пользователи, которые апгрейдятся на новый бранч.
Однако никакой пользы ни сопровождающим, ни дистрибуторам они не приносят.
Предложения
-----------
1. Бранч создаётся непосредственно перед выпуском дистрибутива (примерно за
месяц, на этапе тестирования) и служит источником стабильного кода для
дистрибутива. Это служит гарантией, что пакетная база дистрибутива будет
стабильна.
2. Бранч создаётся _только_ в объёме пакетной базы дистрибутива (то есть бранч
- это обновляемая пакетная база дистрибутива). При необходимости, в него
добавляются пакеты, необходимые сторонним разработчикам. Под такую базу
гораздо проще выпускать обновления и поддерживать её.
--
Андрей Черепанов
ALT Linux
cas на altlinux.ru
Подробная информация о списке рассылки Sisyphus