Стек только находит более новую версию Cabal - PullRequest
4 голосов
/ 12 марта 2019

Я пытаюсь построить мой проект, используя Stackage lts-13.12.

После того, как Stack пожаловался, что версия Cabal была слишком новой, я попытался установить более старую версию:

cabal --version
  cabal-install version 2.2.0.0
  compiled using version 2.2.0.1 of the Cabal library 

Однако, когда я запускаю stack solver, я получаюследующая ошибка:

Using configuration file: stack.yaml
Using cabal packages:
- ./

Using resolver: lts-13.12

Warning: Installed version of cabal-install (2.4.1.0) is newer than stack has been tested with.  If you run into difficulties, consider downgrading.

Using compiler: ghc-8.6.4
Asking cabal to calculate a build plan...
Trying with packages from lts-13.12 and 1 external packages as hard constraints...
The following lines from cabal-install output could not be parsed: 
optparse-applicative-0.14.3.0 (via: project-0.1.0.0 project-0.1.0.0) (new
package)
CallStack (from HasCallStack):
  error, called at src/Stack/Solver.hs:174:16 in stack-1.9.3-F7FXKCpM3pk5wCtbL9Utvv:Stack.Solver

Мои вопросы:

  • Почему Stack видит более новую Cabal?Как мне сделать так, чтобы он видел более старый?
  • Почему Stack несовместим с Cabal 2.4.1.0, когда это версия в Stackage LTS 13.12?

Я работаю Version 1.9.3 стека, если это имеет значение.

1 Ответ

3 голосов
/ 12 марта 2019

Известно, что сообщения об ошибках решателя стеков являются плохими и задыхаются на выходе клики.Я не верю, что эта функция хорошо поддерживается.

Хотелось бы, чтобы стек обновлял свои ошибки и предупреждения.Возможно, лучшим выбором будет придерживаться cabal-install-2.4.1.0.

Вместо использования stack solver, я рекомендую вам заставить его использовать lts-13.12, а затем добавить дополнительные deps вручную для решения любых проблем, которые вывстреча.Большую часть времени стек будет рекомендовать правильные дополнительные умения (без использования решателя), но вам нужно применить некоторую интуицию, чтобы убедиться, что они верны.

...