Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
use 5.010;
our $VERSION = '1.2.3'; # NOT ALLOWED: '1.2', '1.2_3'
Но, по большому счёту, абсолютно не важно, как записана версия внутри модуля, если она корректно работает — её никто кроме автора не видит. А вот как выглядит версия модуля в тегах гита и в имени архива с модулем уже может иметь значение — но обеспечить отсутствие «v» в них это уже задача для утилит авторинга.На каком этапе мне понадобится дистзилла?Понадобится — неправильный термин. Её можно не использовать вообще. Но если её использовать — то она будет использоваться на всех этапах.
А почему я не могу использовать вместо неё мейкмейкер? Что? Это разные инструменты? А в чем разница?Можете. Просто EUMM решает только часть задач (причём довольно сложным и запутанным образом), поэтому остальные задачи придётся либо выполнять вручную, либо использовать какие-то дополнительные из описанных в статье утилит (например, cpan-uploader для автоматического заливания дистрибутива с модулей созданного EUMM на PAUSE).
А авторинг — это что вообще такоеУже ответил.
Кто на ком сидит в этой мешанине?Сложно сказать. Есть много достаточно разных задач. Есть куча утилит, многие из которых пытаются с переменным успехом решать некоторые из этих задач. Естественно, функциональность многих утилит пересекается. Плюс нередко одни из них используют внутри себя другие.
В каком месте раздела «Задачи» применяется, к примеру, Dist::Zilla?Во всех местах. Dist::Zilla решает все перечисленные в нём задачи.
А авторинг?Авторинг — это общее название для всех перечисленных в этом разделе задач.
Что вообще такое авторинг?Это всё то, что Вам нужно делать для того, чтобы сделать доступным свой новый перл-модуль для других (не важно, через выкладывание его на CPAN/DarkPAN или отправку его другому разработчику по email) — всё, кроме собственно написания кода, тестов и документации этого модуля.
Dist:::Milla — это просто сконфигурированный профиль Миагавы для Dist::Zilla.Да, но… это достаточно популярный профиль, плюс он построен на нетипичном для большинства профилей Dist::Zilla принципе — работать привычным для авторов не использовавших Dist::Zilla способом, получая нужные ему метаданные из кода/документации модуля вместо того, чтобы брать их из конфига Dist::Zilla и генерировать на их базе часть кода и большую часть документации модуля. Помимо того, что, на мой взгляд, это более разумный подход в принципе, как минимум он сильно упрощает порог входа при попытке начать использовать Dist::Zilla.
Никакой особой документации для него нет.Ну, например, есть screencast. Но ещё важнее то, что я описал выше — привычный стиль работы с модулем, который не нужно специально документировать.
В него зашито использование git и github, кому-то может не подойти.Его наверняка можно переключить на использование Mercurial. А что касается GitHub — по большому счёту ради него всё и затевалось. Один только перенос багтрекера с RT стоит того, чтобы всем этим заморочиться. Плюс намного легче отправлять и принимать pull-request-ы, чем вручную сделанные патчи. Плюс возможность устанавливать любую версию прямо из репозитория через cpanm, без заливания на CPAN. Автоматический прогон тестов через Travis CI до выкладывания на CPAN. Контроль покрытия тестами через Coveralls. … В общем, кому-то он, конечно, не подойдёт, но для многих он сильно упрощает работу.
Минилла не настраивается, гит вшит.В неё для этой цели входит PluginRemover, так что можно отключить плагины Git и подключить аналогичные для Mercurial. Теоретически — на практике я этого не проверял, возможно будут какие-то нюансы с порядком вызова плагинов.
По-моему просто указать url в git-репо вместо имени модуля. Погуглите… вот, например: https://github.com/perl-carton/carton/issues/132
Авторинг Perl модулей