Slideshow transcript
Slide 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
Slide 2: Releasing code is hard...
Slide 3: actually, it’s too easy...
Slide 4: Releasing good code is hard...
Slide 5: Did I ... ? test everything disttest everything check in the sources include new files in MANIFEST update Changes and README
Slide 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
Slide 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
Slide 8: Rinse, repeat...
Slide 9: Annoy users
Slide 10: Now do that for 50 distributions
Slide 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
Slide 12: Automate!
Slide 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
Slide 14: release(1) Part of Module::Release
Slide 15: Automate steps sub test { my $self = shift; print "Checking make test... "; unless( -e 'Makefile.PL' ) { print " no Makefile.PL---skippingn"; return; } my $tests = $self->run( "$self->{make} test 2>&1" ); die "nERROR: Tests failed!n$testsnn" unless $tests =~ /All tests successful/; print "all tests passn"; }
Slide 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;
Slide 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)
Slide 18: New problem, new step
Slide 19: Did I update $VERSION? Anyone want to write Test::GreaterVersion?
Slide 20: Future directions Pluggable modules Support for more checks Not just for Perl More canned scripts working title: Starburst




Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 3 (more)