Wykluczające się zależności w composer.json


13 października 2020 / Michał Kortas


Czasami bywa tak, że kilka bibliotek instalowanych przez Composera używa tych samych zależności. Nie ma problemu, kiedy korzystają one z tych samych wersji. Komplikacje powstają gdy jedna z nich wymaga starszej wersji, a druga nowszej. Jak sobie z tym poradzić, zanim dostawca biblioteki przygotuje aktualizację?

Przykładem takiego błędu jest obecnie (stan na 12.10.2020) instalacja FreshMail API na Laravel 7.0 i wyżej. Nowszy Laravel wymaga biblioteki monolog/monolog w wersji 2.0, a FreshMail 1.25.

Jedyne co można teraz zrobić, to wymusić instalację wyższej wersji i dodać alias, tak by FreshMail myślał, że korzysta ze starszej wersji. Trzeba też trzymać kciuki, żeby wadliwa biblioteka działała na wersji nowszej ;-)

Dodajemy więc w composer.json następujący kod:

Teraz jeszcze aktualizacja…

… i biblioteka ze starszą wersją zależności powinna ruszyć. Można podjąć próbę jej instalacji.

PS. Przy okazji – jeśli ktoś z FreshMail to przeczyta, bardzo proszę o zajęcie się tematem :-)


Tagi:


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *