【问题标题】:How do indicate that a Haskell package is in either an alpha/beta/release candidate stage?如何指示 Haskell 包处于 alpha/beta/release candidate 阶段?
【发布时间】:2022-12-20 23:28:47
【问题描述】:

假设我已经在 haskell 库上工作,现在准备发布该软件的测试版以在 github 等上进行黑客攻击/公开回购。

可能的解决方案以及为什么它们对我不起作用
  1. 使用packagename-0.0.0.1-alpha 或类似的。
    这里的问题很简单:Haskell PVP Specification 不允许:(粗体是我)

    版本号的组件必须是数字!过去,Cabal 支持在末尾带有字符串标记的版本号,例如1.0-beta 这被证明不能很好地工作,因为标签的顺序没有很好地定义。版本标签不再受支持并且大多被忽略, 然而有些工具会失败在某些情况下,如果他们遇到他们。

    1. 只需使用 packagename-0.* 直到它超出 alpha/beta(然后使用 packagename-1.*)。
      这里的问题是双重的:
      1. 此方法不适用于描述发布候选人这是发布版本 1。
      2. 来自其他生态系统的程序员,例如 rust,在 0.* 中有一个稳定的库是很常见的,可能会错误地认为这个库是稳定的。 (当然,它可以通过 README 中的警告在某种程度上得到缓解,但我仍然更喜欢更好的解决方案。)

      那么,什么是最好(和 haskell 中最传统的)方式来指示库版本处于开发的 alpha/beta 阶段还是候选发布?

【问题讨论】:

    标签: haskell versioning hackage


    【解决方案1】:

    据我所知,没有一个包范围的方式来表达这一点。但是,您可以将描述模块稳定性的 a module description 添加到每个模块的文档中。

    {-|
    Stability: experimental
    -}
    module PackageName.ModuleName where
    

    【讨论】:

      猜你喜欢
      • 2018-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      • 2021-02-16
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多