[devel] giter-factory

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Ср Авг 29 23:29:42 MSD 2007


On Wed, Aug 29, 2007 at 09:05:12PM +0400, Alexey Tourbin wrote:
> On Wed, Aug 29, 2007 at 07:56:32PM +0400, Dmitry V. Levin wrote:
> > On Wed, Aug 29, 2007 at 12:47:25AM +0400, Alexey Tourbin wrote:
> > [...]
> > > Я посмотрел документацию legion'а к giter-factory, что-то меня это
> > > нисколько не обнадёжило насчет возможности внедрения первичного
> > > тестирования перед публикацией.  Скорее разочаровало.
> > 
> > Что именно разочаровало?
> 
> Цитата из giter-factory/doc/info.tex:
> 
> 	Как только указание получено, репозиторий встаёт в очередь на
> 	сборку. Все запросы от разных пользователей сериализуются по
> 	времени.
> 
> 	Процесс пересборки параллелится по архитектурам, но не по
> 	положению в очереди. Такой подход позволяет просто сформировать
> 	порядок сборки зависимых пакетов.
> 
> 	После удачной пересборки пакет сразу же публикуется. Следующие
> 	пакеты из очереди пересобираются уже на новом публичном
> 	репозитории.
> 
> Это я называю "наивная сериализация".  Прошёл "очень плохой пакет"
> и сразу же опубликовался, полсизифа перестало собираться; отозвать
> сборку задним числом уже нельзя.
> 
> Преимущество тут только в том, что пересборка/публикация происходит
> очень быстро, но это просто сопособ очень быстро всё пустить под откос.
> Даже сейчас "ответственный товарищ, формирующий сизиф", играет
> созидательную роль, не пропуская (hopefully) вручную "очень плохие
> пакеты".  Просто исключить эту роль, не дав ничего взамен, нельзя.
> 
> Мое альтернативное видение такое: прошёл пакет и пересобрался.
> Формируется новый временный сизиф с этим пакетом, и на этом временном
> сизифе выполняется ряд проверок.  Если все проверки прошли успешно,
> то временный сизиф становится текущим ("коммит"), и очередь
> продвигается.  Если же некоторые проверки не прошли, то пакт ставится
> на подтверждение вручную.  Подтвердить или отменить может а) maintainer
> б) ответственный товарищ в) чьи пакеты сломались.  В детали полтики
> подтверждения и отмены пока вдаваться не буду.
> 
> Если предусмотрена схема с подтверждением вручную, тогда вся идея
> "наивной сериализаци" летит в тартарары.  Подтверждение может поступить
> через час, через два или три, через день, а может и не поступить вовсе
> (имплицитная отмена).  Скорость продвижения очереди не должна
> зависеть от человеческого фактора, которым является продвижение вручную.
> Если пакет ставится не подтверждение, то создается "временный бранч"
> с "временным сизифом".  Очередь продвигается с предыдущего состояния,
> то есть "коммита" в мэйнлайн не происходит.  Если приходит подтверждение
> вручную, то нужно сделать "мёрж" между временным сизифом с проблемным
> пакетом и текущим хедом мэйнлайна.  Получается прозрачная аналогия
> с гитовскими коммитами:
> 	
> 	 /M merged pkg2 with pkg4
> 	* | confirmed pkg2
> 	| * pkg4 success
> 	* | pkg3 problems: please confirm
> 	 `* pkg2 success
> 	  * pkg1 success
> 
> В чем состоит мёрж я сейчас объяснять не буду.  Если прошло достаточно
> много времени, то мёрж уже может стать невозможным.  В таком случае pkg2
> "ребейсится" на pkg4 (текущий хед мэйнлайна) и его сборка/тестирование
> проходит заново.  Если характеристики после ребейса репозитария получаются
> не хуже, чем характеристики репозитария до ребейса, то подтверждение
> считатется действительным.  В противном случае генерируется новый запрос
> на подтверждение.
> 
> Такие пироги.

Сколько у тебя уйдёт времени, чтобы всё это реализовать?


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20070829/68e519ee/attachment-0001.bin>


Подробная информация о списке рассылки Devel