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

hackage包依赖关系和未来证明库

  •  6
  • yairchu  · 技术社区  · 15 年前

    Build-Depends: base >= 3 && < 5, transformers >= 0.2.0
    

    我应该这样做吗

    Build-Depends: base >= 3 && < 5, transformers >= 0.2.0 && < 0.3.0
    

    我将使用一个真实的例子:我的Hackage“List”包(List monad transformer和class)

    • 如果我不设限制-我的包裹可能会被“变形金刚”的改变打破
    • 如果我设置了限制-使用“变形金刚”但使用更新版本的用户将无法使用 lift liftIO 具有 ListT 因为它只是这些变形金刚类的一个实例-0.2.x

    我想应用程序应该总是设置上限,这样它们就永远不会被打破,所以这个问题只与库有关:

    我是否应该对依赖项使用版本上限?

    3 回复  |  直到 15 年前
        1
  •  4
  •   yairchu    15 年前

    有一个明确的 policy

    简而言之,上限应该是 < A.(B+1) 其中A和B是当前版本的第一个元素( A.B.C... A.B 应该意味着这个版本打破了旧的api。

        2
  •  2
  •   Norman Ramsey    15 年前

    想想失效模式:

    • 使用上限,要么包生成,要么阴谋集团抱怨生成依赖关系不满意。责任是明确的。

    放入上限。

        3
  •  1
  •   svenningsson ahmed mohamady    15 年前

    IMO对接受的版本号设置上限是正确的做法。鉴于Hackage使用的版本号的语义,当然不能保证您的包能与transformers 0.3.0一起工作。