packagist会把github下项目的分支和tag信息都会同步过来当做版本来处理,但区别在于分支被当做了开发版本来对待,版本号由dev-
加上分支名
组成,如下图:dev开头的都是分支,其他都是tag.
对于一个新开发的扩展包,如果只有主分支信息,那通过composer安装此扩展包,如果没有指定版本信息,那就会默认安装最新版本,这时如果你的minimum-stability
是stable
(默认为 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
。