我想为我的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包中包含与测试相关的文件,或者是否应该删除它们(如果可以-如何删除)?
发布于 2021-02-08 23:47:24
如果您尝试生成一个仅限库的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作为一个包候选人,并仔细检查您的测试没有显示出来。
https://stackoverflow.com/questions/66091239
复制相似问题