composer 不提供查看更新记录的内置命令,需前往包的 github/gitlab 仓库查阅 changelog.md 或 releases 页面;composer show vendor/package --all 仅显示版本号及发布时间(非变更内容),--latest 则用于快速比对已安装版与最新稳定版。

Composer 本身不提供“查看更新记录”或“历史维护日志”的内置命令,所有版本变更详情必须去包的 GitHub/GitLab 仓库查 CHANGELOG.md 或 Releases 页面。
用 composer show --all 查所有可用版本(含时间)
这是最接近“历史版本列表”的本地命令,但它只显示 Packagist 记录的版本号和发布时间(time 字段),不是变更内容:
-
composer show vendor/package --all输出每行一个版本,括号里是该版本的发布时间(ISO 8601 格式,如(2024-03-15T10:22:41+00:00)) - 发布时间来自 Git tag 时间,不是代码修改时间,也不是 GitHub release 页面编辑时间
- 如果某版本显示为
dev-main,其时间是 Packagist 最近一次扫描该分支 HEAD 的时间,不可靠 - 输出里没有描述、没有 PR/commit 摘要,仅作版本存在性与发布节奏参考
用 composer show --latest 快速判断是否需更新
这不是查历史,而是解决“我装的这个版本还新不新”的实际问题:
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
-
composer show vendor/package --latest同时显示已安装版本 + 当前 stability 下的最新稳定版(含版本号和发布时间) - 若返回
latest : none,说明在你当前"minimum-stability"设置下(如"stable")无可用更新,不是包没发新版本 - 它不展示中间版本,也不告诉你
v2.5.0 → v2.5.1修了什么 bug —— 那得看 CHANGELOG - 配合
composer outdated --direct --minor-only可过滤出安全/补丁级更新,适合日常巡检
为什么不能依赖 composer show 查变更内容
因为 Composer 的设计定位就是依赖解析器,不是文档分发系统:
- Packagist 不托管、不解析、不验证
CHANGELOG.md,它只同步composer.json和 tag 元数据 - 有些包把变更写在
UPGRADE.md或UPGRADING.md,composer show完全看不到 - 发布时间字段(
time)可能滞后:维护者删 tag 重推、未打 annotated tag、或用version字段硬编码,都会导致时间不准 - 真正确认某个 fix 是否包含,唯一办法是比对 commit hash:
git log --oneline v2.2.0..v2.3.0或访问/compare/v2.2.0...v2.3.0
直接查源码仓库才是唯一可靠路径
别绕弯,打开浏览器或终端直奔源头:
- 先从
composer show vendor/package拿到source或homepage字段,通常是 GitHub URL - 进仓库后优先点开
CHANGELOG.md(多数主流包都有),搜索关键词如security、deprecation、breaking - 看
Releases页面(https://github.com/vendor/package/releases),那里有带摘要、日期、下载链接的正式发布记录 - 若包已标记为
abandoned,Packagist 页面顶部会有醒目提示,并推荐替代包,这时查历史意义不大,该迁移了
历史版本的“维护痕迹”不在 Composer 命令里,而在 Git 提交、tag 注释和作者写的文档中。想确认一个版本值不值得升,发布时间只是起点,commit diff 和 CHANGELOG 才是落点。










