【发布时间】:2022-12-20 23:28:47
【问题描述】:
假设我已经在 haskell 库上工作,现在准备发布该软件的测试版以在 github 等上进行黑客攻击/公开回购。
可能的解决方案以及为什么它们对我不起作用
- 使用
packagename-0.0.0.1-alpha或类似的。
这里的问题很简单:Haskell PVP Specification 不允许:(粗体是我)版本号的组件必须是数字!过去,Cabal 支持在末尾带有字符串标记的版本号,例如1.0-beta 这被证明不能很好地工作,因为标签的顺序没有很好地定义。版本标签不再受支持并且大多被忽略, 然而有些工具会失败在某些情况下,如果他们遇到他们。
- 只需使用
packagename-0.*直到它超出 alpha/beta(然后使用packagename-1.*)。
这里的问题是双重的:- 此方法不适用于描述发布候选人这是发布版本 1。
- 来自其他生态系统的程序员,例如 rust,在
0.*中有一个稳定的库是很常见的,可能会错误地认为这个库是稳定的。 (当然,它可以通过 README 中的警告在某种程度上得到缓解,但我仍然更喜欢更好的解决方案。)
那么,什么是最好(和 haskell 中最传统的)方式来指示库版本处于开发的 alpha/beta 阶段还是候选发布?
- 只需使用
【问题讨论】:
标签: haskell versioning hackage