预发布版本必须打形如v1.0.0-alpha的tag,带v前缀且identifier仅限alpha/beta/rc及其数字后缀;否则packagist不识别,导致composer require找不到包。

预发布版本(alpha/beta/rc)必须打带 v 前缀的语义化 tag,且 identifier 仅限 alpha、beta、rc 及其数字后缀;否则 Packagist 不识别,composer require 就找不到包。
为什么 composer require vendor/name:1.0.0-alpha 报 Could not find package
根本不是网络或权限问题,而是 Packagist 根本没把那个 tag 当成有效预发布版本索引。常见原因:
-
git tag 1.0.0-alpha没加v前缀 → Packagist 忽略或归为dev-main别名 - 用了非标准 identifier,比如
v1.0.0-dev、v1.0.0-preview、v1.0.0-test→ 不进版本列表,composer show看不见 - tag 推了但没触发 Packagist 同步:Webhook 没配、配错 URL(如填了镜像站)、或只勾了
Pushes却没推--tags
v1.0.0-beta.2 这类 tag 怎么打才合法
Packagist 对预发布 tag 的格式校验很严格,必须同时满足:
- 以
v开头(小写),不能是V或无前缀 - 主版本号符合
MAJOR.MINOR.PATCH,例如v1.0.0、v0.9.5 - pre-release identifier 只能是
alpha、beta、rc,后面可接点号和数字,如alpha.1、beta.2、rc.1 - 禁止出现
dev、preview、test、final、stable等非标准词
✅ 合法示例:v1.0.0-alpha、v2.3.0-rc.1、v0.8.0-beta.5
❌ 非法示例:1.0.0-alpha、v1.0.0-dev、v1.0.0-preview.1、v1.0.0-final
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
用户怎么装到 alpha 或 beta 版本
默认 composer require 只拉 stable 版本,预发布版稳定性等级更低,必须显式声明或放宽限制:
- 临时安装单个包:用完整 tag 名,
composer require vendor/name:v1.0.0-beta.1—— 注意带v,不带会失败 - 项目级启用:在根项目的
composer.json中加两行:"minimum-stability": "beta",<br>"prefer-stable": true
前者允许拉beta及以上(含alpha、rc),后者保证有 stable 版时优先选它,避免意外降级 - 千万别改全局 config:
composer config -g minimum-stability dev会影响所有项目依赖,极易引发冲突
打完 tag 后 Packagist 没更新?检查这三件事
Webhook 配了≠生效,常见断点就在这三个环节:
- GitHub Webhook 的
Payload URL必须是https://packagist.org/api/github(不是php.net或国内镜像) - 事件类型推荐勾选
Just the push event,并确保你执行了git push origin --tags(只git push不推 tag) - 确认该 tag 对应的 commit 里,
composer.json存在且合规(尤其name字段正确、没version字段)
如果仍不更新,去 Packagist 包页手动点 Update,再看 Last updated 时间是否变化——这是最直接的验证方式。别等“自动”生效,预发布版本同步延迟或失败太常见,手动触发才是底线保障。










