2016-02-26 2 views
4

У меня есть старый проект, который я создал с помощью Stack. Я хочу перенести свой проект на последний набор LTS из Stackage.Как обновить файл .cabal с помощью Stack?

Когда я изменяю преобразователь в файле stack.yaml, проблема в том, что версии в дополнительных файлах в файле .cabal все еще для старого набора LTS. Есть ли способ автоматически обновлять номера версий в файле .cabal с помощью Stack?

+0

Если вы используете Stack, почему у вас есть номера версий в файле cabals? (Я сам haskell newb, так что это вопрос, а не критика) –

+1

@ChrisMartin, если вы хотите упаковать проект в библиотеку, он должен иметь соответствующие диапазоны зависимостей в файле cabal. – sclv

+0

Я думаю, что это нормально отправлять библиотеку с неограниченными зависимостями в файле .cabal, если вы отправляете файл stack.yaml. Также, если вы распространяете свой пакет через Stackage, сервер сборки будет компилировать ваш проект и проверять ошибки. Все в порядке. (И это не так, как ограничение ваших зависимостей не имеет собственных проблем.) – hao

ответ

0

Вы можете просто удалить (некоторые из) границы (верхние) build-depends в вашем файле cabal.

Когда дело доходит до распространения вашего пакета, стек может автоматически добавлять границы зависимостей, если вы используете флаг --pvp-bounds, например. stack sdist --pvp-bounds upper, stack upload --pvp-bounds both и т.д.

На этой функции есть blog post by Michael Snoyman.

Смежные вопросы