CPAN Module Maintenance

3,411 views

Published on

The tools that I use to maintain my CPAN modules.

Published in: Technology, Art & Photos
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,411
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
32
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

CPAN Module Maintenance

  1. 1. Maintaining CPAN Modules
  2. 2. Dave Cross [email_address]
  3. 3. CPAN is Perl's Killer App
  4. 4. 16,645 modules 7,695 authors 6,129 MB 244 mirrors
  5. 5. I have 24 distributions on CPAN
  6. 6. 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
  7. 7. Not actually a huge number
  8. 8. MIYAGAWA has 149 ADAMK has 201
  9. 9. But 24 is enough to make maintenance a chore
  10. 10. Some things you don't need to worry about
  11. 11. Distribution
  12. 12. Installation
  13. 13. Testing
  14. 14. Cross-platform Testing
  15. 15. Some things you do need to worry about
  16. 16. Bug tracking
  17. 17. Source code control
  18. 18. Maintenance and enhancements
  19. 19. So what do you do?
  20. 20. Get help
  21. 21. Use other people's tools
  22. 22. Bug tracking
  23. 23. RT is awesome
  24. 24. Every CPAN module gets an RT queue
  25. 25. rt.cpan.org
  26. 26. Mention that in your module documentation
  27. 27. You'll still get email
  28. 28. RT accepts reports by mail
  29. 29. TIP: Redirect, don't forward
  30. 30. TIP: Send bugs to yourself
  31. 31. Use RT to remember everything you need to do to your modules
  32. 32. Source code control
  33. 33. I used to host my own Subversion repository
  34. 34. Far too much like hard work
  35. 35. Git is Good
  36. 36. Github is Great
  37. 37. Free source code repository for Open Source projects
  38. 38. Distributed source code control
  39. 39. Easy for people to fork and patch your code
  40. 40. Patches are better than bug reports
  41. 41. Patches with associated tests are even better
  42. 42. Github also gives you a wiki
  43. 43. Github also gives you a bug tracker
  44. 44. I ♥ Github
  45. 45. Maintenance and Enhancement
  46. 46. Let's trace a typical change
  47. 47. Change request comes in
  48. 48. RT ticket or CPAN test failure or I have an idea
  49. 49. Check out latest revision from Github
  50. 50. Write tests
  51. 51. Yes Write tests before writing code
  52. 52. Tests tell you when you are finished
  53. 53. Write code until tests pass
  54. 54. Write tests until ALL tests pass
  55. 55. Don't care which editor you use
  56. 56. But use a decent programmer's editor
  57. 57. Take time to configure it to your tastes
  58. 58. Have tests to test quality of distribution
  59. 59. Test::Pod Test::Pod::Coverage Devel::Cover
  60. 60. Tools to monitor quality of code
  61. 61. Perl::Tidy Perl::Critic
  62. 62. Commit changes to Github
  63. 63. Tag for release e.g. RELEASE_1.07
  64. 64. Build distribution upload to CPAN (cpan-upload)
  65. 65. PAUSE takes care of the rest
  66. 66. I also release to my web site code.mag-sol.com
  67. 67. Code available on Github github.com/davorg
  68. 68. Brief aside on building distributions
  69. 69. ExtUtils::MakeMaker Module::Build Module::Install
  70. 70. Helpful stuff on CPAN that I should really investigate
  71. 71. Module::Starter
  72. 72. Module::Release
  73. 73. Maintaining CPAN module need not be hard work
  74. 74. This is supposed to be fun
  75. 75. Plenty of help out there
  76. 76. Plenty of tools to use
  77. 77. Please join in

×