我的composer.json
{
"name": "foo/boo",
"description": "bar",
"type": "project",
"require": {
"php": ">=7.2.0",
"yiisoft/yii2": "~2.0.15",
"bar/foo": "^0.1.0"
},
"config": {
"process-timeout": 1800,
"fxp-asset": {
"enabled": false
}
},
"repositories": [
{
"type": "composer",
"url": "https://asset-packagist.org"
},
{
"type": "git",
"url": "ssh://deployer@gerrit.foo.pl:29418/bar"
}
]
}
Caret Version Range的Composer文档说,我对bar/foo
软件包的版本请求应类似于:> = 0.1.0和<1.0.0。
但是在composer update
之后,我得到了0.1.0版本。
我的bar / foo软件包具有标签:
$ cd /vendor/my-bar-foo-package
$ git tag --list
v0.1.0
v0.2.0
v0.2.1
v0.2.2
偶然机会向`“ bar / foo”请求版本:“ 0.2.2”作曲者更新拉动v0.2.2,为什么“ ^ 0.1.0”没有?
答案 0 :(得分:2)
Caret Version Range的Composer文档说,我对bar / foo软件包的版本请求应类似于:> = 0.1.0和<1.0.0。
不,不是:
对于1.0之前的版本,它也出于安全考虑,将
^0.3
视为>=0.3.0 <0.4.0
https://getcomposer.org/doc/articles/versions.md#caret-version-range-
因此它按预期方式工作-^0.1.0
等效于>=0.1.0 <0.2.0
,而0.2.2
发行版与此约束不匹配。