Я внес изменение в проект Haskell opaleye , который мне нужен для проекта, над которым я работаю. Изменение относится к версии 0.6.7003.1
, которая еще не распространилась в хранилище nixos ( nixos.org показывает, что его текущей версией является 0.6.7001.0
).
Поскольку эта необходимая зависимость отличается от версии LTS резолвера, я отметил дополнительную зависимость в stack.yaml
:
packages:
- git@github.com:tomjaguarpaw/haskell-opaleye.git
- commit: cf3296c5ffef58d36dd6b386ae53dff519ee47e9
Я также отметил эту версию в build-depends
моего project.cabal
файла:
build-depends: opaleye >= 0.6.7003.1 && < 1
Когда я попытался построить, я получил следующую ошибку:
$ stack build
Error: While constructing the build plan, the following exceptions were encountered:
In the dependencies for taskmaster-0.1.0.0:
opaleye must match >=0.6.7003.1 && <1, but the stack configuration has no specified version (latest matching version is 0.6.7003.1)
needed since taskmaster is a build target.
Some different approaches to resolving this:
* 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/matthew/backup/taskmaster/taskmaster/stack.yaml:
opaleye-0.6.7003.1@sha256:914ac99c6f7ceea050df843ac31c33be0f6340bc0f05753c8fdfc18074fa9e5b
Plan construction failed.
(я не понимаю, откуда взялся этот длинный (> 40 символов) хэш sha256).
Я последовал совету и добавил следующее к своему stack.yaml
.
extra-deps:
- opaleye-0.6.7003.1@sha256:914ac99c6f7ceea050df843ac31c33be0f6340bc0f05753c8fdfc18074fa9e5b
Когда я запускаю $ stack build
, чтобы построить свой проект, компилятор пытается собрать, не показывая никаких ошибок зависимости. Тем не менее, он вызывает ошибку типа, которой не было бы, если бы он использовал версию Opaleye, содержащую мои изменения. И, когда я запускаю $ stack ghci
и импортирую соответствующий модуль opaleye, мои изменения отсутствуют. Похоже, что стек все еще использует более старую версию opaleye. Как я могу заставить стек использовать более свежую версию opaleye, содержащую мои изменения?
Кажется, мои попытки исчерпали возможности, упомянутые в документации по haskell-stack .