2

最近收到一个问题报告,说我的包的 HSpec 文件从 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

所以现在,我能想到三种可能性:

  1. 我使用其他东西生成了我上传到 hackage 的 tar 文件cabal sdist,而该过程被忽略了ReadArgsSpec.hs
  2. 我在以排除但未能提交更改的方式运行之前更改了我的ReadArgs.cabal文件。cabal sdistReadArgsSpec.hs
  3. ReadArgsSpec.hs从包文件中删除了黑客攻击。

我认为 (1) 和 (2) 是可能的,但不太可能,特别是因为我的包的前两个版本似乎有相同的问题,而且我不能认为我每次都执行相同的奇怪行为。

这给我留下了(3),这似乎只是对比。Hackage 会ReadArgsSpec.hs从我上传的 tar 文件中删除吗?如果是这样,我应该如何更改我的ReadArgs.cabal文件以确保它被包含在内?

4

0 回答 0