« Предыдущий шагИтак, пока нас регистрируют, можно подумать о том, что-же мы будем выкладывать ;)
Думаю у вас уже есть на примете модуль, который-давно-хорошо-бы-выложить.
1. Выберем ему имя.Для начала нужно определиться, это прагматически модуль или обычный.
Прагматический, это который похож по поведению на какую-либо из встроенных прагм (
use strict,
use open,
use lib, ...).
На мой взгляд лучшие имена для обычных пакетов, это состоящие из 2х слов, одно из которх существительное, другое - прилагательное или глагол.
Также хорошо-бы посмотреть на имеющиеся на сегодняшний день, общепринятые неймспейсы, напр.
Devel::*Хорошие имена существующих пакетов:
File::Find,
Data::Dumper,
HTTP::AsyncПлохие имена:
POE::Component::NonBlockingWrapper::Base - слишком длинное
Moose,
Catalyst - непонятно, без прочтения описания, что это такое.
Для прагматического модуля имя должно сочетаться со словом use, быть достаточно коротким и написано в нижнем регистре.
Итак, допустим имя мы выбрали (
Mod::Name).
2. Приступим к созданию дистрибутива.Я рекомендую на данном шаге сразу-же обзавестить системой контроля версий. Для тех, у кого нет собственной, можно воспользоваться публичными бесплатными:
code.google.com (svn) или
github.com (git).
Ставим Module::Starter. С ним будет установлена утилита module-starter. Запускаем без параметров, смотрим help.
Простейший вариант:
module-starter \
--mi \ # используем Module::Install
--module=Mod::Name \ # Указываем имя модуля
--author="Your CPAN Name" \ # Указываем свое CPAN-имя
--email="name@cpan.org" \ # И email
Будет создана директория Mod-Name. Это шаблон дистрибутива.
Можно залить его в таком виде в svn
Далее:
Создаем всю необходимую структуру в
lib/. это собственно ваш модуль.
Попробуем выполнить
make test (
perl Makefile.PL && make test)
Если тесты прошли нормально (
t/00-load.........1/1 # Testing Mod::Name 0.01, Perl 5.008009, /usr/local/bin/perl
t/00-load.........ok
t/boilerplate.....ok
t/pod-coverage....ok
t/pod.............ok
All tests successful.
Files=4, Tests=6, 0 wallclock secs ( 0.03 usr 0.03 sys + 0.19 cusr 0.07 csys = 0.32 CPU)
Result: PASS
) это значит, что по крайней мере 1 модуль из вашего пакета компилируется :)
В слудующем шаге мы допишем Makefile.PL и допилим тесты до состояния, когда ими удобно пользоваться.
А пока пишем в модуле
$VERSION='0.01_1' и заливаем все изменения в svn.
(Версия с подчеркиванием обозначает, что это не стабильный релиз, а альфа/бета)
Идем проверять почту, не пришло-ли уведомление о регистрации. Если пришло, можно пойти понастраивать аккаунт :))
Hint: аватары заливаются на gravatar.com, по CPAN E-Mail'у (name@cpan.org)
https://codesign.livejournal.com/46779.html