使用composer
时更改版本号的正确方法是什么?考虑当前的场景:
您有master
和develop
分支,您的版本是1.0.0
。出现了一个严重的错误,你必须创建一个hotfix-1.0.1
分支(从master)来修复它,并合并回master
和develop
。一旦你要合并,你更新"version":"1.0.1"
在composer.json
。
现在什么?在我的情况下,我运行composer update
和几个依赖项更新(这不是我运行它的原因,我只是认为每次编写时都必须运行它)。当合并分支时,在composer.lock
上结束了1小时的冲突解决。
我是否必须运行composer update
(或任何其他作曲家命令)后更新"version"
或这是不必要的,我可以只是git commit
和git push
?
作曲器中不应该有"version"键。如果您使用的是受支持的版本控制系统(Git、Mercurial或SVN),请使用json文件。您应该创建一个包含您想要发布的版本的标签。
如果您添加的版本号对几个提交有效,Composer应该怎么做?哪个提交是真正包含版本的提交?如果您可以在composer中检查出具有相同版本名称的几个提交。Json,"版本"不清楚。
此外,在这个文件中手动维护正确的版本号是很麻烦的,在正确的时间/提交时增加它,然后可能再次删除它。
因为在vcs中标记一个软件版本并不意味着对任何文件进行编辑,所以不需要自动运行"composer update"。
还要注意,composer update只适用于包的依赖项。如果它在其他地方被使用,锁文件将被完全忽略,只有版本要求在composer中。Json正在被使用。
关于作曲家的冲突。锁:我不手动解决它们。我删除了包含所有内容的文件,然后再次运行"composer update"。这将创建一个新的锁文件,该文件尊重composer.json中的所有当前依赖项。如果允许的话,它可能会更新到较新的版本,但我认为这是可以的。这是一个一分钟的过程-如果在此之后出现问题并且测试失败,则合并可能存在比锁文件中的冲突更多的问题。
在更新自己的版本号时不需要运行composer update
。只在需要更新依赖项时运行:
为了获得最新版本的依赖项并更新
composer.lock
文件,您应该使用update
命令。php composer.phar update
这将解析项目的所有依赖项,并将准确的版本写入
composer.lock
。
我强烈建议明确列出您希望更新的依赖项:
如果你只想更新几个包而不是全部,你可以这样列出它们:
php composer.phar update vendor/package vendor/package2
你也可以使用通配符一次更新一堆包:
php composer.phar update vendor/*