主要观点:作者喜欢SemVer但希望它能更好地支持“滚动弃用”这一重要用例,提出了一种新的版本控制方案来解决此问题。
关键信息:
- “滚动弃用”:先在一个版本中弃用 API,再在后续版本中删除,给用户迁移时间。
- 现有 SemVer 示例:从
v1.0.0
开始,v1.1.0
增加功能,v1.2.0
添加额外功能,v2.0.0
为破坏性变更。 - 存在问题:SemVer 每次重大发布都是“标志日”,用户可能在不同版本间迁移时遇到兼容性问题,依赖不同版本的库可能导致版本冲突。
- 新的版本控制方案:用点号数字表示,有“基础”版本和“最佳”版本,每次发布更新“最佳”版本,API 有破坏性变更时将“基础”版本设为首次标记弃用时的“最佳”版本,软件不使用弃用 API 且版本号满足一定条件则兼容。
- 与 SemVer 的兼容性:此方案与 SemVer 向后兼容,但会鼓励更频繁的“重大”发布。
- 模式:包括“最后 N 个版本兼容性”(“基础”版本落后“最佳”版本固定数量)和“无兼容性”(“基础”和“最佳”版本始终相同)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。