[sisyphus] карманы
Alexey Tourbin
at на altlinux.ru
Пт Май 22 21:38:01 MSD 2009
On Fri, May 22, 2009 at 07:07:36PM +0300, Igor Vlasenko wrote:
> On Fri, May 22, 2009 at 07:02:33PM +0400, Alexey Tourbin wrote:
> > > Эту же цель можно достичь гораздо дешевлее,
> > > реализовав рабочие карманы для всех желающих.
> > > из этих желающих вырастет новое поколение
> > > и тестеров, и мейнтейнеров.
> >
> > Ага, то есть содержимое карманов не предназначено для помещения
> > в репозитарий.
>
> да, в том смысле, что оно сразу в репозиторий не попадает,
> но есть возможность при наличии
> (прав|разрешения RM|разрешения майнтайнера), перезалить
> содержимое кармана на сборку в бранч/сизиф.
Если первоначально не закладывать интеграцию с girar-builder и
возможность взять пакеты в репозитарий (с пересборкой, если она
потребуется), тогда идея карманов получается ещё более неопределенной.
В интернете места много, а hasher как индивидуальный инструмент есть
каждого. И перезалить пакеты на сборку в git.alt тоже никто не
запрещает. Это просто будет какая-то другая инфраструктура, которая
меня не интересует.
А если сразу закладывать интеграцию с girar-builder, тогда опять не
понятно, о чем разговор. Просто заливайте пакеты на сборку. Если
ошибок не обнаружено, то они автоматически проходят. Проверка ACL
должна выполняться последней, так что если не хватает прав, то можно
просить NMU у мейнтейнера и/или администратора/RM. Именно на эту
сборку! Смысл NMU как раз в том, что его надо давать на конкретную
сборку, а не на неизвестно что.
Кажется, сейчас master репозитарий синхронизируется в публичный доступ
раз в сутки. Если синхронизировать его чаще, то это даст возможность
быстрее устанавливать и тестировать только что собранные пакеты.
(У меня есть доступ к master репозитарию в обход публичного доступа,
так что при необходимости я сразу забираю и смотрю что там получилось.)
> > Когда мы начинаем
> > собирать карман, надо делать lock репозитария на чтение, чтобы во
> > время установки пакетов не оказалось, что репозитарий уже изменился.
>
> лок на чтение можно, например, заменить хардлинк-копией репозитория.
У меня нет административного доступа к серверам, и я даже слабо
представляю себе, каким образом копии репозитария распределены между
серверами. Хардлинк-копии в принципе возможны, и это один из вариантов.
Сейчас используются симлинк-копии репозитария.
Но даже чтобы сделать хардлинк-копию репозитария, надо брать lock
на чтение. Репозитарий постоянно обновляется, а сборка задания берёт
лок на запись. И это правильно, потому что во время сборки задания
репозитарий нельзя обновлять. Но, получается, что во время сборки
задания репозитарий нельзя и читать. Значит, нужна другая семантика
блокировки (multiple-reader/single-writer), с промежуночной ступенью
IWRITE (shared with READ, but conflicts with WRITE and IWRITE).
http://www.oracle.com/technology/documentation/berkeley-db/db/ref/lock/cam_conv.html
Конечно, всё это чисто технические трудности.
> Более того,
> поскольку это карман, то от технически сложных или ресурсоемких
> проверок можно и отказаться, частично.
> А проводить их только для пакетов, помещаемых в репозитарий.
Сейчас выполняются только проверки, которые отлавливают грубые ошибки:
проверка зависимостей, контроль ABI и установка пакетов. Эти проверки
занимают относительно немного времени (время сборки варьируется гораздо
сильнее). Пока тут не на чем экономить.
> > И надо ли брать такой лок per package или per карман, это всё непростые
> > вопросы.
> В случае проблем для карманов можно пожертвовать строгостью.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 197 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20090522/8920ef87/attachment-0001.bin>
Подробная информация о списке рассылки Sisyphus