代码之家  ›  专栏  ›  技术社区  ›  dave4420

我的haskell包可以依赖哪些版本的包?

  •  7
  • dave4420  · 技术社区  · 16 年前

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

    我有这个在我的 hstest.cabal :

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

    我理解简单地列出我的包所依赖的包是不好的形式;相反,我应该声明需要这些包的哪个版本。

    我安装的版本是

    • BASIC=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

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

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

    1 回复  |  直到 16 年前
        1
  •  5
  •   Don Stewart    16 年前

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

    不,这没有工具。

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

    最安全的方法是跟随 the package versioning policy 这意味着只依赖API扩展包版本。这是表单的版本: A.B.* . 根据政策规定:

    为了在发布新的包版本时最小化破坏,可以使用对次要版本更改不敏感的依赖项(例如foo>=1.2.1<1.3)。

    所以你应该做如下的事情:

     QuickCheck >= 1.2 && < 1.3
    

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