[devel] Цель проекта Sisyphus

Evgeny Sinelnikov sin на altlinux.ru
Пн Июн 15 22:47:53 MSD 2009


15 июня 2009 г. 18:00 пользователь Igor Vlasenko
(vlasenko at imath.kiev.ua) написал:
> On Mon, Jun 15, 2009 at 05:57:57PM +0400, Alexey I. Froloff wrote:
>> Единственная польза от "покетов" (я так понимаю тебе нужна именно
>> эта фича) - закинуть пакет и устроить с ним тестовую пересборку
>> всего репозитория.  Сейчас, как я понял, на это всё равно нет
>> мощностей.
>
> Как напрягает повторяться вновь и вновь...
>
> проблем накопилось не одна, а сразу несколько:
> это проблемы и
> - с публичной ознакомительной сборкой (основа - сизиф) (сломан daedalus)
> - с нестабильной сборкой (основа - сизиф) (карманы?)
> - с bootstrap циклом обновлений (основа - сизиф) (карманы?)
> - с acl и исправлениями в branch
> - с возможностью публично выложить сборку для бранча
> (backports или аналог (карманы?).
>
> Соотв. для каждой из этих проблем требуется решение,
> возможно специализированное.
>
> Слово "карманы" можно заменить чем угодно, лишь бы "оно" работало.
>

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

Пока же ситуация вынуждает:
- оттягивать выкладывание результатов, с целью более тщательного
тестирования, когда помощь в этом могли бы оказать, вероятно, многие;
- требует длительного обхаживания вокруг проблем при необходимости
bootsrap'ов (особенно при смене ABI), в то время как достаточно было
бы частичной пересборки (если будет ручка сделать полную, то будет
вообще круто, но пока это не требуется);
- забрасывать задачи, не выложив предварительные результаты, которые
уже как бы даже готовы, но позже уже будут потеряны;
- заставляет решать проблемы не в частном виде, а в общем, поскольку
текущий подход не позволяет дифференцировать проблемы при
тестировании.

И тут нечего бояться. Меленькие "сизифчики" уже давно у всех, кому
надо, появились. И вот от туда бывает, что уже точно нет никакого
резона пакеты куда-то переносить.

Я думаю, что самый простой способ сделать "карманы" - это добавить
некоторый набор команд в girar:
$ ssh git.alt init-repo <baserepo> <repo>
$ ssh git.alt rm-repo <repo>
$ ssh git.alt mv-repo <repo> <newrepo>
где baserepo - это один из базовых репозиториев, для которого
создаётся публичный репозиторий. Базовый репозиторий входит в
сборочную среду "кармана". И разрешить указывать их в качестве
репозиториев на сборку.

Остаётся разрешить ряд вопросов:
- можно ли разрешить добавлять один "карман" в сборочную среду другого?
- как определять права на работу над "карманами" (я бы не ограничивал
никак - обошёлся бы без ACL)?
- как определять права на удаление/переименование "карманов"?
Владелец, группа или все?

Думаю также, что стоит ли разрешить переносить пакеты из кармана в
базовый репозиторий с учётом всех проверок + проверки разницы в
сброчной среде, аналогично тому, как это делается между бранчами +
сравнение сборочной среды. В случае невозможности переноса было бы
неплохо уметь сформировать task для пересборки из тех  пакетов,
которые были ранее собраны в "карман", причём в том порядке, с которым
они туда собирались. Что-то вроде такого:
girar-task add [<task_id>] move <repo>
girar-task add [<task_id>] rebuild <repo>

Вот как-то так я себе представляю работу с публичными репозиториями.

-- 
Sin (Sinelnikov Evgeny)


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