语义化版本

本文同步自我的个人博客:http://www.52cik.com/2015/12/05/semver.html

之前就觉得为什么 github 上的大部分东西都是 1.0.1、1.11.1 甚至 0.11.1 这种奇葩的版本。为什么 jQuery 1.9.9 之后不是 2.0.0 而是 1.10.0。而且在 npm init 的时候不能输入 1 或 1.0 这样的版本,就算你手动修改了 package.json 里的版本之后,就无法安装其他模块,报 Invalid version: "1.0" 无效版本错误。

相信这些问题不仅仅只有我疑问过吧。今天学习 node 模块源码的时候,翻到了个 semver 模块,看到了对于版本的处理,然后找到了《语义化版本 2.0.0》官方文档。

语义化版本

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

  1. 主版本号:当你做了不兼容的 API 修改,
  2. 次版本号:当你做了向下兼容的功能性新增,
  3. 修订号:当你做了向下兼容的问题修正。

先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

这些都来至官方解释,详情就直接阅读《语义化版本 2.0.0》官方文档吧。文档里说有详细介绍了 SemVer 的规范,以及为什么这样做,什么情况用什么版本,还有常见的疑问,甚至你可以到GitHub 上提出您的问题

都大一统吧

我之前一直都是 1.0,1.1,这样命名的,npm 下没办法才用 1.0.0。现在知道为什么了,突然感觉我之前好蠢。 如果大家都遵循这个规范后,看一眼就知道这次更新大概是做了什么调整了,是加了新东西,还是修复bug,还是完全不兼容的重构。用户就知道这次的东西是能直接升级的,还是需要修改自己的代码才能升级的。

希望和我一样不知道的朋友,赶紧都规范起来吧。

posted @   楼教主  阅读(781)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
js output×
点击右上角即可分享
微信分享提示