Composer php 禁用对开发人员主依赖项的更新

Composer php 禁用对开发人员主依赖项的更新,composer-php,Composer Php,我们有许多自定义和第三方库的复合项目。 我们正在寻找一种使用composer update更新大部分子项目的方法。。 但为了安全起见,我们需要将所有子依赖项锁定到当前安装的版本 我对标记的版本没有问题,但“dev master”给我带来了麻烦 可以锁定依赖项吗?“某些/fu”:“开发主机” (当前版本为0.1)保持原样,并且从不更新到0.2 问题在于dev master是一个移动目标。因此,dev master的含义可以随时更改 假设它代表了最新的1.0开发版本。在某个时刻,上述库的作者开始编写

我们有许多自定义和第三方库的复合项目。 我们正在寻找一种使用composer update更新大部分子项目的方法。。 但为了安全起见,我们需要将所有子依赖项锁定到当前安装的版本

我对标记的版本没有问题,但“dev master”给我带来了麻烦

可以锁定依赖项吗?“某些/fu”:“开发主机”

(当前版本为0.1)保持原样,并且从不更新到0.2

问题在于
dev master
是一个移动目标。因此,
dev master
的含义可以随时更改

假设它代表了最新的1.0开发版本。在某个时刻,上述库的作者开始编写
1.1
版本,因此他们分支出
1.0
分支,
dev master
自动成为最新的
1.1
开发版本

从技术上讲,
dev master
没有版本,它是一个版本,代表了master分支的最新开发状态

如果您可以控制所需的源存储库,则可以使用


或者,您可以只更新特定的软件包,如
composer update vendor/package1 vendor/package2
,或者缩短特定的供应商
composer update vendor/*
而不是完整的
composer update
。据我所知,目前还不可能将特定软件包排除在更新之外。

除了@Peh answer:

是的,使用
dev master
是一种不好的做法。但如果确实有必要,您可以选择某些提交
“symfony/finder”:“dev master#2633721877cae79ad461f3ca06f3f77fb4fce02e”


什么情况会导致
master
分支出现问题?您希望何时执行
编写器更新

嗯,是的,但这会将其固定在某个提交上,并且永远不会更新。另一种方法可以是分叉包(并需要分叉),然后选择您喜欢的提交。因此,您可以完全控制任何更改/更新。是的,我同意您的看法。这是另一种方法,有其利弊。