2013-01-09 10 views
26

Używam kompozytor (w projektach Symfony2) i często dostaję błędy podczas aktualizacji bibliotek.dev-master w composer.json, czy to szaleństwo?

Wiele bibliotek (większość z mojego doświadczenia) używa dev-master jako wersji dla swoich zależności (lub gorzej używa *).

Ilekroć coś jest przypisane do gałęzi głównej, aktualizuje się bibliotekę, a szanse zmiany interfejsu API są większe w miarę upływu czasu. To, co dziś w mistrzu jest w wersji 1.2.1, jutro może być 1.2.7, bez szkody, i stać się później 1.7 lub 2.x z pewnymi niekompatybilnościami.

Moje pytania są

  1. Jak udało się do tej pory? Czy jest to praktyka sugerowana ze źródeł o wysokim profilu?
  2. co mogę zrobić/możemy zrobić, aby uczulić autorów na ten temat?

lub czy jestem zły?

+2

Czy pytasz, czy krzyczysz? –

+0

autentycznie i pozytywnie pytając: –

+0

@RiccardoGalli, jeśli opiekun nie nasłuchuje, to możesz być może rozwidlić zależności i oznaczyć je samodzielnie i uczynić pakiet niestandardowy zależnością; to oczywiście nie działa, gdy masz do czynienia z wieloma poziomami zależności – Manquer

Odpowiedz

33

Nie jesteś szalony.

  1. Jest to problem związany z kurczakiem i jajkiem, dopóki użytkownicy nie dodadzą tagów, inni nie mogą wymagać wersji z tagami.
  2. Naguj wszystkich, którzy nie mają znaczników ani nie oznaczajcie ich tagami w ciągu sześciu miesięcy (jeśli projekt jest aktywnie rozwijany). W tym tygodniu starałem się oznaczyć wszystkie nasze pakiety, ponieważ czytałem podobny rant i przypomniałem sobie, że wciąż mamy tylko wersje dev-master na większości z nich.

Rozwiązaniem jest naprawdę edukacja, a ja postaram się pomóc, naciskając na najlepsze praktyki w dokumentach kompozytorskich. Nie wszyscy mają duże doświadczenie w zarządzaniu pakietami i wiele osób nie zdaje sobie sprawy z tego, jak problematyczne może być to podejście (dopóki nie jest za późno), więc zadaniem każdego jest pomóc, przypominając im o tym.

+1

Piszę bibliotekę do redystrybucji. Niektóre zależności nie mają znaczników wersji. Jak sobie z nimi poradzić? Czy mogę po prostu udoskonalić program? Kiedy próbowałem go wcześniej, biblioteka nie była instalowalna w innych projektach ze względu na zależności dev-master. – CMCDragonkai

+0

Powinieneś nagrać swoich autorów zależności, tak aby tagować wydania ASAP. Jeśli cały ekosystem, w którym pracujesz, jest nadal niestabilny, to zależy od dev-master, ale nie powinieneś tworzyć tagów z IMO, zależnie od dev-master, ponieważ jest to bardzo złe w dłuższej perspektywie. – Seldaek