1

我是新手。

我有一个堆栈项目,我想使用taste-quickcheck。当我添加tasty-quickcheck到 package.yaml 时,stack 会要求我将它添加到 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
...

我有两个问题。

  1. 如何解决上述错误?
  2. 堆栈是否通常会告诉您添加十几个依赖项只是为了获得一个包,例如包含美味快速检查?这对我来说听起来不太好。这是大多数包裹的标准吗?
4

1 回答 1

2

引用评论:

您的 ? 中指定了哪个resolver(或) ?snapshotstack.yaml

@duplode 是resolver: ghc-8.8.3

在这种情况下,您可能不想使用ghc-*解析器。它们仅指定 GHC 版本(以及与 GHC 捆绑在一起的少数软件包的版本),这就是为什么您必须将其他所有内容添加到extra-deps. 将 更改resolverlts-16.0(最新的 Stackage LTS,其中包括tasty-quickcheck-0.10.1.1),extra-depsstack.yaml文件中删除 ;这应该足以让事情正常进行。

于 2020-06-10T12:43:09.607 回答