[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