2010-08-04 3 views
10

J'ai commencé à utiliser Dist::Zilla il y a plusieurs mois. Cependant, à YAPC :: NA quelqu'un a mentionné qu'ils utilisent ShipIt à la place. Puis aujourd'hui j'ai remarqué un fichier .shipit dans cpanminus directory on github de miyagawa, donc j'ai décidé de regarder dans un peu plus ...Quels sont les points forts et les faiblesses de ShipIt vs Dist :: Zilla?

Ma première impression est que ShipIt a un sous-ensemble de ce qui est disponible avec Dist :: Zilla, mais je don ne veux pas sauter aux conclusions. Donc, pour ceux qui ont eu de l'expérience avec les deux, quelles sont les forces/faiblesses de ShipIt vs Dist::Zilla? Pour autant que je peux dire

crossposted at perlmonks

+0

duplication possible de [Quelle structure dois-je utiliser pour écrire des modules?] (Http://stackoverflow.com/questions/73889/which-framework-should-i-use-to- write-modules); voir aussi [Quel est le meilleur système pour installer une application Web Perl?] (http://stackoverflow.com/questions/143680/whats-the-best-system-for-installing-a-perl-web-app), et [Dois-je utiliser Module :: Install ou Module :: Build?] (Http://stackoverflow.com/questions/369209/should-i-use-moduleinstall-or-modulebuild) – Ether

+3

Ne pas voter pour fermer car aucun de ces liens (ou SO en général) semblent couvrir ShipIt –

+2

@Eric: si la question est la même, alors les réponses doivent être mises à jour pour inclure ShipIt. Je ne sais rien à ce sujet, donc je serais heureux de la comparer aux autres moteurs d'emballage bien connus. – Ether

Répondre

7

Je suis l'auteur de Dist :: Zilla.

J'ai largement évalué ShipIt avant d'écrire Dist :: Zilla, et initialement ils couvraient presque exactement le même problème: faire tout le travail ennuyeux de construction et de téléchargement d'une distribution CPAN. Toutes les fonctionnalités que Dist :: Zilla a maintenant au-delà de ShipIt sont des ajouts ultérieurs, plus ou moins.

Si vous avez seulement besoin des fonctionnalités de ShipIt, je encore vous conseillons fortement de considérer Dist :: Zilla, pour une raison très simple: la hacabilité. Si j'avais été capable de pas de d'écrire quelque chose de nouveau, j'aurais utilisé ShipIt, mais je l'ai trouvé sous-documenté et difficile à étendre. Ses plugins n'étaient pas assez génériques et le comportement de base faisait trop de suppositions sur la façon dont vous aimeriez travailler. Dist: Zilla a été inspiré spécifiquement par ce problème: il a tout transformé en un plugin, et chaque plugin a été donné une très, très petite interface de sorte que ses hypothèses seraient forcément limitées. Un avantage de ShipIt sur Dist :: Zilla est que ShipIt n'a (au meilleur de ma connaissance) aucun plugin qui va modifier la façon dont vous écrivez réellement votre code.Cela signifie que votre documentation sera toujours la même, vous aurez toujours un Makefile.PL, et ainsi de suite. Certains pirates n'aiment pas le fait que de nombreux disques basés sur la DZ changent fondamentalement les hypothèses sur la façon de tester et de construire du code CPAN à partir de son référentiel source. ShipIt ne changera jamais cela.

Il est possible d'éviter d'utiliser de tels plugins avec Dist :: Zilla, mais en général, mon expérience est que les gens les utilisent, presque toujours, sous une forme ou une autre.

4

, mes premières impressions étaient correctes.

ShipIt fournit des fonctionnalités pour libérer distributions:

  • garder la trace des numéros de version
  • intégrant avec le contrôle de version
  • L'ajout de CPAN
  • affichant le fichier changelog dans un éditeur de sorte que vous pouvez le modifier avant la sortie.


Dist :: Zilla, par défaut, fournit la possibilité de télécharger des distributions à CPAN avec une commande unique (à savoir dzil release). Dist :: Zilla a également une fonctionnalité pour créant nouvelles distributions (c'est-à-dire dzil new My::New::Module). Il génère aussi automatiquement un grand nombre de fichiers que j'avais l'habitude de tenir à la main. En utilisant les plugins, Dist :: Zilla semble capable de fournir la plupart des fonctionnalités disponibles avec ShipIt, sinon toutes. Il est également relativement facile d'ajouter de nouvelles fonctionnalités en utilisant des plugins.

Questions connexes