7

我几乎准备好将我的第一个包上传到 Hackage!

我有这个hstest.cabal

Executable hstest
        Main-Is:        hstest.hs
        Build-Depends:  base, mtl, directory, ghc, ghc-paths, random, QuickCheck

我知道简单地列出我的包所依赖的包是一种不好的形式;相反,我应该说明需要这些软件包的哪些版本。

我安装的版本是

  • 基数 = 4.1.0.0
  • mtl = 1.1.0.2
  • 目录 = 1.0.0.3
  • ghc = 6.10.3
  • ghc 路径 = 0.1.0.5
  • 随机 = 1.0.0.1
  • 快速检查 = 1.2.0.0

有没有一种简单的方法可以找出我的包实际需要的每个包的最早可接受版本?(即没有安装大量过时的版本并一一测试?)

我可以假设我的包可以依赖这些包的哪些未来版本?

4

1 回答 1

5

有没有一种简单的方法可以找出我的包实际需要的每个包的最早可接受版本

不,没有工具可以做到这一点。

我可以假设我的包可以依赖这些包的哪些未来版本?

最安全的方法是遵循包版本控制政策,它说只依赖于 API 扩展版本的包。那是形式的版本:A.B.*. 正如政策所述:

为了在发布新包版本时尽量减少损坏,您可以使用对小版本更改不敏感的依赖项(例如 foo >= 1.2.1 && < 1.3)。

所以你会做这样的事情:

 QuickCheck >= 1.2 && < 1.3

现在,测试可能会揭示您实际使用的功能的下限或上限。

于 2010-05-15T22:36:55.580 回答