composer怎么查看包的更新日志_composer查看包版本更新方法

3次阅读

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

composer怎么查看包的更新日志_composer查看包版本更新方法

Composer 本身没有命令能直接查看包的更新日志(changelog)——它不内置解析 CHANGELOG.md、不调用 github API、也不自动抓取 Releases 页面。 想看到“v2.9.0 修复了 PSR-3 context 透传 bug”这类信息,必须手动跳转到源码仓库或依赖外部工具链。

composer show 和 composer outdated 只显示版本号,不显示日志

很多人以为 composer show monolog/monologcomposer 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 的最新版,输出三列:packageinstalledlatest,后面连个链接都没有
  • 哪怕加 -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 只负责装包,不负责讲故事。

text=ZqhQzanResources