2013-01-09 7 views
26

Uso il compositore (in progetti Symfony2) e spesso ricevo errori durante l'aggiornamento delle librerie.dev-master in composit.json, è questa follia?

Molte librerie (la maggior parte sulla mia esperienza) usano dev-master come versione per le loro dipendenze (o peggio usano *).

Ogni volta che viene eseguito il commit di qualcosa sul ramo master, è possibile aggiornare la libreria e le possibilità di modifica dell'API aumentano con il passare del tempo. Quello che oggi in master è la versione 1.2.1 di domani potrebbe essere 1.2.7, senza danno, e diventare più tardi 1.7 o 2.x con incompatibilità sicure.

Le mie domande sono

  1. come siamo arrivati ​​a questo punto? È una pratica suggerita da fonti di alto profilo?
  2. cosa posso/noi facciamo per sensibilizzare gli autori a questo argomento?

o Sono pazzo?

+2

Stai chiedendo o inveendo? –

+0

chiedendo sinceramente e positivamente –

+0

@RiccardoGalli se il manutentore non sta ascoltando, allora si potrebbe forse forgiare le dipendenze e taggarle da soli e rendere il pacchetto personalizzato la dipendenza; questo ovviamente non funziona quando devi affrontare più livelli di dipendenze – Manquer

risposta

33

Non sei arrabbiato.

  1. È un problema di pollo e uova, finché le persone non etichettano più, altri non possono richiedere versioni con tag.
  2. Nag chiunque non abbia tag o non abbia taggato nulla in sei mesi (se il progetto è stato sviluppato attivamente). Ho fatto uno sforzo per etichettare tutti i nostri bundle all'inizio di questa settimana, perché ho letto un simile rant e mi sono ricordato che avevamo ancora solo versioni di dev master su molti di loro.

La soluzione è davvero l'istruzione, e cercherò di aiutare un po 'spingendo per le migliori pratiche nei documenti di composizione. Non tutti hanno molta esperienza con la gestione dei pacchetti e molte persone non si rendono conto di quanto possa essere problematico questo approccio (fino a quando non è troppo tardi), quindi è compito di tutti aiutarli ricordandoli.

+1

Sto scrivendo una biblioteca per essere ridistribuibile. Alcune delle dipendenze non hanno tag di versione. Come mi occupo di loro? Posso semplicemente dev-master? Quando l'ho provato in precedenza, la libreria non era installabile su altri progetti a causa delle dipendenze di dev-master. – CMCDragonkai

+0

Dovresti tormentare gli autori delle tue dipendenze in modo che taggano le pubblicazioni al più presto. Se l'intero ecosistema in cui si lavora è ancora instabile, allora è corretto dipendere da dev-master ma non si dovrebbero creare tag con dipendenze dev-master IMO perché questo è davvero brutto a lungo termine. – Seldaek