Question

Je commencé à utiliser Dist :: Zilla il y a plusieurs mois. Cependant, à YAPC :: NA quelqu'un a dit qu'ils utilisent ShipIt à la place. Alors aujourd'hui, j'ai remarqué un fichier .shipit dans le répertoire Miyagawa cpanminus sur github, donc j'ai décidé de l'examiner quelques-uns plus ...

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

crossposted à PerlMonks

Était-ce utile?

La solution

Je suis l'auteur de Dist :: Zilla.

J'évalué assez largement ShipIt avant de choisir d'aller de l'avant et d'écrire Dist :: Zilla, et d'abord ils ont couvert presque exactement le même espace de problème: faire tout le travail de grognement ennuyeux de la construction et de télécharger une distribution CPAN. Toutes les fonctionnalités Dist :: Zilla a maintenant au-delà ShipIt sont des ajouts ultérieurs, plus ou moins.

Si vous avez seulement besoin des fonctionnalités de ShipIt, I toujours vous conseillons de considérer fortement Dist :: Zilla, pour une raison très simple: hackabilité. Si j'avais pu pas écrire quelque chose de nouveau, je l'aurais utilisé ShipIt, mais je l'ai trouvé à étendre underdocumented et difficile. Ses plugins ne sont pas assez générique et le comportement de base fait trop d'hypothèses sur la façon dont vous souhaitez travailler.

Dist :: Zilla a été inspiré spécifiquement par ce problème. Il a transformé tout en un plug-in, et chaque plugin a été donné une très, très petite interface pour que ses hypothèses seraient limitées par la force

L'un des avantages de ShipIt sur Dist :: Zilla est que ShipIt a (à ma connaissance) pas de plugins qui modifieront la façon dont vous écrivez réellement votre code. Cela signifie que votre documentation sera toujours le même, vous aurez toujours un Makefile.PL, et ainsi de suite. Certains pirates n'aiment pas que tant de dists à base DZ fondamentalement les hypothèses changent de la façon de tester et de construire le 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 ne les utiliser, presque toujours, sous une forme ou une autre.

Autres conseils

Pour autant que je peux dire, mes premières impressions étaient correctes.
ShipIt fournit des fonctionnalités pour libérer distributions:

  • garder la trace des numéros de version
  • l'intégration avec le contrôle de version
  • L'ajout de CPAN
  • afficher le fichier changelog dans un éditeur afin que vous puissiez 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 la fonctionnalité pour création de nouvelles distributions (à savoir dzil new My::New::Module). Il génère automatiquement tant de fichiers que je l'habitude d'avoir à maintenir la main.

En utilisant des plugins, Dist :: Zilla semble en mesure de fournir la plupart, sinon la totalité, des fonctionnalités disponibles avec ShipIt. Il est relativement facile d'ajouter de toutes nouvelles fonctionnalités en utilisant des plugins.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top