Maintaining
CPAN
Modules
Dave Cross
[email protected]
CPAN is
Perl's
Killer App
16,645 modules
7,695 authors
6,129 MB
244 mirrors
I have 24
distributions
on CPAN
Array::Compare AudioFile::Info AudioFile::Info::MP3::ID3Lib Audiofile::Info::MP3::Info AudioFile::Info::MP3::Tag AudioFile::Info::Ogg::Vorbis::Header AudioFile::Info::Ogg::Vorbis::Header::PurePerl Calendar::Simple Guardian::OpenPlatform::API Net::Backpack Number::Fraction Parse::RPM::Spec Perlanet Symbol::Approx::Sub Template::Plugin::AudioFile::Info Template::Plugin::RPM2 Template::Plugin::XML::Feed Tie::Hash::Cannabinol Tie::Hash::FixedKeys Tie::Hash::Regex WWW::Shorten WWW::Shorten::Qurl WWW::Shorten::Qwer WWW::Shorten::SnipURL
Not actually
a huge
number
MIYAGAWA has 149
ADAMK has 201
But 24
is enough
to make
maintenance
a chore
Some things
you don't
need to
worry about
Distribution
Installation
Testing
Cross-platform
Testing
Some things
you do
need to
worry about
Bug tracking
Source code control
Maintenance
and
enhancements
So what
do you
do?
Get help
Use other
people's
tools
Bug tracking
RT is
awesome
Every
CPAN module
gets
an RT queue
rt.cpan.org
Mention that
in your module
documentation
You'll still
get email
RT accepts
reports
by mail
TIP:
Redirect,
don't forward
TIP:
Send bugs
to yourself
Use RT
to remember
everything
you need to do
to your modules
Source code control
I used to host
my own
Subversion repository
Far too much
like hard work
Git
is
Good
Github
is
Great
Free source code repository
for Open Source projects
Distributed
source code
control
Easy for
people to
fork and patch
your code
Patches are
better than
bug reports
Patches with
associated tests
are even better
Github also
gives you
a wiki
Github also
gives you
a bug tracker
I Github
Maintenance
and
Enhancement
Let's trace
a typical
change
Change
request
comes in
RT ticket
or
CPAN test failure
or
I have an idea
Check out
latest
revision
from Github
Write tests
Yes
Write tests
before
writing code
Tests
tell you
when you are
finished
Write code
until
tests pass
Write tests
until
ALL tests pass
Don't care
which editor
you use
But use
a decent
programmer's
editor
Take time
to configure it
to your tastes
Have tests
to test
quality
of distribution
Test::Pod
Test::Pod::Coverage
Devel::Cover
Tools
to monitor
quality
of code
Perl::Tidy
Perl::Critic
Commit
changes
to Github
Tag for
release
e.g. RELEASE_1.07
Build
distribution
upload
to CPAN
(cpan-upload)
PAUSE
takes care
of the rest
I also
release to
my web site
code.mag-sol.com
Code available
on Github
github.com/davorg
Brief aside
on building
distributions
ExtUtils::MakeMaker
Module::Build
Module::Install
Helpful stuff
on CPAN
that I
should really
investigate
Module::Starter
Module::Release
Maintaining
CPAN module
need not
be hard work
This is
supposed to
be fun
Plenty
of help
out there
Plenty
of tools
to use
Please
join
in