我got an issue report recently that my package's HSpec file was missing from the hackage tarfile,这对我来说似乎很奇怪。
我检查了一下,用户是对的:
% curl -O http://hackage.haskell.org/packages/archive/ReadArgs/1.2/ReadArgs-1.2.tar.gz
% tar tzf ReadArgs-1.2.tar.gz
ReadArgs-1.2/
ReadArgs-1.2/LICENSE
ReadArgs-1.2/ReadArgs.cabal
ReadArgs-1.2/ReadArgs.hs
ReadArgs-1.2/ReadArgsEx.hs
ReadArgs-1.2/Setup.hs
但是,通过我的git repos中的所有提交,似乎cabal sdist
始终在包中包含ReadArgsSpec.hs
。
% cabal configure
Resolving dependencies...
Configuring ReadArgs-1.2...
% cabal sdist
Building source dist for ReadArgs-1.2...
Preprocessing library ReadArgs-1.2...
Preprocessing executable 'ReadArgsEx' for ReadArgs-1.2...
Source tarball created: dist/ReadArgs-1.2.tar.gz
% tar tzf dist/ReadArgs-1.2.tar.gz
ReadArgs-1.2/
ReadArgs-1.2/LICENSE
ReadArgs-1.2/ReadArgs.cabal
ReadArgs-1.2/ReadArgs.hs
ReadArgs-1.2/ReadArgsEx.hs
ReadArgs-1.2/ReadArgsSpec.hs
ReadArgs-1.2/Setup.hs
现在,我可以想到三种可能性:
cabal sdist
之外的其他内容生成了我上传到hackage的tar文件,该过程遗漏了ReadArgsSpec.hs
。ReadArgs.cabal
之前更改了cabal sdist
文件,以便排除ReadArgsSpec.hs
但未能提交更改。ReadArgsSpec.hs
。我尽可能地查看(1)和(2),但不太可能,特别是因为我的软件包的早期两个版本似乎有相同的问题,我不能认为我执行了相同的奇怪行为时间。
这让我(3),这似乎只是相反。 Hackage是否从我上传的tarfile中删除了ReadArgsSpec.hs
?如果是这样,我应该如何改变my ReadArgs.cabal
file以确保它被包括在内?