在 packagist 上标记包为 abandoned 需在 composer.json 中设 "abandoned": true 或 "abandoned": "vendor/new-package-name",推送后依赖 github/gitlab webhook 触发同步,5–10 分钟内 packagist 页面显示黄色横幅,composer 7.2+ 安装时发出警告。

如何在 Packagist 上标记一个包为 abandoned
直接改 composer.json,然后推送到 GitHub/GitLab,Packagist 会自动同步并显示“abandoned”状态——前提是你的包已由 Packagist 自动抓取(即通过 GitHub webhook 或手动 submit)。
- 在包根目录的
composer.json中添加"abandoned": true,或更推荐写成"abandoned": "vendor/new-package-name"(指向替代包) - 如果写成
"abandoned": "true"(字符串)或"abandoned": 1,Packagist 会忽略,必须是布尔true或非空字符串(推荐用包名) - 提交并推送后,访问 Packagist 页面,通常 5–10 分钟内就会出现黄色横幅:“This package is abandoned and no longer maintained. The author suggests using
vendor/new-package-nameinstead.” - 旧包仍可被安装,但
composer install或composer update时,Composer 7.2+ 会在终端输出警告(前提是用户没加--no-scripts且未禁用提示)
为什么 abandoned 字段不生效
最常见原因是 Packagist 没拿到新版本元数据——它不会主动轮询 Git,只响应 webhook 或手动更新触发。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 确认 GitHub/GitLab 仓库已启用 Packagist webhook(路径类似 Settings → Webhooks),事件类型需勾选
Pushes和Repository name changed - 若用私有 Packagist(如 Private Packagist 或 Satis),需手动运行
composer update或刷新索引,它不会自动监听 Git 变更 - 检查 Packagist 页面右上角的 “Last updated” 时间,如果远早于你推送
composer.json修改的时间,说明同步失败 - 错误示例:
"abandoned": "yes"—— Packagist 只认true或合法包名字符串,其他值一律当无效字段处理
composer require 安装废弃包时会怎样
默认不会阻止安装,但会明确提醒。这个行为从 Composer 2.2 开始强化,不是警告而是带颜色的显眼提示。
- 执行
composer require old/package后,终端会输出:Warning: The package old/package is abandoned, you should avoid using it. Use new/package instead. - 如果
abandoned值是true(无替代包),提示里 “Use … instead” 部分会被省略,只说 “you should avoid using it” - CI 环境中若使用
--no-ansi或重定向 stdout/stderr,该警告可能被吞掉,别误以为没触发 - 不依赖 Packagist 页面是否更新——只要本地
composer.json里有该字段,且 Composer 已缓存最新元数据(通常composer clear-cache后首次 install 会拉新),警告就有效
废弃后还能发新版本吗
能,但 Packagist 不再为这些新版本生成独立页面,所有新 tag 都指向同一个废弃横幅页;Composer 也能正常解析和安装,只是持续告警。
- 发布 v1.2.3 这样的新 tag 后,Packagist 不会新建版本页,而是在原包页底部新增 “v1.2.3” 列表项,点击仍跳转到废弃提示页
- 如果你希望彻底停更,建议在 README 顶部加 NOTICE,并在
composer.json中把abandoned改为指向明确替代品,比如"abandoned": "new/vendor-bundle" - 注意:删除 GitHub 仓库或设为私有,会导致 Packagist 标记为 “Package not found”,这和
abandoned是两回事——前者让包不可安装,后者只是劝退
composer.json。










