使用 Composer 查看可用包(超出范围)更新

View Available Package (out-of-scope) Updates with Composer

有没有办法查看 composer 包的可用更新是否高于其 composer.json 要求所允许的?


我的 composer.son 文件有这样的要求语句:

"require" : {
    "components/bootstrap"         : "~3.3.4",
    "components/jquery"            : "~1.11.2",
    "erusev/parsedown"             : "~1.5.2",
    ...
},

想象一下 parsedown 在功能上有了很大的飞跃,并移到了 2.0.0 版。当我 运行 作曲家更新时,正如预期的那样,我的应用程序将不会更新到版本 2.0.0(如果存在)。有没有办法让我看到 2.0.0 可用于 composer 命令?

我担心我可能会错过一些更新,因为我已经锁定了太多我需要的版本,希望有一些命令或方法可以查看我的作曲家包的所有可用更新。

首先,我建议放宽您的版本要求,将波浪号改为两个数字,而不是三个,然后看看效果如何。它不仅可以让您获得补丁更新,还可以让您获得兼容的功能更新。

Composer 目前无法向您发出信号,表明存在超出被标记的原始包之外的不兼容版本 "abandoned"。您必须手动监视您使用的软件包的发布公告,或者您可以尝试看看如果将下一个主要版本添加到需求中会发生什么:"erusev/parsedown" : "~1.5.2|~2.0"

然而,如果您甚至没有尝试使用 "erusev/parsedown" :"^1.5.2" 更新到最新的 1.x 版本,这看起来很奇怪。请注意,对于 >= 1 的主要版本,插入符号是 ~1.5,>=1.5.2 的快捷方式(主要版本 0.x 的处理更为严格)。

Is there a way to see when a composer package has an available update that is higher than its composer.json requirement allows?

是的,有办法。它基本上是 composer.json 中定义的版本约束与特定包的 composer show 版本号的比较。

  1. composer show --self

这显示了您项目的 composer.json 的输出。 您将获得定义的版本约束。 或者,只需打开 composer.json.

  1. composer show --installed

这显示了已解决和已安装的版本。

  1. composer show package/package

这会显示所有可用的版本号。

旁注:composer show erusev/parsedown 说还没有 v2.0.0 版本。


目前还没有 table 显示,但这是一个很好的功能请求,因为它简化了项目维护。但是自动组装信息非常耗费资源,尤其是当有很多包时。

+----------------------------------------------------------------------------------+
| package          | defined constraint | current version | available versions     |
------------------------------------------------------------------------------------
| erusev/parsedown | ~1.0               | 1.5.2           | dev-master, v1.5.2, ...|
+----------------------------------------------------------------------------------+