Я до сих пор работаю по старинке. Все пакеты ставлю глобально (cabal v1-install) из Makefile-а (который заодно умеет и GHC с cabal-ом поставить) и использую обычный ghci без cabal repl. Обновляю раз год, после выхода багфиксов к очередному релизу GHC
( ... )
> Получается какое-то безумие -- есть верхняя граница зависимостей -- не могу использовать библиотеку с новыми версиями её зависимостей. Нет границы -- опять-таки не могу использовать библиотеку.
Что-то мне подсказывает, что сложность сборки может стать экспоненциальной. Хотя можно постепенно, по мере загрузки в Hackage, собирать пакеты и запоминать рабочие/нерабочие сочетания версий. Тогда получится некий автоматический Stackage. Кто бы только всё это сделал ;)
Можно было бы это даже без тестов делать -- загрузил кто-то network-3.0 -- собрали пакеты, которые от него зависят и автоматически добавили к ним границы, если не собираются. Stackage, насколько я понимаю, делает автоматическую сборку и сообщает желающим, что их пакет поломан. Но автоматически границы зависимостей не редактирует.
Reply
--allow-newer не помогает?
Reply
Reply
Тогда условный "network 3.0" отвалится автоматически, без правки границ.
Reply
Можно было бы это даже без тестов делать -- загрузил кто-то network-3.0 -- собрали пакеты, которые от него зависят и автоматически добавили к ним границы, если не собираются. Stackage, насколько я понимаю, делает автоматическую сборку и сообщает желающим, что их пакет поломан. Но автоматически границы зависимостей не редактирует.
Reply
Вот пример: http://0install.net/solver.html
Управление пакетами в SUSE тоже с SAT solver: https://doc.opensuse.org/projects/satsolver/11.4/
Reply
hackage matrix builder в светлом будущем должен научиться так делать
Reply
Leave a comment