主要观点:作者倾向于使用零主版本号(如 v0.x.x)进行开源工作,认为零主版本号并不意味着软件未准备好用于生产,且介绍了版本号的作用、语义版本控制(Semantic Versioning)的规则、渐进式原则以及提出了纪元语义版本控制(Epoch Semantic Versioning)的方案。
关键信息:
- 零主版本号项目如 UnoCSS(v0.65.3)、Slidev(v0.50.0)等稳定且可用于生产。
- 版本号是代码库的快照,帮助沟通变化,版本控制是库维护者与用户之间的“合同”。
- Semantic Versioning 规则:主版本号在不兼容 API 更改时递增,次版本号在向后兼容的功能添加时递增,补丁版本号在向后兼容的错误修复时递增。
- 渐进式原则允许用户逐步采用变化,减少升级风险。
- 作者滥用 SemVer 中零主版本号时每次次版本号递增都视为破坏,将零主版本号的次版本号和补丁号合并(ZERO.MAJOR.{MINOR + PATCH})。
- 提出纪元语义版本控制方案,在 Semantic Versioning 基础上扩展,用第四位数字表示纪元(EPOCH),格式为{EPOCH * 1000 + MAJOR}.MINOR.PATCH,用于更精细地沟通变化。
重要细节: - 人类对数字的感知在对数尺度上,导致维护者在小版本号变化时犹豫,大版本号变化时觉得影响大。
- 作者计划在其项目中采用纪元语义版本控制,抛弃零主版本号,并希望听取意见和反馈。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。