我应该使用堆栈构建并上传到 Hackage 吗?

Should I use stack to build and upload to Hackage?

随着时间的推移,我开发了一个混乱的系统级别 Haskell 安装,我正在 not sure how to completely clean up. But for the most part this isn't of much concern as I simply use stack 管理每个项目的 Haskell 配置。然而,由于我的项目要求与我的系统 Haskell 设置不同,我想知道为 Hackage 构建和上传包的最佳方法是什么。

具体来说 (1) 我应该使用

stack exec -- cabal sdist
stack exec -- cabal upload

而不是简单地

cabal sdist
cabal upload

和 (2) 是否应该有任何理由安装 cabal 的项目版本(使用 stack build cabal?)

或者是否有一些更好的基于堆栈的方法来构建和分发到 Hackage,而不涉及直接调用 cabal

根据我之前的评论添加一个答案。


stack 通过其

提供等效功能
  • stack sdist
  • stack upload

命令,不需要在基于堆栈的项目中直接与 cabal 交互。

堆栈支持的命令的完整列表可以通过以下方式获得:

$ stack --help

official documentation.

个别命令也支持--help看他们支持什么命令行标志