2010-05-15 72 views
7

我几乎准备好将我的第一个包上传到Hackage!我的Haskell包依赖于哪些版本的包?

我有这个在我的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
  • random = 1.0.0.1
  • QuickCheck = 1.2.0.0

是否有一种简单的方法来找出我的软件包实际需要的每个包的最早可接受版本? (即不安装大量过时的版本并逐个测试它们)

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

回答

5

有没有发现什么这些包的早期版本接受我的包却需要

没有,有这个问题并没有工具的简单方法。

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

最安全的方法是遵循the package versioning policy,它说只依赖API扩展包的版本。这是表格的版本:A.B.*。由于政策规定:

要在新包版本发布减少破损,可以使用不敏感,以小版本的变化依赖(例如FOO> = 1.2.1 & & < 1.3)。

所以,你会做这样的事情:

QuickCheck >= 1.2 && < 1.3 

现在,测试可能揭示了什么功能,你实际使用更低或更高的边界。

相关问题