Анхайр с ыплыкитетом (codesign) wrote,
Анхайр с ыплыкитетом
codesign

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)
Tags: cpan, perl
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 6 comments