ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Метарепозиторий Сизифа
@ 2007-11-06 21:35 Alexey Tourbin
                     ` (4 more replies)
  0 siblings, 5 replies; 29+ messages in thread
From: Alexey Tourbin @ 2007-11-06 21:35 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

On Tue, Nov 06, 2007 at 05:46:44PM +0300, Dmitry V. Levin wrote:
> Проблема в том, что действующую систему сборки хочется трогать как можно
> меньше, поскольку ещё есть надежда перейти на новую систему сборки
> в обозримом будущем.

Надеяться не вредно.  В свое время на консультации перед первым
экзаменом по высшей математике я задал преподавателю два вопроса:
1) какие оценки Вы обычно ставите; и 2) стоит ли надеяться на хорошую
оценку.  Ответы были соответственно 1) оценки бывают разные; и
2) надеяться можно всегда.  (Оценка на экзамене была удовлетворительной --
я не понимал, что такое последовательность Коши.  Через две недели я
пошел на пересдачу и мне поставили хорошую оценку.  Полтора года спустя
итоговая оценка была отличной.)

Можно не только надеяться, но и пытаться понять суть вещей.

Я предлагаю попытаться понять и обсуждать более фундаментальные вещи
(если есть что обсуждать), не опускаясь до техники реализации.  Но это
идёт рука об руку.  Когда уже становится достаточно понятно, что нечно
подлежит реализации, то это становится достаточно просто реализовать.

Некоторое время назад я писал про желаемую процедуру прохождения
пакетов.  Теперь надо посмотреть на это с другой стороны -- на какой
структуре данных эта процедура будет работать.

Нужно дать "более алгебраическое" описание желаемой действительности,
а именно, какие элементарные множества у нас имеются, и какие
элементарные операции к элементам этих множеств применимы.
Алгебраическая строгость, конечно, быстро пропадёт, но она по крайней
мере помогает понять "что к чему" на ранних этапах.

Я уже писал, что прохождение новых пакетов в сизиф подобно "коммитам"
в некоем "репозитарии" пакетов (метарепозитарии).  Наивная сериализация
склоняет к линейной истории коммитов, но практика говорит о том, что
любой "неудачный коммит" всего лишь открывает транзакцию, которая,
при условии устранения всех "неудачных моментов" может быть потом
"слита" (merge) в mainline (HEAD) репозитария.

То есть, выражаясь более эзотерически, существует некий "холизм",
когда "борьба" или "духовная брань" на земле отображется в это самое
дело на небе, а "поле битвы -- сердца людей" (Достоевский).  Это значит,
что история "настоящего пакета" должна находить отражение в истории
"метарепозитария" в целом. Прошу прощения за отклонение в изотерику.
Идея в целом достаточно важна, но мои вербальные возможности столь же
скудны.

Нет никакой нужды дальше поддерживать мнимое существование
"метарепозитария Сизифа".  Можно это понятие эксплицировать, и сказать,
что метарепозитария Сизифа -- это обычный git-репозитарий, в котором
хранится существенная информация о пакетах в Сизифе.  Это информация
является достаточной, а в основном и необходимой, для дальнейшего
продвижения "хеда" репозитария.

Короче, идея в следущем.  Есть git-репозитарий сизифа.  В нём существуют
подкаталоги по имени каждого src.rpm пакета.  Прохождение любого
пакета автоматически "влияет" на всё остальные (зависимые) пакеты по
крайней мере в смысле возможности пересборки.

Рассмотрим пример.  Пришёл пакет perl-XML-LibXML, и он "собрался"
(собираемость пакета является уточняемым понятием).  Дальше предстоит
некое довольно долгое тестирование репозитария на предмет того, что
новый пакет ничего не ломает.  Это значит, что каждый входящий пакет
открывает входящую транзакцию, по номеру серийного задания.  Пусть номер
задания будет 333, и пакет perl-XML-LibXML собрался.  Создается бранч 333.

	* branch 333: perl-XML-LibXML built ok
	 `* HEAD -- current sisyphus

Имеется попытка перевода репозитария в новое целостное состояние --
с новым пакетом perl-XML-LibXML.  Происходят всевозможные тестирования,
в частности, пересборка пакета perl-XML-LibXSLT.

	* perl-XML-LibXSLT rebuilt ok (perl-XML-LibXSLT/ updated)
	* branch 333: perl-XML-LibXML built ok
	 `* HEAD -- current sisyphus

Когда всё тестирование прошло без обломов, тогда merge нового бранча
(или же "commit") происходит автоматически.

	 /* HEAD -- merge new perl-XML-LibXSLT into current sisyphus
	* | perl-XML-LibXSLT rebuilt ok (perl-XML-LibXSLT/ updated)
	* | branch 333: perl-XML-LibXML built ok
	 `* HEAD -- current sisyphus

На самом деле здесь будет "fast forward", то есть в простейшем случае,
если иметь в виду сериализацию заданий, не нарушается линейность истории.

В более неудачном случае merge не может быть простым "fast forward",
и здесь потребуется sophisticated стратегия мёржа.  Стратегии мёржа
метарепозитария я не буду обсуждать раньше времени, чтобы не усложнять
того что по сути просто.

Короче, есть такое дело -- МОЗГОВОЙ ШТУРМ.
Я предлагаю сделать метарепозитарий сизифа, в котором содержится
необходимя и достаточная информация для поддержки "новой системы сборки
пакетов".  На каждый src.rpm пакет имеется соответствующий подкаталог
метарепозитария.

Вопрос по части мозгового штурма у меня к вам простой -- ЧТО ДОЛЖНО
ЛЕЖАТЬ В ПОДКАТАЛОГАХ ЭТОГО РЕПОЗИТАРИЯ?  (У меня есть тетрадка в
которой исчеркано несколько страниц на эту тему... но я прошу высказать
то что сходу приходит вам в голову.)

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

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2007-11-09  6:44 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-11-06 21:35 [devel] Метарепозиторий Сизифа Alexey Tourbin
2007-11-07  5:23   ` Alexey Tourbin
2007-11-07  5:50     ` Хихин Руслан
2007-11-07  7:01       ` Alexey Tourbin
2007-11-07 21:37         ` Kirill A. Shutemov
2007-11-07 10:16 ` Alexey I. Froloff
2007-11-07 10:38   ` Alexey Gladkov
2007-11-07 10:39 ` Alexey Gladkov
2007-11-07 10:43 ` Alexey Gladkov
2007-11-07 10:49   ` Alexey Gladkov
2007-11-08 17:42 ` Dmitry V. Levin
2007-11-08 18:38   ` Sergey Vlasov
2007-11-08 20:17     ` Dmitry V. Levin
2007-11-08 19:03   ` Alexey Tourbin
2007-11-08 19:20     ` Kirill A. Shutemov
2007-11-08 19:46       ` Alexey Tourbin
2007-11-08 19:23     ` [devel] bootstrap транзакции Alexey Tourbin
2007-11-08 21:20     ` [devel] Метарепозиторий Сизифа Dmitry V. Levin
2007-11-08 22:08       ` Alexey Tourbin
2007-11-08 22:30         ` [devel] git-репозитарий для логов сборки Alexey Tourbin
2007-11-08 22:48           ` Dmitry V. Levin
2007-11-08 23:28             ` Alexey Tourbin
2007-11-09  1:09               ` Dmitry V. Levin
2007-11-09  1:21                 ` Alexey Tourbin
2007-11-09  2:06             ` Alexey Tourbin
2007-11-08 22:38         ` [devel] Метарепозиторий Сизифа Dmitry V. Levin
2007-11-08 23:04           ` Alexey Tourbin
2007-11-09  1:06           ` Alexey Tourbin
2007-11-09  6:44             ` Kirill A. Shutemov

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