minimum-stability 不是分支稳定性开关,而是版本稳定性过滤闸;它按 dev<alpha<beta<rc<stable 顺序硬性过滤候选版本,dev-main 永远属 dev 级,设为 beta 仅排除 dev/alpha 版本,不改变分支自身稳定性语义。

不能靠 minimum-stability 定义“某个分支的稳定性”,它只控制“哪些稳定性级别的版本能进候选池”——分支本身没有稳定性,是版本标签(如 dev-main、v3.0.0-beta2)携带稳定性语义。
为什么 minimum-stability 不是分支稳定性开关
很多人误以为设了 "minimum-stability": "beta" 就能让 dev-main 变成 beta 级别。其实不是:dev-main 永远是 dev 级,v2.1.0-alpha3 永远是 alpha 级。Composer 按预定义顺序判断:dev beta,只是把 dev 和 alpha 版本直接过滤掉,不给它们参与解析的机会。
-
dev-main、dev-develop、v4.0.0-dev都属于dev级,哪怕你写了"minimum-stability": "dev",它们也不会自动变成beta -
v3.0.0-rc1是RC级,但如果你写成"minimum-stability": "rc"(小写),Composer 会忽略它,退回到默认stable -
minimum-stability对require中已带@dev、@beta的条目完全无效——这些是显式授权,绕过全局闸门
minimum-stability 必须写在 composer.json 顶层才生效
它不是命令行参数,也不是插件或子配置项。写错位置等于没写。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- ✅ 正确位置:
composer.json根对象下,和require、autoload同级 - ❌ 错误位置:
"config": {"minimum-stability": "beta"}—— Composer 完全忽略 - ❌ 错误位置:
"extra": {"minimum-stability": "beta"}—— 同样无效 - 验证是否生效:运行
composer config minimum-stability,有输出才是真写对了
想装 dev-main 却报 Could not find package?检查这三处
这不是网络或包不存在的问题,而是稳定性准入被拦住了。
- 项目
composer.json里没设"minimum-stability": "dev",且require条目没加@dev后缀(比如只写"vendor/pkg": "dev-main"是不够的,必须是"vendor/pkg": "dev-main@dev") -
minimum-stability设成了stable(默认值),而你要装的包只有dev-main或v2.1.x-dev标签,没任何stable版本 - 拼写错误:把
"RC"写成"rc"或"Rc",导致实际生效的是stable,v3.0.0-rc1被直接过滤
prefer-stable: true 不是可选项,是配套必需项
只改 minimum-stability 不配 prefer-stable,等于打开闸门却不装过滤器——所有满足门槛的版本都可能被随机选中。
- 设
"minimum-stability": "beta"+"prefer-stable": true→ 在beta、RC、stable中优先选stable,没有stable才选RC,再没有才选beta - 只设
"minimum-stability": "beta",不加prefer-stable→ 可能选中v3.0.0-beta3,哪怕v2.9.5(stable)也完全满足^2.0 -
prefer-stable: true单独存在无意义,必须和minimum-stability同时出现才起作用 - 改完必须运行
composer update --lock,否则composer.lock仍锁着旧策略下的版本
真正需要控制单个分支行为时,别碰 minimum-stability——直接在 require 里写 "vendor/pkg": "dev-main as 1.0.0" 或 "vendor/pkg": "^2.0@dev"。全局配置一旦设低,所有依赖都可能被卷入不稳定版本,而锁文件里的 commit hash 往往藏得极深,上线前才发现就晚了。










