纪元语义版本控制

主要观点:作者倾向于使用零主版本号(如 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,用于更精细地沟通变化。
    重要细节:
  • 人类对数字的感知在对数尺度上,导致维护者在小版本号变化时犹豫,大版本号变化时觉得影响大。
  • 作者计划在其项目中采用纪元语义版本控制,抛弃零主版本号,并希望听取意见和反馈。
阅读 9
0 条评论