stable适合生产,RC候选版用于最终测试,beta供试用反馈,alpha为早期开发,dev指向开发分支;通过版本约束和minimum-stability控制依赖稳定性。

选择 composer 的稳定性标签时,核心是根据项目所处的开发阶段和发布成熟度来决定。这些标签不仅影响依赖安装行为,也向使用者传递版本可信度信号。
stable(稳定版)
代码经过充分测试,API 稳定,适合生产环境使用。如果你的包已经完成主要功能开发,通过了回归测试,并有明确的版本号(如 v1.0.0),就应标记为 stable。此时不需要额外指定 stability 标签,Composer 默认接受稳定版本。
RC(Release Candidate,发布候选版)
功能已完成,进入最终验证阶段。可能存在极少数未发现的 bug,但已接近稳定。适用于希望用户试用并反馈问题的阶段。版本格式通常为 1.0.0-rc.1。这类版本需在 composer.JSon 中显式允许才能安装,除非项目配置允许非稳定依赖。
beta(测试版)
主要功能可用,但可能还存在设计调整或较大 bug。适合早期用户和技术尝鲜者。版本号形如 1.0.0-beta.1。表明尚未准备好用于生产环境,文档可能不完整,API 仍会变动。
alpha(预览版)
早期开发阶段,功能不完整,内部接口频繁变更。仅建议开发者或贡献者使用。版本格式为 1.0.0-alpha.1。可能出现严重问题,不适合集成到正式项目中。
dev(开发分支)
指向开发中的分支(如 dev-main 或 dev-develop),内容随时变化。常用于持续集成或临时测试某个特性。可通过 dev-main#commit-hash 锁定特定提交。使用时需谨慎,因无版本保障,容易导致依赖不稳定。
在 require 依赖时,若需要非稳定版本,可在版本约束中加入稳定性限定:
"package/name": "^2.0@beta""package/name": "@alpha""package/name": "dev-feature-branch as 2.1.0"
同时可在 config 中设置默认稳定性:
{ "minimum-stability": "beta", "prefer-stable": true }
minimum-stability 定义项目整体可接受的最低级别,prefer-stable 表示若有稳定版本则优先使用。
基本上就这些。选对标签,既能保护使用者,也能推动生态健康发展。


