makefileを作る。
$ perl Makefile.PL Cannot determine perl version info from lib/******************************.pm Writing Makefile for ********************************** Writing MYMETA.yml and MYMETA.json
makeする。
$ make Skip blib/lib/**********************************.pm (unchanged) Skip blib/lib/**********************************.pm (unchanged) Skip blib/lib/***********************************.pm (unchanged) Skip blib/lib/***********************************.pm (unchanged) Skip blib/lib/***************************************.pm (unchanged) Skip blib/lib/******************************.pm (unchanged) Skip blib/lib/**********************************.pm (unchanged) Skip blib/lib/*************************************.pm (unchanged) Skip blib/lib/***************************************.pm (unchanged) Skip blib/lib/*****************************************.pm (unchanged) Manifying blib/man3/**********************************.3pm Manifying blib/man3/******************************************.3pm
testする。
$ make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t t/00_compile.t .. ok All tests successful. Files=1, Tests=1, 0 wallclock secs ( 0.03 usr 0.00 sys + 0.07 cusr 0.00 csys = 0.10 CPU) Result: PASS
配布用ディレクトリを作りその中でmake testする。
$ make disttest
rm -rf ******************************-0.07
/usr/bin/perl "-Iinc" "-MExtUtils::Manifest=manicopy,maniread" \
-e "manicopy(maniread(),'******************************-0.07', 'best');"
mkdir ******************************-0.07
mkdir ******************************-0.07/inc
mkdir ******************************-0.07/inc/Test
mkdir ******************************-0.07/lib
mkdir ******************************-0.07/lib/**********
mkdir ******************************-0.07/lib/*****************
mkdir ******************************-0.07/lib/***********************
mkdir ******************************-0.07/lib/**************************
mkdir ******************************-0.07/lib/******************************
mkdir ******************************-0.07/inc/Module
mkdir ******************************-0.07/inc/Module/Install
mkdir ******************************-0.07/inc/Test/Builder
mkdir ******************************-0.07/xt
mkdir ******************************-0.07/inc/Test/Base
mkdir ******************************-0.07/t
cd ******************************-0.07 && /usr/bin/perl "-Iinc" Makefile.PL
Cannot determine perl version info from lib/******************************.pm
Checking if your kit is complete...
Looks good
Writing Makefile for **********************************
Writing MYMETA.yml and MYMETA.json
cd ******************************-0.07 && make LIBPERL_A="libperl.a" LINKTYPE="dynamic" PREFIX="/usr/local"
make[1]: Entering directory `/home/****************************************************************************-0.07'
cp lib/**********************************.pm blib/lib/**********************************.pm
cp lib/**********************************.pm blib/lib/**********************************.pm
cp lib/***********************************.pm blib/lib/***********************************.pm
cp lib/***********************************.pm blib/lib/***********************************.pm
cp lib/***************************************.pm blib/lib/***************************************.pm
cp lib/******************************.pm blib/lib/******************************.pm
cp lib/**********************************.pm blib/lib/**********************************.pm
cp lib/*************************************.pm blib/lib/*************************************.pm
cp lib/***************************************.pm blib/lib/***************************************.pm
cp lib/*****************************************.pm blib/lib/*****************************************.pm
Manifying blib/man3/**********************************.3pm
Manifying blib/man3/******************************************.3pm
make[1]: Leaving directory `/home/**************/******************************/******************************-0.07'
cd ******************************-0.07 && make test LIBPERL_A="libperl.a" LINKTYPE="dynamic" PREFIX="/usr/local"
make[1]: Entering directory `/home/**************/******************************/******************************-0.07'
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t
t/00_compile.t .. ok
All tests successful.
Files=1, Tests=1, 0 wallclock secs ( 0.04 usr 0.00 sys + 0.06 cusr 0.00 csys = 0.10 CPU)
Result: PASS
make[1]: Leaving directory `/home/**************/******************************/******************************-0.07'
配布アーカイブを作成する。
$ make dist
rm -rf ******************************-0.07
/usr/bin/perl "-Iinc" "-MExtUtils::Manifest=manicopy,maniread" \
-e "manicopy(maniread(),'******************************-0.07', 'best');"
mkdir ******************************-0.07
mkdir ******************************-0.07/inc
mkdir ******************************-0.07/inc/Test
mkdir ******************************-0.07/lib
mkdir ******************************-0.07/lib/WebService
mkdir ******************************-0.07/lib/WebService/Simple
mkdir ******************************-0.07/lib/WebService/Simple/Yahoo
mkdir ******************************-0.07/lib/WebService/Simple/Yahoo/JP
mkdir ******************************-0.07/lib/WebService/Simple/Yahoo/JP/API
mkdir ******************************-0.07/inc/Module
mkdir ******************************-0.07/inc/Module/Install
mkdir ******************************-0.07/inc/Test/Builder
mkdir ******************************-0.07/xt
mkdir ******************************-0.07/inc/Test/Base
mkdir ******************************-0.07/t
tar cvf ******************************-0.07.tar ******************************-0.07
******************************-0.07/
******************************-0.07/MYMETA.yml
******************************-0.07/README
******************************-0.07/MANIFEST
******************************-0.07/META.yml
******************************-0.07/xt/
******************************-0.07/xt/01_podspell.t
******************************-0.07/xt/03_pod.t
******************************-0.07/xt/02_perlcritic.t
******************************-0.07/xt/perlcriticrc
******************************-0.07/Changes
******************************-0.07/MYMETA.json
******************************-0.07/t/
******************************-0.07/t/00_compile.t
******************************-0.07/lib/
******************************-0.07/lib/***********
******************************-0.07/lib/******************
******************************-0.07/lib/************************
******************************-0.07/lib/***************************
******************************-0.07/lib/******************************.pm
******************************-0.07/lib/*******************************
******************************-0.07/lib/***********************************.pm
******************************-0.07/lib/***********************************.pm
******************************-0.07/lib/***************************************.pm
******************************-0.07/lib/**********************************.pm
******************************-0.07/lib/*************************************.pm
******************************-0.07/lib/*****************************************.pm
******************************-0.07/lib/**********************************.pm
******************************-0.07/lib/***************************************.pm
******************************-0.07/lib/**********************************.pm
******************************-0.07/Makefile.PL
******************************-0.07/inc/
******************************-0.07/inc/Spiffy.pm
******************************-0.07/inc/Module/
******************************-0.07/inc/Module/Install/
******************************-0.07/inc/Module/Install/TestBase.pm
******************************-0.07/inc/Module/Install/Can.pm
******************************-0.07/inc/Module/Install/Include.pm
******************************-0.07/inc/Module/Install/WriteAll.pm
******************************-0.07/inc/Module/Install/AuthorTests.pm
******************************-0.07/inc/Module/Install/Base.pm
******************************-0.07/inc/Module/Install/Metadata.pm
******************************-0.07/inc/Module/Install/Fetch.pm
******************************-0.07/inc/Module/Install/Win32.pm
******************************-0.07/inc/Module/Install/Makefile.pm
******************************-0.07/inc/Module/Install.pm
******************************-0.07/inc/Test/
******************************-0.07/inc/Test/More.pm
******************************-0.07/inc/Test/Builder.pm
******************************-0.07/inc/Test/Base.pm
******************************-0.07/inc/Test/Builder/
******************************-0.07/inc/Test/Builder/Module.pm
******************************-0.07/inc/Test/Base/
******************************-0.07/inc/Test/Base/Filter.pm
rm -rf ******************************-0.07
gzip --best ******************************-0.07.tar
gzip: ******************************-0.07.tar.gz already exists; do you wish to overwrite (y or n)? y
cpan-uploadコマンドを使うにはホームディレクトリに.pauseファイルが必要。このフォーマットは以下。
$ cat ~/.pause user ********* password ***************** mailto = *******@***********
配布用アーカイブをアップロードする。
$ cpan-upload -v ******************************-0.07.tar.gz registering upload with PAUSE web server ----- REQUEST BEGIN ----- Authorization: Basic ************************************ Content-Length: 47196 Content-Type: multipart/form-data; boundary=xYzZY ----- REQUEST END ------- POSTing upload for ******************************-0.07.tar.gz Looks OK! ----- RESPONSE BEGIN ----- Cache-Control: no-cache Connection: close Date: Tue, 08 Nov 2011 03:56:49 GMT Pragma: no-cache Accept: * Server: Apache Vary: accept-encoding Content-Length: 24476 Content-Type: text/html; charset=ISO-8859-1 Expires: Tue, 08 Nov 2011 03:56:49 GMT Last-Modified: Tue, 08 Nov 2011 03:56:49 GMT Client-Date: Tue, 08 Nov 2011 03:56:49 GMT Client-Peer: 195.37.231.65:80 Client-Response-Num: 1 Link: </pause/pause_favicon.jpg>; rel="shortcut icon"; type="image/jpeg" Link: </pause/pause.css>; rel="stylesheet"; title="pause"; type="text/css" Title: PAUSE: add_uri ----- RESPONSE END ------- PAUSE add message sent ok [200]