【问题标题】:How do I create a suitable .tar.gz file for use with `cabal upload`?如何创建合适的 .tar.gz 文件以用于“cabal upload”?
【发布时间】:2010-04-06 19:23:24
【问题描述】:

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

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

【问题讨论】:

  • 投票结束?这是so主题...
  • @Thomas:你是不是在对一个拥有 3 倍声望的海报刻薄?严重地?! :-P 已经向你的长辈鞠躬了! :-P
  • 我是认真的。这绝对是一个与编程相关的问题,我很惊讶地看到有人投票将其作为离题关闭。另外,我鞠躬。

标签: haskell cabal haskell-platform hackage


【解决方案1】:

来自the wiki

由于代码是 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 文件以包含所有内容。

【讨论】:

  • 完美!谢谢。特别是对于 extra-source-files 标签!
【解决方案2】:

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

darcs dist

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

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

cabal check

它运行与 Hackage 相同的测试。

【讨论】:

  • 说,你怎么还没问?
  • 他是唐斯。他什么都知道。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
  • 2016-01-08
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
相关资源
最近更新 更多