【问题标题】:Semantic Versioning when an update breaks backwards compatibilty with a previous minor version更新破坏与先前次要版本的向后兼容性时的语义版本控制
【发布时间】:2018-09-18 08:00:39
【问题描述】:

如果我在 github 上 fork 一个版本为 v1.0.0 的项目,然后添加一些新功能。它仍然向后兼容,所以如果我正确理解语义版本控制,我会将版本更改为v1.1.0。如果我现在决定要更改新功能的命令行参数,它会变成v1.2.0 还是v2.0.0,因为此更改会破坏v1.1.0 中引入的向后兼容性?

【问题讨论】:

  • 获取tour、阅读How to Askminimal reproducible example。如果您可以Edit 您的问题包含更多细节,这将有所帮助。 “更改新功能的命令行参数”是什么意思?如果您有版本 A 和 B,并且 B 与 A 不兼容,那么您必须为 B 增加 SemVer 三元组的主要版本字段。

标签: version versioning semantic-versioning


【解决方案1】:

如果我现在决定要更改新功能的命令行参数,它会变成 v1.2.0 还是 v2.0.0,因为此更改会破坏 v1.1.0 中引入的向后兼容性?

请阅读the SemVer spec。它非常清楚地解释了要求。

所有重大更改都需要主要版本升级。以前的历史、分支等与问题无关。重要的是,您是否对即将公开的版本进行了重大更改?如果是,则更改 Major,如果否,则仍由您决定该更改是否具有足够的风险来更改 Major,否则更改 Minor 以获得新的向后兼容的功能,并使用 Patch 来获得向后兼容的所有其他内容。

【讨论】:

    猜你喜欢
    • 2020-05-25
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 2018-05-01
    相关资源
    最近更新 更多