与其他程序员共享Haskell库的标准方法是创建一个Cabal包并将其上传到http://hackage.haskell.org。我写了一个我想分享的图书馆,并且
我已经使用在线指南成功创建了一个Cabal包来创建cabal文件。我已经构建了包并在本地安装 - 工作正常。现在我想将它上传到Hackage。但是cabal upload
想要一个.tar.gz文件。有一些 reams 的Cabal文档,我找不到应该进入这个.tar.gz或者我应该如何创建它。
谁知道,或者知道我在哪里可以找到,如何创建一个能够与cabal upload
一起正常工作的.tar.gz?
答案 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:
您可以使用
检查有效的tarballcabal check
运行Hackage将运行的相同测试。