【问题标题】:Which versions of packages can my Haskell package depend upon?我的 Haskell 包可以依赖哪些版本的包?
【发布时间】:2010-05-15 22:19:04
【问题描述】:

我已经准备好将我的第一个包上传到 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-paths = 0.1.0.5
  • 随机 = 1.0.0.1
  • 快速检查 = 1.2.0.0

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

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

【问题讨论】:

    标签: haskell cabal


    【解决方案1】:

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

    不,没有工具。

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

    最安全的方法是遵循the package versioning policy,它表示仅依赖于 API 扩展版本的软件包。那是表单的版本:A.B.*。正如政策所述:

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

    所以你会做这样的事情:

     QuickCheck >= 1.2 && < 1.3
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-30
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 2020-01-05
      • 2017-08-06
      • 1970-01-01
      相关资源
      最近更新 更多