7

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

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

4

2 回答 2

12

维基

由于代码是 cabalized,我们可以直接使用 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 文件以包含所有内容。

于 2010-04-06T20:07:37.517 回答
4

或者,如果您使用的是 darcs,

darcs dist

请注意,cabal sdist只会获取文件中列出的.cabal文件,因此您可能需要在下添加 README 等extra-source-files:

你可以检查你有一个有效的压缩包

cabal check

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

于 2010-04-06T20:53:04.567 回答