Вот критическое изменение: https://github.com/composer/composer/commit/6a557e45b8295007db61e786736f04018fe5fe90#commitcomment -17966162
и проблема, вызванная этим: francoispluchino / composer-asset-plugin # 230
изменения были внесены в № 5454, что также вызвало еще один сбой, о котором сообщается в № 5456.
Сообщение об ошибке после обновления композитора:
Fatal error: Declaration of Fxp\Composer\AssetPlugin\Repository\AbstractAssetsRepository::search()
must be compatible with Composer\Repository\RepositoryInterface::search($query, $mode = 0, $type = NULL)
in /code/vendor/fxp/composer-asset-plugin/Repository/AbstractAssetsRepository.php on line 334
см. francoispluchino / composer-asset-plugin # 230 для более подробной информации.
Однако проблему нелегко исправить. Эти изменения были применены к основной ветке, где допустимы разрывы BC. Однако, поскольку плагины не могут зависеть от конкретной версии, а скорее ограничены запуском с той версией, которую вы, пользователь, выберете для запуска, все может неожиданно сломаться, если вы решите использовать последний снимок вместо стабильной версии.
Я прекрасно понимаю, что хозяин может сломаться, это нормально. Я сообщил об этом, чтобы он не был включен в выпуск без внесения необходимых изменений.
ИМО, это не нарушает само по себе, это только ломает старые плагины с новой версией, но если плагин адаптируется к новой версии, он должен быть совместим со старыми версиями композитора согласно https://3v4l.org/7OfIR ( добавление параметров в реализуемый вами интерфейс - это нормально, но меньшее - нет).
Мы могли бы просто удалить параметр из интерфейса, который не должен нарушать функциональность и позволяет старым плагинам работать нормально. Затем его можно было добавить в 2.0. Это был бы более строгий подход BC.
Самый полезный комментарий
ИМО, это не нарушает само по себе, это только ломает старые плагины с новой версией, но если плагин адаптируется к новой версии, он должен быть совместим со старыми версиями композитора согласно https://3v4l.org/7OfIR ( добавление параметров в реализуемый вами интерфейс - это нормально, но меньшее - нет).
Мы могли бы просто удалить параметр из интерфейса, который не должен нарушать функциональность и позволяет старым плагинам работать нормально. Затем его можно было добавить в 2.0. Это был бы более строгий подход BC.