有没有办法查看composer包何时有高于其composer.json要求允许的可用更新?
我的composer.son文件有这样的require语句:
"require" : {
"components/bootstrap" : "~3.3.4",
"components/jquery" : "~1.11.2",
"erusev/parsedown" : "~1.5.2",
...
},
想象一下,parsedown刚刚在功能上有了一个巨大的飞跃,并迁移到了2.0.0版本。当我运行composer更新时,正如预期的那样,我的应用程序将不会更新到2.0.0版本(如果存在的话)。有没有办法让我看到2.0.0可以使用composer命令?
我担心我可能会错过一些更新,因为我已经锁定了我需要的版本太多了,希望有一些命令或方法可以查看我的composer包的所有可用更新。
有没有一种方法可以查看composer包何时具有高于其composer.json要求允许的可用更新?
是的,有办法。它基本上是将composer.json中定义的版本约束与特定包的composer show
版本号进行比较。
composer show --self
这显示了项目的composer.json的输出。您将获得已定义的版本约束。或者,只需打开composer.json.
composer show --installed
这将显示已解析和已安装的版本。
composer show package/package
这将显示所有可用的版本号。
旁注:composer show erusev/parsedown
说目前还没有v2.0.0版本。
目前还没有表格显示,但这是一个不错的功能请求,因为它简化了项目维护。但是,自动组装信息是相当耗费资源的,尤其是当有很多包的时候。
+----------------------------------------------------------------------------------+
| package | defined constraint | current version | available versions |
------------------------------------------------------------------------------------
| erusev/parsedown | ~1.0 | 1.5.2 | dev-master, v1.5.2, ...|
+----------------------------------------------------------------------------------+
首先,我建议您放宽版本要求,只使用波浪号两个数字而不是三个数字,然后看看效果如何。它不仅允许您获得补丁更新,还允许您获得兼容的功能更新。
Composer目前无法向您发出信号,表明除了被标记为"放弃"的原始包之外,还存在不兼容的版本。您必须监控手动使用的软件包的发布公告,或者您可以尝试看看如果您将下一个主要版本添加到需求中会发生什么:"erusev/parsedown" : "~1.5.2|~2.0"
然而,如果您甚至还没有尝试使用"erusev/parsedown" :"^1.5.2"
更新到最新的1.x版本,这看起来很奇怪。请注意,插入符号是主版本>=1的~1.5,>=1.5.2
的快捷方式(主版本0.x的处理更严格)。