On Wed, 20 Mar 2019 15:39:55 +0300 Dmitry V. Levin wrote: > On Wed, Mar 20, 2019 at 02:51:39PM +0300, Andrey Savchenko wrote: > > On Wed, 20 Mar 2019 13:38:57 +0300 (MSK) Ivan Zakharyaschev wrote: > > > On Wed, 20 Mar 2019, Alexey V. Vissarionov wrote: > > > > В общем, оптимальный по эргономике вариант видится мне примерно так: > > > > > > > > set task=`ssh build.alt build $repo $tag` > > > > тестируем - лопухнулись, исправляем > > > > set task=`ssh build.alt build $repo $tag` > > > > опять тестируем - порядок > > > > ssh build.alt commit $task > > > > > > Сейчас это ssh build.alt task run --commit $task > > > > > > Если состояние репозитория и задания позволяют, оно сразу же делает commit > > > сейчас, без пересборки. > > > > > > Просто тут дело не только в интерфейсе, но и в алгоритме работы (и его > > > спецификации) сборочницы: задание может быть закоммичено, только если оно > > > было собрано исходя из текущего состояния репозитория, > > > > Но ведь это избыточное условие для обеспечения пересобираемости > > пакетов и транзакционности сборки. Если пакет A не входит > > в сборочное окружение пакета B (в т.ч. и по сборочным зависимостям > > пакетов и сборочного окружения B, которые могут быть в свою > > очередь рекурсивными), то пакет B можно пересобирать вне > > зависимости от изменений пакета A. > > У нас очень дорогая проверка того, входит ли пакет A в сборочное окружение > пакета B. Возможно, следует подумать над тем, как её удешевить. > > По сути, это классическая задача поиска путей в графе и @viy уже > > много раз писал на эту тему и то, как её алгоритмизировать. > > Для того, чтобы эту задачу решать быстро, насколько я понимаю, > надо упростить зависимости и отказаться от apt в пользу инструментов, > заточенных на решение этой задачи. Смею заверить, что эта задача за разумное время решается на гораздо более сложном графе зависимостей — где кроме зависимостей на пакеты, есть зависимости на свойства сборки этих пакетов, которые в свою очередь могут быть условными или опциональными, т.е. да, я про USE флаги в Gentoo. Наша система зависимостей на порядок проще, поэтому при надлежащей реализации проблем с временем быть не должно. Best regards, Andrew Savchenko