作曲家:将软件包升级到版本后显示自定义消息

问题描述

一个软件包中,我引入了一个更改,我希望所有从较早版本升级到该版本的用户都可以看到。因此,当作曲家升级软件包时,它应该向开发人员显示一条消息。

我已经在Yii2中看到了这一点,但是我不知道他们是如何做到的。似乎作曲家正在显示文件framework/UPGRADE.md的相关部分,但我在作曲家文档或composer.json中看不到对此文件的引用。 Yii2升级示例:

$ composer update yiisoft/yii2
  - Updating yiisoft/yii2 (2.0.32 => 2.0.37): Loading from cache

  Seems you have upgraded Yii Framework from version 2.0.32 to 2.0.37.

  Please check the upgrade notes for possible incompatible changes
  and adjust your application code accordingly.

  Upgrade from Yii 2.0.36
  -----------------------

  * `yii\db\Exception::getCode()` Now returns full PDO code that is sqlSTATE string. If you have relied on comparing code
    with an integer value,adjust your code.

...


  Upgrade from Yii 2.0.34
  -----------------------

  * `ExistValidator` used as a rule of `EachValidator` Now requires providing `targetClass` explicitely and it's not possible to use it with `targetRelation` in
    that configuration.

...

  You can find the upgrade notes for all versions online at:
  https://github.com/yiisoft/yii2/blob/2.0.37/framework/UPGRADE.md

解决方法

这是yiisoft/yii2-composer软件包的功能,该软件包是Composer插件,因此它可以对某些Composer事件作出反应。您可以在implementation中找到详细信息。没有快捷方式,您需要自己实现。

但是我不愿意这样做-Yii 2是一个框架,它的体系结构通常意味着它是项目中最重要的依赖项。在Yii 2的情况下,显示此类通知可能是有道理的(请注意,它仅在次要版本中显示潜在的BC突破更改,而不是changelog中的所有更改),但是如果每个依赖项都这样做,则将导致无法理解的混乱。如果有人想跟踪更新的依赖项中的更改,则可以使用pyrech/composer-changelogs