Your SlideShare is downloading. ×
0
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Managing Complexity with Module::Release
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Managing Complexity with Module::Release

2,759

Published on

Automating Perl module release with Module::Release, including distribution verification, automating testing, and anything else you need to check before you release your module on the world.

Automating Perl module release with Module::Release, including distribution verification, automating testing, and anything else you need to check before you release your module on the world.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,759
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Managing Complexity with Module::Release brian d foy, Stonehenge Consulting Ser vices brian@stonehenge.com Nordic Perl Workshop June 16, 2006 www.stonehenge.com
  • 2. Releasing code is hard...
  • 3. actually, it’s too easy...
  • 4. Releasing good code is hard...
  • 5. Did I ... ? test everything disttest everything check in the sources include new files in MANIFEST update Changes and README
  • 6. Then I have to... upload to PAUSE claim in PAUSE upload to Sourceforge overly-complicated Sourceforge file release tag the release in source control announce the release
  • 7. When I find out... what the PAUSE indexer thinks what CPAN Testers think if I’m missing something in PREREQ_PM if I’ve included too little or too much how poor my kwalitee is
  • 8. Rinse, repeat...
  • 9. Annoy users
  • 10. Now do that for 50 distributions
  • 11. I make mistakes because... Repetitive tasks are boring Focused on bug squashing Want to release code Need to fix a different module Want to do something else Want to do anything else
  • 12. Automate!
  • 13. Computers love... doing the same thing over and over(?: and over)+ doing it the same way every time doing it again if I mess up
  • 14. release(1) Part of Module::Release
  • 15. Automate steps sub test { my $self = shift; print quot;Checking make test... quot;; unless( -e 'Makefile.PL' ) { print quot; no Makefile.PL---skippingnquot;; return; } my $tests = $self->run( quot;$self->{make} test 2>&1quot; ); die quot;nERROR: Tests failed!n$testsnnquot; unless $tests =~ /All tests successful/; print quot;all tests passnquot;; }
  • 16. Create process my $release = Module::Release->new( %params ); $release->clean; $release->build_makefile; $release->test; $release->dist; $release->dist_test; $release->check_cvs; $release->clean; $release->build_makefile; $release->dist; $release->check_for_passwords; $release->ftp_upload; $release->pause_claim;
  • 17. Fearless releases Problems are fatal Errors tell me what to fix Nothing updates until everything is good Too bad there isn’t unrelease(1)
  • 18. New problem, new step
  • 19. Did I update $VERSION? Anyone want to write Test::GreaterVersion?
  • 20. Future directions Pluggable modules Support for more checks Not just for Perl More canned scripts working title: Starburst

×