如何管理composer扩展包的版本号

1,482 阅读1分钟

packagist会把github下项目的分支和tag信息都会同步过来当做版本来处理,但区别在于分支被当做了开发版本来对待,版本号由dev-加上分支名组成,如下图:dev开头的都是分支,其他都是tag.

对于一个新开发的扩展包,如果只有主分支信息,那通过composer安装此扩展包,如果没有指定版本信息,那就会默认安装最新版本,这时如果你的minimum-stabilitystable(默认为 stable),那就会提示你依赖的包是一个开发版本,无法安装,除非你指定了版本号,比如这样:

composer require moyanshe/weather:dev-master

或者在composer.json中将minimum-stability改为dev,这时dev-master就会被安装。

除此之外,最科学的办法就是通过打tag的方式发布stable版本,并且tag名字要以v开头才行,如下:

git tag -a v1.0.0 -m 'stable'
git push origin v1.0.0

这时,扩展包的最新稳定版本就是1.0.0,现在不管minimum-stability怎么设置,都可以通过composer require moyanshe/weather正常安装了,区别在于stable模式下,安装的是1.0.0,dev模式下,安装的是dev-master