如何创建一个合适的.tar.gz文件以用于`cabal upload`?

时间:2010-04-06 19:23:25

标签: haskell cabal haskell-platform hackage

与其他程序员共享Haskell库的标准方法是创建一个Cabal包并将其上传到http://hackage.haskell.org。我写了一个我想分享的图书馆,并且 我已经使用在线指南成功创建了一个Cabal包来创建cabal文件。我已经构建了包并在本地安装 - 工作正常。现在我想将它上传到Hackage。但是cabal upload想要一个.tar.gz文件。有一些 reams 的Cabal文档,我找不到应该进入这个.tar.gz或者我应该如何创建它。

谁知道,或者知道我在哪里可以找到,如何创建一个能够与cabal upload一起正常工作的.tar.gz?

2 个答案:

答案 0 :(得分:12)

来自the wiki

由于代码是cabalised,我们可以直接使用cabal-install创建一个tarball(你也可以使用runhaskell Setup.hs sdist,但你的系统需要tar 1):

$ cabal sdist
Building source dist for haq-0.0...
Source tarball created: dist/haq-0.0.tar.gz

这样做的好处是Cabal会进行更多检查,并确保tarball具有HackageDB期望的结构。请注意,它确实需要LICENSE文件存在。它打包了构建项目所需的文件;要包含其他文件(例如上例中的Test.hs和我们的README),我们需要添加:

extra-source-files: Tests.hs README

到.cabal文件中包含所有内容。

答案 1 :(得分:4)

或者如果你正在使用darc,

darcs dist

请注意,cabal sdist只会选择.cabal文件中列出的文件,因此您可能需要在extra-source-files:

下添加自述文件等

您可以使用

检查有效的tarball
cabal check

运行Hackage将运行的相同测试。