composer 不管理 changelog 文件,执行 install/update 不会自动下载,show 命令也不显示 support.changelog 字段;需手动通过 source.url 拼接常见路径(如 /blob/main/changelog.md)或查 releases 页面。

Composer 本身不管理、不展示、也不下载 CHANGELOG 文件——它只管装包,不管日志。你执行 composer install 或 composer update,vendor 目录里不会自动多出一个 CHANGELOG.md;composer show 也不会打印变更内容。想看到更新了啥,得自己动手找。
怎么快速定位某个包的 CHANGELOG 文件位置
绝大多数 PHP 包把变更日志放在 GitHub/GitLab 的固定路径,别猜,按顺序试:
- 先跑
composer show vendor/package -s,拿到source.url(比如https://github.com/guzzle/guzzle) - 手动拼地址:
{url}/blob/main/CHANGELOG.md(优先试main,再试master) - 常见变体还有:
/blob/main/changelog.md、/blob/main/CHANGELOG(无扩展名)、/releases(GitHub Releases 页面) - 如果包用自建文档站(如 Laravel),直接查官网文档说明,例如
laravel.com/docs/11.x/changelog - 注意:有些包把变更全写在 Git tag 的注释里,这时
git log --oneline v2.5.0..v2.6.0反而更靠谱
为什么 composer show 不显示 changelog 字段
因为 Composer 不解析 composer.json 里的 support.changelog 字段——即使包作者写了 "support": {"changelog": "https://example.com/CHANGELOG"},composer show 也视而不见。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
-
composer show vendor/package默认只输出 name、version、description、require 等基础字段 -
composer show vendor/package -s只加了 source 信息,没加 support 字段 - 没有命令能直接导出所有包的 changelog 链接,
composer outdated --format=json也不含该字段 - 想批量处理?只能写脚本提取
source.url,再请求对应仓库的CHANGELOG.md——但小心 GitHub API 限流
本地查看已安装包的 CHANGELOG 文件
只要包把 CHANGELOG.md 提交到了源码根目录,它就会被 Composer 下载进 vendor/,可直接读:
- 运行
ls vendor/vlucas/phpdotenv/CHANGELOG.md确认文件是否存在 - 快速预览前 20 行:
head -20 vendor/guzzlehttp/guzzle/CHANGELOG.md - 注意路径大小写:有的包是
changelog.md,有的是ChangeLog.md,有的甚至叫UPGRADE.md - 私有包或 zip 分发的包可能根本没带这个文件——这时只能翻 git log 或问同事
最稳的方式不是写脚本,而是打开浏览器,点开包的 GitHub 页面,切到 releases 标签页。人类识别比正则匹配更可靠,尤其对小众包、非标准分支、或靠 CI 自动生成 changelog 的项目。










