« Предыдущий шагИтак, пока нас регистрируют, можно подумать о том, что-же мы будем выкладывать ;)
Думаю у вас уже есть на примете модуль, который-давно-хорошо-бы-выложить.
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