Каковы сильные / слабые стороны ShipIt vs Dist :: Zilla? - PullRequest
10 голосов
/ 05 августа 2010

Я начал использовать Dist :: Zilla несколько месяцев назад. Тем не менее, в YAPC :: NA кто-то упомянул, что они используют ShipIt . Затем сегодня я заметил файл .shipit в каталоге miyagawa cpanminus на github , поэтому я решил изучить его еще ...

У меня первоначальное впечатление, что у ShipIt есть подмножество того, что доступно с Dist :: Zilla, но я не хочу делать поспешные выводы. Итак, каковы сильные и слабые стороны ShipIt против Dist :: Zilla для тех, кто имел опыт работы с обоими?

кросспост в perlmonks

Ответы [ 2 ]

7 голосов
/ 05 мая 2011

Я автор Dist :: Zilla.

Я довольно подробно оценил ShipIt, прежде чем пойти дальше и написать Dist :: Zilla, и изначально они охватывали почти одно и то же проблемное пространство: всю скучную работу по созданию и загрузке дистрибутива CPAN. Все функции, которые Dist :: Zilla теперь имеет за пределами ShipIt, являются более поздними дополнениями, более или менее.

Если вам нужны только функции ShipIt, я все же советую вам строго рассмотреть Dist :: Zilla по одной очень простой причине: возможность взлома. Если бы я смог , а не написать что-то новое, я бы использовал ShipIt, но я обнаружил, что он недостаточно документирован и его сложно расширять. Его плагины не были достаточно общими, а основное поведение делало слишком много предположений о том, как вы хотели бы работать.

Dist :: Zilla был вдохновлен именно этой проблемой: он превратил все в плагин, и каждый плагин получил очень, очень маленький интерфейс, чтобы его предположения были принудительно ограничены.

Одно из преимуществ ShipIt перед Dist :: Zilla состоит в том, что ShipIt не имеет (насколько мне известно) никаких плагинов, которые бы изменили способ написания кода. Это означает, что ваша документация будет выглядеть так же, у вас все равно будет Makefile.PL и так далее. Некоторым хакерам не нравится, что так много дисков на основе DZ в корне меняют представления о том, как тестировать и создавать код CPAN из своего исходного репозитория. ShipIt никогда не изменит это.

Можно избежать использования любых таких плагинов с Dist :: Zilla, но в целом мой опыт показывает, что люди делают используют их, почти всегда, в той или иной форме.

4 голосов
/ 11 августа 2010

Насколько я могу судить, мои первые впечатления были правильными.

ShipIt предоставляет функциональность для выпуска дистрибутивов:

  • отслеживание номеров версий
  • интеграция с контролем версий
  • загрузка в CPAN
  • отображение файла журнала изменений в редакторе, чтобы вы могли редактировать его перед выпуском.


По умолчанию Dist :: Zilla предоставляет возможность выгружать дистрибутивы в CPAN с помощью одной команды (т.е. dzil release). Dist :: Zilla также имеет функциональность для создания новых дистрибутивов (т.е. dzil new My::New::Module). Он также автоматически генерирует так много файлов, которые я должен был поддерживать вручную.

Используя плагины, Dist :: Zilla может предоставить большую часть, если не всю, функциональность, доступную в ShipIt. Также относительно легко добавлять новые функции с помощью плагинов.

...