On Wed, 20 Mar 2019 16:09:14 +0300 Dmitry V. Levin wrote: > On Wed, Mar 20, 2019 at 04:01:33PM +0300, Andrey Savchenko wrote: > > On Wed, 20 Mar 2019 15:48:07 +0300 Dmitry V. Levin wrote: > > > On Wed, Mar 20, 2019 at 03:33:01PM +0300, Andrey Savchenko wrote: > > > [...] > > > > Да, я в этом уверен. Эпопея с пересборкой зависимостей libstdc++ на > > > > e2k показала полную неготовность нашей сборочницы к задачам > > > > построения графа зависимостей переданных ей пакетов и операций над > > > > этим графом. > > > > > > Ничего не знаю про вашу сборочницу на e2k, но наша сборочница не > > > занимается упорядочиванием сборки ваших пакетов по их зависимостям, > > > мантейнеры определяют порядок сборки пакетов самостоятельно. > > > > И очень плохо, что она этим не занимается. На e2k всё аналогично. > > > > > Я не вижу смысла вешать эту задачу на сборочницу-сервер, если > > > вы уже умеете эту задачу решать на клиентской стороне. > > > > На клиентской стороне у нас это не автоматизировано, к сожалению, > > нужна ручная работа для того же разрыва колец. > > > > И смысл я вижу (и не один я!), потому что есть задачи, где программа > > может делать работу лучше, чем человек и нечего заставлять человека > > каждый раз выполнять автоматизируемую задачу. Он может потратить > > своё время (в т.ч. оплачиваемое) более продуктивно. > > > > Да, я хочу, чтоб сборочнице можно было: > > > > 1) Дать список пакетов и она сама выстроила нужную > > последовательность их сборки, распараллелив её там, где это > > возможно по сборочным зависимостям. > > > > 2) Сказать: пересобери мне пакет X и всё, что от него зависит прямо > > или косвенно. > > Я не против автоматизации, но почему эта автоматизация должна быть на > серверной стороне, а не на клиентской? У вас ведь уже есть все данные > для решения этой задачи. Потому что сервер может держать единый кеш для графа связей, а клиентам придётся перестраивать его каждый раз самостоятельно. Мало того, поскольку любой наш репозиторий в заданный момент времени может быть только в одном состоянии, то есть смысл, чтоб сборочница имела выстроенный граф зависимостей для текущего состояния каждого репозитория. Это резко ускорит выполнение подобных операций и существенно упростит распараллеливания разных этапов сборки различных заданий в репозитории, поскольку выстроенные графы зависимостей позволят автоматически распараллеливать сборку задач там, где сейчас применяется последовательная сборка. По сути, мы имеем целый ворох разнообразных проблем и задач, которые упираются в граф зависимостей между пакетами. Best regards, Andrew Savchenko