Подтвердить что ты не робот

Каковы сильные/слабые стороны ShipIt против Dist:: Zilla?

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

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

crossposted at perlmonks

4b9b3361

Ответ 1

Я являюсь автором 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, но в целом мой опыт в том, что люди действительно используют их почти всегда в той или иной форме.

Ответ 2

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

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

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


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

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