在构建中包含 tasty-quickcheck 的问题
Trouble including tasty-quickcheck in the build
我是堆栈新手。
我有一个堆栈项目,我想使用 tasty-quickcheck。当我将 tasty-quickcheck
添加到 package.yaml 时,堆栈要求我将其添加到 stack.yaml 以及 extra-deps 部分下。在将 tasty-quickcheck-0.10.1.1
添加到 extra-deps 堆栈后,要求我向我添加的 extra-deps 添加大约十几个包。
现在我正处于尝试执行 stack build
.
时出现以下错误的阶段
stack build
Error: While constructing the build plan, the following exceptions were encountered:
In the dependencies for transformers-compat-0.6.5:
transformers-0.5.6.2 from stack configuration does not match >=0.3 && ==0.2.*
needed due to tic-tac-toe-0.1.0.0 -> transformers-compat-0.6.5
Some different approaches to resolving this:
* Set 'allow-newer: true'
in /Users/home/.stack/config.yaml to ignore all version constraints and build anyway.
Plan construction failed.
我的 package.yaml 如下所示。
...
dependencies:
- base >= 4.7 && < 5
- vector
- mtl
- tasty-quickcheck
...
我的 stack.yaml 如下所示。
...
resolver: ghc-8.8.3
extra-deps:
- vector-0.12.1.2
- primitive-0.7.0.1
- tasty-quickcheck-0.10.1.1
- random-1.1
- tagged-0.8.6
- tasty-1.3.1
- QuickCheck-2.14
- ansi-terminal-0.10.3
- async-2.2.2
- clock-0.8
- optparse-applicative-0.15.1.0
- unbounded-delays-0.1.1.0
- wcwidth-0.0.2
- ansi-wl-pprint-0.6.9
- colour-2.3.5
- hashable-1.3.0.0
- splitmix-0.0.5
- transformers-compat-0.6.5
...
我有两个问题。
- 如何修复上述错误?
- stack 通常会告诉您添加更多依赖项只是为了获得像 tasty-quickcheck 这样的单个包吗?这对我来说听起来不太好。这是大多数包裹的常态吗?
引用评论:
Which resolver
(or snapshot
) is specified in your stack.yaml
?
@duplode 是resolver: ghc-8.8.3
您可能不想在这种情况下使用 ghc-*
解析器。它们仅指定 GHC 版本(以及与 GHC 捆绑在一起的少数软件包的版本),这就是为什么您必须将其他所有内容添加到 extra-deps
。将 resolver
更改为 lts-16.0
(最新的 Stackage LTS,which does include tasty-quickcheck-0.10.1.1
),从 stack.yaml
文件中删除 extra-deps
;这应该足以让事情正常进行。
我是堆栈新手。
我有一个堆栈项目,我想使用 tasty-quickcheck。当我将 tasty-quickcheck
添加到 package.yaml 时,堆栈要求我将其添加到 stack.yaml 以及 extra-deps 部分下。在将 tasty-quickcheck-0.10.1.1
添加到 extra-deps 堆栈后,要求我向我添加的 extra-deps 添加大约十几个包。
现在我正处于尝试执行 stack build
.
stack build
Error: While constructing the build plan, the following exceptions were encountered:
In the dependencies for transformers-compat-0.6.5:
transformers-0.5.6.2 from stack configuration does not match >=0.3 && ==0.2.*
needed due to tic-tac-toe-0.1.0.0 -> transformers-compat-0.6.5
Some different approaches to resolving this:
* Set 'allow-newer: true'
in /Users/home/.stack/config.yaml to ignore all version constraints and build anyway.
Plan construction failed.
我的 package.yaml 如下所示。
...
dependencies:
- base >= 4.7 && < 5
- vector
- mtl
- tasty-quickcheck
...
我的 stack.yaml 如下所示。
...
resolver: ghc-8.8.3
extra-deps:
- vector-0.12.1.2
- primitive-0.7.0.1
- tasty-quickcheck-0.10.1.1
- random-1.1
- tagged-0.8.6
- tasty-1.3.1
- QuickCheck-2.14
- ansi-terminal-0.10.3
- async-2.2.2
- clock-0.8
- optparse-applicative-0.15.1.0
- unbounded-delays-0.1.1.0
- wcwidth-0.0.2
- ansi-wl-pprint-0.6.9
- colour-2.3.5
- hashable-1.3.0.0
- splitmix-0.0.5
- transformers-compat-0.6.5
...
我有两个问题。
- 如何修复上述错误?
- stack 通常会告诉您添加更多依赖项只是为了获得像 tasty-quickcheck 这样的单个包吗?这对我来说听起来不太好。这是大多数包裹的常态吗?
引用评论:
Which
resolver
(orsnapshot
) is specified in yourstack.yaml
?@duplode 是
resolver: ghc-8.8.3
您可能不想在这种情况下使用 ghc-*
解析器。它们仅指定 GHC 版本(以及与 GHC 捆绑在一起的少数软件包的版本),这就是为什么您必须将其他所有内容添加到 extra-deps
。将 resolver
更改为 lts-16.0
(最新的 Stackage LTS,which does include tasty-quickcheck-0.10.1.1
),从 stack.yaml
文件中删除 extra-deps
;这应该足以让事情正常进行。