Composer php 路径回购提供比VCS回购更新的版本

Composer php 路径回购提供比VCS回购更新的版本,composer-php,Composer Php,有一段时间,我们将本地包部署到一个特定的文件夹packages.stable,并将其添加为路径repo。出于测试目的,每个开发人员都有一个该机器的副本,并有一个额外的类似文件夹软件包。我的是个人版本(例如新功能)。根据开发人员的不同,文件夹packages.mine与packages.stable相比有更新或更旧的版本,并且缺少一些包。由于它是一个本地repo,所以我们在所有composer.json文件中都有版本属性 这允许composer请求my/package1:@dev,而compose

有一段时间,我们将本地包部署到一个特定的文件夹
packages.stable
,并将其添加为路径repo。出于测试目的,每个开发人员都有一个该机器的副本,并有一个额外的类似文件夹
软件包。我的
是个人版本(例如新功能)。根据开发人员的不同,文件夹
packages.mine
packages.stable
相比有更新或更旧的版本,并且缺少一些包。由于它是一个本地repo,所以我们在所有composer.json文件中都有版本属性

这允许
composer请求my/package1:@dev
,而composer选择了最佳的替代方案,如果我的包旧了或丢失了,那么它是稳定的;如果包更新了,那么它是我的。这样,开发人员就不需要关心所有的包了

现在我们想将稳定的文件夹包移动到多个VCS。突然,覆盖不再工作,因为
composer up
总是忽略本地路径repo
包。我的
从VCS获取“最新提交”


如果stable是一家风险投资公司,是否有办法实现前一种情况?或者说,某些不可预测的行为与本地路径回购协议有关,而这些回购协议只是偶然发生的吗?

如果使用不同的预发行后缀,这确实没有问题
-dev
是一个特殊的保留后缀,
dev master
始终指向某个提交,然后将其设置为
-dev
(dev master可能指向分支,但仍然如此)。这就是为什么
-dev123
不是有效的composer版本,也是有效的semver的原因。因此,避免
-dev
意味着忽略最新的提交
dev master

如果“本地”代码使用的保留后缀不是
-dev
,则它可以工作,例如
-alpha
。这允许本地代码也具有编号后缀,如
-alpha123
。添加
composer req my/package1:@alpha
将创建所需的状态,其中本地路径repo优先于任何VCS版本