语义化版本https://semver.org/lang/zh-CN/
了解版本号分类
版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
主版本号:当你做了不兼容的 API 修改,
次版本号:当你做了向下兼容的功能性新增,
修订号:当你做了向下兼容的问题修正。
先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。 先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
~表示版本号只能改变最末尾那段(如果是 ~x.y 末尾就是 y,如果是 ~x.y.z 末尾就是 z)
~1.2.3 代表 1.2.3 <= 版本号 < 1.3.0
~1.2 代表 1.2 <= 版本号 <2.0
^表示除了大版本号以外,小版本号和补丁版本号都可以变
^1.2.3 代表 1.2.3 <= 版本号 < 2.0.0
特殊情况0开头的版本号:
^0.3.0 等于 0.3.0 <= 版本号 <0.4.0 注意:不是 <1.0.0
因为:semantic versioning 的规定是,大版本号以 0 开头表示这是一个非稳定版本(unstable),
如果处于非稳定状态,小版本号是允许不向下兼容的,
所以如果你要指定 0 开头的库那一定要注意:
危险写法:~0.1 等于 0.1.0 <= 版本号 <1.0.0
保险写法:^0.1 等于 0.1.0 <= 版本号 <0.2.0
~表示版本号只能改变最末尾那段(如果是 ~x.y 末尾就是 y,如果是 ~x.y.z 末尾就是 z)~1.2.3 代表 1.2.3 <= 版本号 < 1.3.0
~1.2 代表 1.2 <= 版本号 <2.0
^表示除了大版本号以外,小版本号和补丁版本号都可以变
^1.2.3 代表 1.2.3 <= 版本号 < 2.0.0
特殊情况0开头的版本号:
^0.3.0 等于 0.3.0 <= 版本号 <0.4.0 注意:不是 <1.0.0
因为:semantic versioning 的规定是,大版本号以 0 开头表示这是一个非稳定版本(unstable),
如果处于非稳定状态,小版本号是允许不向下兼容的,
所以如果你要指定 0 开头的库那一定要注意:
危险写法:~0.1 等于 0.1.0 <= 版本号 <1.0.0
保险写法:^0.1 等于 0.1.0 <= 版本号 <0.2.0
所以用这个说法来理解composer.json里面版本的控制
总结:
^ : 锁住头部 (遇到 0,当作不存在,往后锁)<br /> ~ : 改变尾部
[其他的说法]
https://blog.csdn.net/SakuraLLj/article/details/77931672
在这里插入图片描述在这里插入图片描述
https://learnku.com/docs/composer/2018/versions/2098#3ae463
————————————————
版权声明:本文为CSDN博主「白菜喵」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/eebaicai/article/details/88047833