在我的项目目录中运行 stack sdist
时, stack.yaml
文件不包含在tarball中(这似乎是be expected) .
因此,当我将tarball上传到hackage时, stack install mypackage
它抱怨我在 stack.yaml
文件中指定的缺少依赖项( extra-deps
) .
$ stack install pandoc-placetable
Run from outside a project, using implicit global project config
Using resolver: lts-5.17 from implicit global project's config file: ~/.stack/global-project/stack.yaml
While constructing the BuildPlan the following exceptions were encountered:
-- Failure when adding dependencies:
spreadsheet: needed (>=0.1.3 && <0.1.4), not present in build plan (latest applicable is 0.1.3.4)
needed for package: pandoc-placetable-0.4
-- While attempting to add dependency,
Could not find package spreadsheet in known packages
Recommended action: try adding the following to your extra-deps in /Users/maurobieg/.stack/global-project/stack.yaml
- spreadsheet-0.1.3.4
或者,如果hackage包具有进一步的hackage依赖性,那么建议使用hackage包 stack
-installable的方法是什么?
Update :我刚刚将 extra-source-files: stack.yaml
添加到cabal文件中, stack.yaml
确实包含在新发布版本的tarbal中 . 尽管如此, stack install pandoc-placetable-0.4.1
仍然会出现同样的错误 .
我也可以告诉那些不想在他们的系统上安装 cabal-install
的人从GitHub克隆,然后使用 stack
进行构建 . 这是小包裹的推荐方法吗?或者我应该要求他们将 pandoc-placetable
(即 spreadsheet
)的依赖性纳入其全球 stack.yaml
?闻起来污染全局文件......
1 回答
正如@mgsloan在上面的评论中提到的那样:有一个开放的stack issue about using stack.yaml from hackage package .
我想直到's fixed I' ll告诉人们从GitHub(或者@MichaelSnoyman提到
stack unpack
)然后cd
克隆到新创建的目录和stack install
那里 .