[devel] Промежуточные сабтаски в сборочных заданиях
Paul Wolneykien
manowar на altlinux.org
Сб Ноя 2 21:10:33 MSK 2024
В Sat, 2 Nov 2024 16:22:54 +0200
"Dmitry V. Levin" <ldv на altlinux.org> пишет:
> On Sat, Nov 02, 2024 at 04:46:14PM +0400, Ivan A. Melnikov wrote:
> [...]
> > Одной из важных характеристик текущей модели girar
> > является воспроизводимость, понимаемая как возможность
> > взять то же самое и сделать ещё раз.
>
> Это не просто важная характеристика, это принцип, на котором girar построен.
Я понял, это про другую воспроизводимость. Поскольку я не занимаюсь
догоняющими сборками, то возможность и необходимость взять предыдущее
состояние репозитория (или аналогичное ему в другом репозитории) и
перейти от этого состояния к следующему --- пример экзотический.
Но вы безусловно правы, ломать это нельзя.
Тогда, получается, что изначальное предложение Айрата довольно точное:
всё сделать в одном задании, чтобы "накатывание" задания на репозиторий
оставалось бы однозначным переходом от известного состояния репозитория
к новому. При этом Айрат хотел каким-то особенным флагом помечать
промежуточные подзадания, "которые при коммите задания не попадают
в репозиторий". Если именно это место вызывает вопросы и сложности,
то нельзя ли поступить вот так?
$ ssh girar task new
$ ssh girar task add repo rust 1.76.0-alt1
$ ssh girar task add repo rust 1.77.0-alt1
...
$ ssh girar task add repo rust 1.81.0-alt1
$ ssh girar task add repo rust 1.82.0-alt1
$ ssh girar task add deloc rust 1.81.0-alt1
$ ssh girar task add deloc rust 1.80.0-alt1
...
$ ssh girar task add deloc rust 1.76.0-alt1
$ ssh girar task run --commit
Предполагается, что deloc в отличие от del, воздействует на репозиторий
данного задания ("карман"), а не на целевой репозиторий (Сизиф, p11).
Естественно, что для того, чтобы сработали множественные "add repo rust",
ограничение на совпадение имени пакета нужно будет снять.
Упрощение при таком подходе, как мне кажется, состоит в том, что если
задание успешно проходит все подзадания, то в "кармане" получается
вполне определённое, воспроизводимое (!) при новом try состояние,
определённый набор пакетов, который можно проверить на устанавливаемость,
анметы и пр. И если всё в порядке --- добавить в целевой репозиторий.
То есть в точности, как сейчас, без проверки новых условий.
А ещё появится возможность смешного:
$ ssh girar task new
$ ssh girar task add repo mypackage 1.0-alt1
$ ssh girar task add deloc mypackage 1.0-alt1
$ ssh girar task run --commit
Сборка такого задания могла бы завершаться весёлым
сообщением о том, что всё успешно собралось, но результат
оказался пустым.
Подробная информация о списке рассылки Devel