CPAN Module Maintenance
Upcoming SlideShare
Loading in...5

CPAN Module Maintenance



The tools that I use to maintain my CPAN modules.

The tools that I use to maintain my CPAN modules.



Total Views
Views on SlideShare
Embed Views



2 Embeds 3 2 1


Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

CPAN Module Maintenance CPAN Module Maintenance Presentation Transcript

  • Maintaining CPAN Modules
  • Dave Cross [email_address]
  • 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
  • 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 available on Github
  • 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