[devel] [sisyphus -> devel] Стабильный Сизиф
Led
led на altlinux.ru
Пн Июн 19 14:12:37 MSD 2006
В сообщении от 17 июня 2006 01:17 Alexey Tourbin написал(a):
> On Thu, Jun 15, 2006 at 02:50:05PM +0300, Led wrote:
> > > 1) Не всегда содержимое Sisyphus настолько стабильно, что бы на его
> > > базе можно было бы собрать инсталяционный образ. Например - в данный
> > > момент это возможно только теоретически. На практике ничего не
> > > получится.
> >
> > А как на счёт внедрения схемы TRANSACT/COMMIT в incoming или между
> > incoming и Sisyphus? Это вроде могло бы стабилизировать репозитарий хотя
> > бы в плане целостности...
>
> Как вы себе представляете идею с транзакциями? Напишите подробнее.
> Причем (сразу хинт) исходите не из желаемого, а попытайтесь понять,
> какие трудности могут возникнуть в реализации. Это интересно.
>
> Какое количество априорной информации необходимо, чтобы автоматически
> начать транзакцию? Любой unmet начинает транзакцию, которая завершается
> с его исчезновением? В этом месте возникает "бифуркация", то есть сизиф
> "расслаивается" на две части. В контексте каких транзакций тогда нужно
> собирать вновь поступающие пакеты?
Основные проблемы возникать могут при поступлении в incoming библиотеки с
новым soname.
Упрощённо алгоритм обработки "транзакции" вижу таким образом
1) Была libfoo с libfoo.so.x, от которой зависят пакеты в репозитарии.
2) В incoming пришла libfoo м libfoo.so.y.
3) Попытка пересобрать зависимые пакеты роботом с вновь поступившей libfoo
4) Если попытка полностью успешна - commit
5) Если попытка (п.3) полностью или частично НЕуспешна - уведомить мэйнтейнера
libfoo и зависимых пакетов.
6) После уведомления мэйнтейнера libfoo (п.5), он должен собрать libfoo_X
(очень желателен скрипт-инструмент для изготовления libfoo_X.spec из
libfoo.spec, хотя бы частично автоматизирующий эту работу).
7) После уведомления мэйнтейнеры зависимых от libfoo пакетов пересобирают свои
пакеты с libfoo.so.y.
8) В случае невозможности п.7 - мэйнтейнеры зависимых от libfoo пересобирают
свои пакеты с libfoo_X, или (как вариант, на котором я не настаиваю, потому
как "закидают гнилыми помидорами" - с libfoo.a версии X).
9) Если п.7 или п.8 успешны - commit.
Сорри, может что-то упустил - со стороны будет виднее.
Можете "пинать" ("пинки" с оскрблениями, в т.ч. в личку будут
проигнорированны).
--
Led.
Подробная информация о списке рассылки Devel