« Ïðåäûäóùèé øàãÈòàê, ïîêà íàñ ðåãèñòðèðóþò, ìîæíî ïîäóìàòü î òîì, ÷òî-æå ìû áóäåì âûêëàäûâàòü ;)
Äóìàþ ó âàñ óæå åñòü íà ïðèìåòå ìîäóëü, êîòîðûé-äàâíî-õîðîøî-áû-âûëîæèòü.
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