如何表明Haskell包处于alpha/beta/候选发布阶段?



假设我已经开发了一个haskell库,现在准备发布该软件的测试版,以便在github等平台上hackage/make repo public。

可能的解决方案和为什么它们不适合我
  1. 使用packagename-0.0.0.1-alpha或类似。
    这里的问题很简单:Haskell PVP规范不允许它:(粗体是我)

版本号的组成部分必须是数字! 历史上Cabal支持的版本号末尾有字符串标记,例如1.0-beta。事实证明,这并不能很好地工作,因为标签的顺序没有很好地定义。版本标记不再被支持,大部分被忽略,但是有些工具会失败在某些情况下,如果他们遇到他们。

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

那么,指示库版本处于alpha/beta开发阶段或发布候选版本的最佳(也是haskell中最常规的)方法是什么呢?

据我所知,没有一个包范围的方式来说明这一点。但是,您可以在每个模块的文档中添加描述模块稳定性的模块描述。

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

最新更新