微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cabal new-sdist 也包含测试文件

如何解决cabal new-sdist 也包含测试文件

我想为我的 Haskell 项目创建一个 sdist 包。 为简单起见,我们假设以下项目结构:

/ root
  | src
    | MyLib.hs
  | test
    | MyLibTest.hs
  | Changelog.md
  | MyProject.cabal
  | LICENSE

cabal 文件中定义了两个目标

library
  exposed-modules:    MyLib
  hs-source-dirs:     src
  -- ...

test-suite: MyProject-test
  type:               exitcode-stdio-1.0
  hs-source-dirs:     test
  main-is:            MyLibTest.hs
  -- ...

当我执行 cabal new-sdist --list-only 时,我得到以下列表:

./changelog.md
./MyProject.cabal
./LICENSE
./src/MyLib.hs
./test/MyLibTest.hs

我的问题:是否可以在 sdist 包中包含与测试相关的文件,或者我应该删除它们(如果是 - 如何)?

解决方法

好吧,如果您尝试生成仅限库的 sdist,则会出现此错误:

$ cabal new-sdist --list-only <library-name>
cabal: The component library cannot be packaged for distribution on its own.
Only entire packages may be packaged for distribution.

所以我会说建议上传整个内容。

Hackage 确实允许您在发布库之前使用候选包进行预览。我会说 upload your source tarball 作为候选包,并仔细检查您的测试没有出现。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。