堆栈 1.5.1 的自定义快照
Custom snapshots with stack 1.5.1
我从 stack-1.4.0
升级到 stack-1.5.1
,突然它开始拒绝我的 stack.yaml
自定义快照。这是 stack.yaml
:
的开头
resolver:
name: integer-simple-snapshot
location: deps/flaw/integer-simple-snapshot.yaml
...
因此它使用位于子目录中的自定义快照文件,其中包含以下解析器:
resolver: lts-9.0
现在,当我尝试构建任何东西时,堆栈会打印以下内容:
Could not parse '<path to project>/stack.yaml':
Aeson exception:
Error in $.resolver: failed to parse field 'resolver': expected ResolverWith (), encountered Object
See http://docs.haskellstack.org/en/stable/yaml_configuration/
我尝试使用非对象解析器,如 resolver: "deps/flaw/integer-simple-snapshot.yaml"
和其他对象和非对象变体,但我所能得到的只是关于错误格式的各种神秘错误。
我在 http://docs.haskellstack.org/en/stable/yaml_configuration/, and the page https://docs.haskellstack.org/en/stable/custom_snapshot/ 处看到解析器的格式没有任何变化,仍然包含自定义快照的示例。我还查看了更新日志,但没有发现任何与快照或解析器格式相关的内容。
在堆栈升级之前,使用这些文件可以完美地构建项目。发生了什么变化?我现在如何使用自定义快照?
如果重要的话,我使用标准 stack
包中的 Arch Linux 和 stack-1.5.1。
可扩展快照功能一直是一项实验性功能,但我认为它正在稳定下来。请参阅此博客 post 了解更改 - https://www.fpcomplete.com/blog/2017/07/stacks-new-extensible-snapshots
编辑:实际上,该博客post 中的更改尚未发布。 arch 是否有可能发布 stack 的 master 版本?那会很有趣.. "stack --version" 说什么?
虽然没有明确提及,但我认为它放弃了对解析器使用对象,因为 "name" 字段不是很有用。所以现在只是
resolver: deps/flaw/integer-simple-snapshot.yaml
将来,当它们依赖于新功能时,我们可能应该尝试在配置中要求 "require-stack-version: ..."。为了让用户更清楚,添加
可能会有所帮助
require-stack-version: ">= 1.5"
到您的配置
我从 stack-1.4.0
升级到 stack-1.5.1
,突然它开始拒绝我的 stack.yaml
自定义快照。这是 stack.yaml
:
resolver:
name: integer-simple-snapshot
location: deps/flaw/integer-simple-snapshot.yaml
...
因此它使用位于子目录中的自定义快照文件,其中包含以下解析器:
resolver: lts-9.0
现在,当我尝试构建任何东西时,堆栈会打印以下内容:
Could not parse '<path to project>/stack.yaml':
Aeson exception:
Error in $.resolver: failed to parse field 'resolver': expected ResolverWith (), encountered Object
See http://docs.haskellstack.org/en/stable/yaml_configuration/
我尝试使用非对象解析器,如 resolver: "deps/flaw/integer-simple-snapshot.yaml"
和其他对象和非对象变体,但我所能得到的只是关于错误格式的各种神秘错误。
我在 http://docs.haskellstack.org/en/stable/yaml_configuration/, and the page https://docs.haskellstack.org/en/stable/custom_snapshot/ 处看到解析器的格式没有任何变化,仍然包含自定义快照的示例。我还查看了更新日志,但没有发现任何与快照或解析器格式相关的内容。
在堆栈升级之前,使用这些文件可以完美地构建项目。发生了什么变化?我现在如何使用自定义快照?
如果重要的话,我使用标准 stack
包中的 Arch Linux 和 stack-1.5.1。
可扩展快照功能一直是一项实验性功能,但我认为它正在稳定下来。请参阅此博客 post 了解更改 - https://www.fpcomplete.com/blog/2017/07/stacks-new-extensible-snapshots
编辑:实际上,该博客post 中的更改尚未发布。 arch 是否有可能发布 stack 的 master 版本?那会很有趣.. "stack --version" 说什么?
虽然没有明确提及,但我认为它放弃了对解析器使用对象,因为 "name" 字段不是很有用。所以现在只是
resolver: deps/flaw/integer-simple-snapshot.yaml
将来,当它们依赖于新功能时,我们可能应该尝试在配置中要求 "require-stack-version: ..."。为了让用户更清楚,添加
可能会有所帮助
require-stack-version: ">= 1.5"
到您的配置