Aquí está el cambio rotundo: https://github.com/composer/composer/commit/6a557e45b8295007db61e786736f04018fe5fe90#commitcomment -17966162
y el problema causado por él: francoispluchino / composer-asset-plugin # 230
los cambios fueron introducidos por el # 5454 que también causó otra ruptura, que se informa en el # 5456.
Mensaje de error después de actualizar el compositor:
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
consulte francoispluchino / composer-asset-plugin # 230 para obtener más detalles.
Sin embargo, el problema no se soluciona fácilmente. Estos cambios se aplicaron en la rama principal, donde las roturas de BC son aceptables. Sin embargo, dado que los complementos no pueden depender de una versión específica, sino que se limitan a ejecutarse en la versión que usted, el usuario, elija ejecutar, las cosas pueden romperse inesperadamente si decide usar la última instantánea en lugar de una versión estable.
Soy totalmente consciente de que el maestro puede romperse, está bien. Informé esto para que no se envíe en una versión sin realizar los cambios necesarios.
En mi opinión, esto no está rompiendo per-se, solo rompe los complementos antiguos con la nueva versión, pero si el complemento se ajusta a la nueva versión, debería ser compatible con las versiones antiguas del compositor según https://3v4l.org/7OfIR ( agregar parámetros a una interfaz que implemente está bien, pero tener menos no lo es).
Podríamos simplemente eliminar el parámetro de la interfaz, lo que no debería romper ninguna funcionalidad y permite que los complementos antiguos funcionen bien. Luego podría agregarse en 2.0. Ese sería un enfoque más estrictamente BC.
Comentario más útil
En mi opinión, esto no está rompiendo per-se, solo rompe los complementos antiguos con la nueva versión, pero si el complemento se ajusta a la nueva versión, debería ser compatible con las versiones antiguas del compositor según https://3v4l.org/7OfIR ( agregar parámetros a una interfaz que implemente está bien, pero tener menos no lo es).
Podríamos simplemente eliminar el parámetro de la interfaz, lo que no debería romper ninguna funcionalidad y permite que los complementos antiguos funcionen bien. Luego podría agregarse en 2.0. Ese sería un enfoque más estrictamente BC.