Какова связь между ограничениями зависимостей в «конфигурации стека», xxx.cabal и cabal.config? - PullRequest
0 голосов
/ 15 ноября 2018

Я еще не пытался решить проблему;Сначала я хочу понять, откуда возникла проблема:

TextTerra $ stack --nix test

Error: While constructing the build plan, the following exceptions were encountered:

In the dependencies for TextTerra-0.1.0.0:
    easytest-0.2 from stack configuration does not match ==0.2.1  (latest matching version is 0.2.1)
needed since TextTerra is a build target.

Some different approaches to resolving this:

  * Set 'allow-newer: true' to ignore all version constraints and build anyway.

  * Consider trying 'stack solver', which uses the cabal-install solver to attempt to find some working build configuration. This can be convenient when dealing with many complicated constraint
    errors, but results may be unpredictable.

  * Recommended action: try adding the following to your extra-deps in /home/brandon/workspace/TextTerra/stack.yaml:

- easytest-0.2.1

Plan construction failed.

Теперь нет другой ссылки на easytest, особенно easytest-0.2;я добавил только одну ссылку:

TextTerra $ rg easytest
TextTerra.cabal
67:      , easytest == 0.2.1

Однако в cabal.config была ссылка на easytest-0.2.Я не знаю об актуальности этого файла, так как быстрый поиск мало что дает, и удаление файла не влияет на сборку (в частности, я получаю то же сообщение об ошибке выше).

1 Ответ

0 голосов
/ 15 ноября 2018

В ...

easytest-0.2 из конфигурации стека не соответствует ==0.2.1

... «конфигурация стека» означает набор пакетов, указанный в resolver (обычно снимок Stackage - вы можете найти списки пакетов и версий в снимке на сайте Stackage ) и extra-deps в stack.yaml, тогда как ограничение ==0.2.1 - это то, что запрашивает ваш файл .cabal. Предложения, приведенные в сообщении об ошибке (игнорирование .cabal верхних границ с allow-newer и добавление пакетов в extra-deps), уместны в тех случаях, когда вы хотите или нуждаетесь в сборке с определенным преобразователем. Если это не так (например, если вы пытаетесь обновить старый проект до последнего снимка LTS), вы также можете изменить преобразователь на что-то, что включает в себя пакеты и версии, которые вы ищете (если такой преобразователь доступен ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...