Image

Category:

CPAN-Авторство по шагам. Шаг 2.

« Предыдущий шаг

Итак, пока нас регистрируют, можно подумать о том, что-же мы будем выкладывать ;)
Думаю у вас уже есть на примете модуль, который-давно-хорошо-бы-выложить.

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)