ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: [devel] giter-factory
Date: Wed, 29 Aug 2007 21:05:12 +0400
Message-ID: <20070829170512.GT24207@solemn.turbinal> (raw)
In-Reply-To: <20070829155632.GA18437@basalt.office.altlinux.org>

[-- Attachment #1: Type: text/plain, Size: 3254 bytes --]

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 (текущий хед мэйнлайна) и его сборка/тестирование
проходит заново.  Если характеристики после ребейса репозитария получаются
не хуже, чем характеристики репозитария до ребейса, то подтверждение
считатется действительным.  В противном случае генерируется новый запрос
на подтверждение.

Такие пироги.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2007-08-29 17:05 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-28 17:11 [devel] pkgconfiglib.req Alexey M. Tourbin
2007-08-28 19:55 ` Alexey Tourbin
2007-08-28 20:12   ` [devel] /usr/lib/pkgconfig vs noarch Dmitry V. Levin
2007-08-28 20:47     ` Alexey Tourbin
2007-08-28 21:07       ` Alexey Tourbin
2007-08-28 21:32         ` [devel] sisyphus_check noarch Alexey Tourbin
2007-09-01 13:12         ` [devel] /usr/lib/pkgconfig vs noarch Денис Смирнов
2007-08-29 15:56       ` Dmitry V. Levin
2007-08-29 17:05         ` Alexey Tourbin [this message]
2007-08-29 19:29           ` [devel] giter-factory Dmitry V. Levin
2007-08-29 19:37             ` Alexey Tourbin
2007-08-29 21:02               ` Alexey Tourbin
2007-08-29 21:11                 ` Dmitry V. Levin
2007-08-29 21:47                   ` Alexey Tourbin
2007-08-29 21:55                     ` Dmitry V. Levin
2007-08-29 22:26                       ` Alexey Tourbin
2007-08-30  8:40                         ` Kirill A. Shutemov
2007-09-01 23:47                       ` Alexey Tourbin
2007-08-30  8:53                 ` Kirill A. Shutemov
2007-09-16 21:13           ` Michael Shigorin
2007-09-16 21:36             ` Alexey Tourbin
2007-09-16 21:32               ` Aleksey Avdeev
2007-09-16 22:15                 ` [devel] giter-factory idea Alexey Tourbin
2007-09-16 23:01                   ` Aleksey Avdeev
2007-09-17  5:42                     ` Alexey Tourbin
2007-09-17 10:41                       ` Aleksey Avdeev
2007-09-18  9:32               ` [devel] giter-factory Michael Shigorin
2007-08-28 20:29   ` [devel] pkgconfiglib.req Alexey I. Froloff
2007-08-28 20:46   ` Alexey Rusakov
2007-08-29 13:51 ` Igor Zubkov
2007-09-16 21:17 ` Michael Shigorin
2007-09-16 22:50   ` Alexey Rusakov
2007-09-17  5:36     ` Alexey Tourbin
2007-09-18 10:09       ` [devel] UQ: git-clone git.alt: unable to chdir or not a git archive Michael Shigorin
2007-09-18 10:09         ` Pavlov Konstantin
2007-09-18 10:15           ` [devel] отбой, спасибо, сам дурак Michael Shigorin
2007-09-18 11:44       ` [devel] pkgconfiglib.req Michael Shigorin
2007-09-18 11:49         ` Alexey Rusakov
2007-09-19 22:22         ` [devel] *.pc -devel Alexey Tourbin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070829170512.GT24207@solemn.turbinal \
    --to=at@altlinux.ru \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git