Привет! 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. По сути, это классическая задача поиска путей в графе и @viy уже много раз писал на эту тему и то, как её алгоритмизировать. К сожалению, наша сборочница очень плохо проработана в этом направлении и, как я понимаю её отцов-основателей, желания переделывать её архитектуру в этом вопросе нет. (Есть планы изменения архитектуры взаимодействия головного узла и сборочных нод, но это отдельный разговор и до сих пор до реализации дело не дошло.) Best regards, Andrew Savchenko