Automating software releases
Automating software releases. brian d foy August 24, 2004 Dallas/Ft. Worth Perl Mongers sponsored by Metallect. Everyone’s problems. Software has problems Problems suck time Keep you from what’s important It’s not just the code. Automate. Repetition Dull bits Discovery Notification
Automating software releases
E N D
Presentation Transcript
Automating software releases brian d foy August 24, 2004 Dallas/Ft. Worth Perl Mongers sponsored by Metallect
Everyone’s problems • Software has problems • Problems suck time • Keep you from what’s important • It’s not just the code
Automate • Repetition • Dull bits • Discovery • Notification • Monkey work
Mechanics are easy • Mechanics are easy • Simple matter of programming • Solutions are not so easy
My problems • Many Perl modules • Forgot things • Didn’t run tests • Stale source control • POD errors
Heal thyself! • Find problems before users • Avoid embarrassment • Know on day -1 • Save time • Develop process
release(1) • Created a script • Used Perl • Started small • Got a bit ugly • Put on CPAN
Releasing is easy • Have software • Want other people to use it • Just give it to them
Oh no! • Did not test software • Missing files • Old information • People complain!
Preparing is harder • Squash bugs • Test code • Test distribution • Sync source control • Update information
Development Lifecycle • Specify • Design • Implement • Test • Accept • Release
Steps • One at a time • Requirements to move on • Check • Move on
Checking • Different • types • times • reasons • Automate it!
Distribute • Multiple uploads • Announcements • Automate it!
Computers can help • Use your computer! • Figure out • want • need • should • Script checks for it
Module::Release • Ken Williams refactored release(1) • Does the same thing • Write your own scripts • Chris Nandor • Add your own functions • Module::Release::Subversion
Module::Release 2.x • Easier • Pluggable • Shareable • Automatic • Not Perl specific
Future additions • Pre-flight • Tests • Distribution tests • Source control plugins • Upload plugins • Little language