【问题标题】:cabal new-sdist includes test files as wellcabal new-sdist 也包含测试文件
【发布时间】:2021-02-07 17:55:44
【问题描述】:

我想为我的 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 包中包含与测试相关的文件,或者我应该删除它们(如果是 - 如何)?

【问题讨论】:

    标签: haskell cabal sdist


    【解决方案1】:

    如果你尝试生成一个仅限库的 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 作为一个包候选人,并仔细检查你的测试没有出现。

    【讨论】:

    • 好点,谢谢。我会在今天晚些时候试一试。
    猜你喜欢
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 2016-09-21
    相关资源
    最近更新 更多