On Mon, Jun 15, 2009 at 11:56:43AM +0400, Max Ivanov wrote: > > Дело не только в этом.  Для "покетов" (в широком смысле) нет адекватной > > модели данных, которая казалась бы мне, ну, правильной.  Поэтому я не > > знаю, как это можно реализовать > > Ну что ж, хоть к чему то пришли. Я вижу цель сообщества сейчас > придумать модель данных, которая устроила бы математика at и тогда у > нас могут появиться pocket'ы! Инициатива наказуема. > Как основа для обсуждения: > > 1) пакет отправленный на сборку в карман собирается в hasher с > подключенными репами sisyphys + current pocket, при этом версия > sisyphus фиксируется на момент сборки первого пакета в карман, все > последующие пакеты в нем собираются с этим архивным sisyphus Как нам сделать "архивный sisyphus"? Сейчас нет никакой инфраструктуры типа copy-on-write, а единственная возможность -- брать лок на реопзиторий. Лок автоматически снижает возможности доступа к репозиторию. Даже для того, чтобы сделать hardlink-копию репозитария, нужен лок. Это целая теория transaction locks, как грамотно брать локи без дергадации возможностей. Но у нас-то всё это написано на шелле. Тогда давайте опустимся. Пусть карманы собираются не на текущем репозитории, а на последней (вчерашней) копии репозитория. Но тогда к чему всё сводится? Какие-то мужички где-то чево-то собирают. Ну тогда какой мне интерес. Люблю отчизну я но странною любовью, ну а чем это всё это кончается Вы знаете. Говор пьяных мужичков. Ж) > 2) результат тестируется с учетом этих двух репозиториев (например > символы ищутся и в сизифе и в кармане, если нет анметов, то след. > пункт.) С этим есть проблемы. Чтобы выполнять проверки целостности репозитория, нужно полностью сформировать новый репозиторий, выполнив все замещения пакетов. Целостность по схеме репозиторий + оверлей проврке не поддается. > 3) результат сборки выкладывается в карман > 4) карман выглядит для всех как обычный apt репозиторий, который > необходимо подключить как дополнительный к сизифу. С оверлеями есть некоторые проблемы, ну ладно. > 5) администратор кармана может заказать полную пересборку кармана на > последнем сизифе, если всё прошло успешно то новые пакеты в этом > кармане будут собираться на нем. > 6) в любой момент администратор кармана может отправить весь карман в > сизиф, при этом всё содержимое кармана пересобирается на текущем > сизифе как один большой task, проходят все сизифные тесты и если всё > ок пакеты оказываются в сизифе. Если в сизифе в этом время пакет foo > уехал по версии вперед, то в сизиф не попадет весь task (ну это и > сейчас вроде есть). В общем что такое task я понимаю, а что такое pocket я не понимаю. > 7) проблемы пользователей при подключении двух карманов с общими > пакетами не надо решать никаками способами (те. вводить новые тесты, > ограничения и пр.), это исключительно проблемы пользователей и > администраторов этих двух (и более карманов), сами договорятся и всё > уладят. > Вот как-то так. > @at: покритикуйте, что вам не нравится, а мы подумаем как это исправить.