composer不支持直接查看包的更新日志,需手动访问github releases或changelog.md;composer show和outdated仅显示版本号与静态元数据,不包含发布时间、commit信息或变更说明。

Composer 本身没有命令能直接查看包的更新日志(changelog)——它不内置解析 CHANGELOG.md、不调用 GitHub API、也不自动抓取 Releases 页面。 想看到“v2.9.0 修复了 PSR-3 context 透传 bug”这类信息,必须手动跳转到源码仓库或依赖外部工具链。
composer show 和 composer outdated 只显示版本号,不显示日志
很多人以为 composer show monolog/monolog 或 composer outdated --format=json 会附带更新说明,其实不会。它们只读本地 composer.lock 和缓存元数据(比如 ~/.composer/cache/repo/https---packagist.org/packages.json),连网络都不发一次。
-
composer show输出的是静态字段:name、type、license、source(Git 地址)、dist(ZIP 下载地址)——但没有发布时间、tag 时间、commit message -
composer outdated只对比已安装版本和 Packagist 上标记为stable的最新版,输出三列:package、installed、latest,后面连个链接都没有 - 哪怕加
-vvv,也只多打几行 HTTP 请求头,不会突然冒出 changelog 内容
查日志的正确路径:从 source 入口定位仓库,再人工看 Releases 或 CHANGELOG.md
先确认这个包是不是 Git 源安装的:composer show monolog/monolog | grep source。如果输出类似 source : https://github.com/Seldaek/monolog.git master,说明你有访问原始仓库的线索。
- 打开浏览器,把 URL 中的
.git去掉,换成/releases—— 例如https://github.com/Seldaek/monolog/releases,就能看到所有 tag 对应的发布说明 - 很多项目在根目录放
CHANGELOG.md,直接访问https://github.com/Seldaek/monolog/blob/main/CHANGELOG.md更快 - 如果
composer show显示的是dist(ZIP 包),那本地 vendor 里没 Git 历史,git log就不可用;此时只能靠线上资源
想用命令行自动化?得自己拼接 GitHub API 或 git diff
真要脚本化查更新内容,得绕过 Composer,直接对接 Git 或 GitHub。前提是:你已用 prefer-source=true 安装过该包,且知道两个版本号(比如从 v2.8.0 升到 v2.9.0)。
- 进 vendor 目录做 diff:
git -C vendor/monolog/monolog diff --stat v2.8.0..v2.9.0,能看到改了哪些文件 - 用 GitHub Compare API:
curl -s "https://api.github.com/repos/Seldaek/monolog/compare/v2.8.0...v2.9.0" | jq '.commits[].commit.message'(需装jq) - 注意:Packagist 不保证每个版本都对应 Git tag,有些包只推 dist、不打 tag,这时候连
v2.9.0这个名字都可能在 Git 里搜不到
最常被忽略的一点:composer.lock 里记录的是安装时间,不是发布日期;GitHub tag 时间可能比 Packagist 上标记的 “latest stable” 晚好几天——别默认它们同步。查日志这件事,终究得回到项目自身维护的文档或仓库,Composer 只负责装包,不负责讲故事。










