Haskell stack - allow-newer 已启用且不会关闭?

Haskell stack - allow-newer enabled and won't turn off?

根据 the docsallow-newerpackage.yaml 中的一个选项,它告诉堆栈忽略 cabal 文件中指定的依赖版本的界限。尽管默认情况下应该禁用它,但在构建时我收到以下奇怪的错误消息:

WARNING: Ignoring <Project name>'s bounds on Persistence (>2.0); using Persistence-2.0.
Reason: allow-newer enabled.
WARNING: Ignoring <Project name>'s bounds on binary (>0.8.6.0); using binary-0.8.6.0.
Reason: allow-newer enabled.

为了解决这个问题,我将 allow-newer: false 添加到 package.yaml,但这只会导致

/path/to/project/package.yaml: Ignoring unrecognized field $.allow-newer

以及上面提到的其他错误消息。

这里可能出了什么问题?我正在使用 stack 版本 2.1.3.

stack.yaml(省略注释):

resolver: lts-14.0

packages:
- .

extra-deps:
- Persistence-2.0@sha256:997664d1805105f10202b6148cb3cfd57fa1e298be5b21e9fa97108bfb8f7918,2093

您 link 的文档是 stack.yaml 的选项列表,而不是 package.yaml (它实际上不是堆栈的一部分,而是另一个名为 hpack 的工具的一部分)。如果 allow-newer 不在您的 stack.yaml 中,它可以隐藏的另一个地方是 $HOME/.stack/config.yaml.