2010-08-04 2 views
10

Ho iniziato a utilizzare Dist::Zilla diversi mesi fa. Tuttavia, a YAPC :: NA qualcuno ha detto che usano ShipIt invece. Poi ho notato un file .shipit in miyagawa cpanminus directory on github, quindi ho deciso di esaminarlo ancora ...Quali sono i punti di forza/debolezza di ShipIt vs Dist :: Zilla?

La mia impressione iniziale è che ShipIt abbia un sottoinsieme di ciò che è disponibile con Dist :: Zilla, ma io voglio saltare alle conclusioni. Quindi, per coloro che hanno avuto esperienza con entrambi, quali sono i punti di forza/debolezza di ShipIt rispetto a Dist::Zilla?

crossposted at perlmonks

+0

possibile duplicato di [Quale framework dovrei usare per scrivere moduli?] (Http://stackoverflow.com/questions/73889/which-framework-should-i-use-to-write-modules); si veda anche [Qual è il miglior sistema per installare un'app web Perl?] (http://stackoverflow.com/questions/143680/whats-the-best-system-for-installing-a-perl-web-app), e [Devo usare Module :: Install o Module :: Build?] (Http://stackoverflow.com/questions/369209/should-i-use-moduleinstall-or-modulebuild) – Ether

+3

Non votare per chiudere perché nessuno di questi link (o SO in generale) sembrano coprire ShipIt –

+2

@Eric: se la domanda è la stessa, le risposte devono essere aggiornate per includere ShipIt. Non ne so nulla, quindi gradirei un confronto con gli altri noti motori di packaging. – Ether

risposta

7

Sono l'autore di Dist :: Zilla.

Ho valutato ShipIt abbastanza ampiamente prima di scegliere di andare avanti e scrivere Dist :: Zilla, e inizialmente hanno coperto quasi esattamente lo stesso problema di spazio: facendo tutto il noioso lavoro di costruzione e caricamento di una distribuzione CPAN. Tutte le funzionalità che Dist :: Zilla ha ora oltre ShipIt sono aggiunte successive, più o meno.

Se sono necessarie solo le funzionalità di ShipIt, I è ancora consigliare di prendere in considerazione Dist :: Zilla, per una ragione molto semplice: hackerabilità. Se fossi stato in grado di scrivere non scrivessi qualcosa di nuovo, avrei usato ShipIt, ma l'ho trovato poco documentato e difficile da estendere. I suoi plugin non erano abbastanza generici e il comportamento di base faceva troppe ipotesi su come ti piacerebbe lavorare.

Dist :: Zilla è stato ispirato in modo specifico da questo problema: ha trasformato tutto in un plug-in e ad ogni plug-in è stata fornita un'interfaccia molto piccola in modo che le sue ipotesi sarebbero state forzatamente limitate.

Uno dei vantaggi di ShipIt rispetto a Dist :: Zilla è che ShipIt ha (per quanto ne so) nessun plug-in che altererà il modo in cui si scrive effettivamente il codice.Ciò significa che la tua documentazione sarà sempre la stessa, avrai ancora un Makefile.PL e così via. Ad alcuni hacker non piace che così tante distzioni basate su DZ cambino fondamentalmente le ipotesi su come testare e costruire il codice CPAN dal suo repository sorgente. ShipIt non cambierà mai quello.

È possibile evitare l'uso di tali plugin con Dist :: Zilla, ma in generale la mia esperienza è che le persone do li usano, quasi sempre, in una forma o nell'altra.

4

Per quanto posso dire, le mie impressioni iniziali erano corrette.

ShipIt fornisce funzionalità per rilascio distribuzioni:

  • tenere traccia dei numeri di versione
  • integrazione con il controllo di versione
  • caricamento su CPAN
  • Visualizzazione del file changelog in un editor in modo da poterlo modificare prima del rilascio.


Dist :: Zilla, per default, fornisce la possibilità di caricare le distribuzioni di CPAN con un singolo comando (cioè dzil release). Dist :: Zilla ha anche funzionalità per creando nuove distribuzioni (ad esempio dzil new My::New::Module). Genera automaticamente anche molti dei file che dovevo mantenere manualmente.

Utilizzare i plugin, Dist :: Zilla sembra in grado di fornire la maggior parte, se non tutte, le funzionalità disponibili con ShipIt. È anche relativamente facile aggiungere nuove funzionalità utilizzando i plugin.