我们有许多自定义和第三方库的复合项目。 我们正在寻找一种方法来更新大部分子项目与作曲家更新.. 但为了安全起见,我们需要将所有子依赖项锁定到当前安装的版本。
我对标记版本没有任何问题,但“dev-master”给我带来了麻烦
可以锁定依赖项“some / fu”:“dev-master”
(当前版本为0.1)保持原样,永不更新为0.2?
答案 0 :(得分:2)
问题是dev-master
是移动目标。因此dev-master
的含义可以随时改变。
让我们说它代表了最新的1.0开发版本。在某些时候,所述库的作者开始处理1.1
版本,因此他们分支1.0
分支,dev-master
自动成为最新的1.1
开发版本。< / p>
从技术上讲,dev-master
没有 版本的版本,它代表了主分支的最新开发状态。
如果您可以控制要求的源存储库,则可以使用branch alias。
或者,您只能更新composer update vendor/package1 vendor/package2
等特定软件包,或缩短特定供应商composer update vendor/*
,而不是完整composer update
。据我所知,目前还不可能从更新中排除特定的包。
答案 1 :(得分:0)
除了@Peh回答:
是的,使用dev-master
是一种不好的做法。但如果真的有必要,你可以选择某个提交"symfony/finder": "dev-master#2633721877cae79ad461f3ca06f3f77fb4fce02e"
什么情况会导致master
分支出现问题?你想什么时候执行composer update
?