On Thu, May 18, 2006 at 01:44:50PM +0400, Alexey Gladkov wrote: > Проанализировав логи от нового робота, я вижу что мантейнерам очень > тяжело правильно расставить сборочные зависимости с версиями. В тоже > время в ходе предыдущего обсуждения я понял то, что большинству > разработчиков достаточно предоставить механизм для указания > последовательности сборки их пакетов. Дело даже не в том, что это тяжело - во многих случаях указание подобных зависимостей просто не имеет смысла. Например, если у библиотеки меняется ABI (и, как следствие, soname), но использующий эту библиотеку пакет может собраться как со старой, так и с новой версией библиотеки, добавление в пакет зависимости, блокирующей сборку со старой версией, выглядит неправильным (как минимум, это создаёт лишнюю работу для backports). > Исходя из этого я переписал робота так чтобы он учитывал только (почти > только) BUILDTIME пакетов. У нового робота порядок работы следующий: > * пакеты разделяются по мантейнерам; > * пакеты сортируются по BUILDTIME и формируется линейная очередь; > * пакеты для каждого мантейнера пересобираются по очереди до тех пор, > пока пакеты из очереди собираются. > * если пакет не собрался из-за того что apt в hasher не нашёл пакет > или нужную версию, то такой пакет остаётся в очереди на следующий цикл. Т.е., теперь все пакеты одного мантейнера будут обрабатываться последовательно - возможность параллельной сборки вновь пропадает? > BuildRequires обрабатываются только в hasher. hasher собирает на > сизифе плюс то что уже собрано. Поэтому новый робот не избавляет от > необходимости указывать правильные BuildRequires. > > Я могу запустить этого робота уже сегодня. > Вопрос: какой из алогритмов вам больше нравится - текущий или новый ? Поскольку о повышении квалификации среднего мантейнера можно только мечтать, вероятно, придётся всё-таки использовать сортировку по BUILDTIME, как дающую меньше сюрпризов.