Just recently we've been adopting Scrum at Software WithStyle. One of the things you should do when doing Scrum, XP, TDD, is to release nightly, run all you tests constantly, etc, etc, etc. On our server we now have a Smalltalk image that starts up and:
- loads up the latest version of the releaser
- then runs it to load up the latest version of our application
- write out the changes from the last version to this latest version
- saves the image so that it can start again from this latest version next time
- runs all the tests
- writes out a log of all the tests that pass, fail, error
- writes out a log of # classes, # packages, # methods, # tests, # lines of code, etc
- marks the latest version in Store as 'Internal Release' and writes in the number of test passes, failures, errors
- and to top it all off, writes out a parcel with the bundle structure and database links included
This process happens every night now and since all the reports are in XML, I've knocked up some basic XSLT to make a web page to report all this information to us on a nightly basis.
And just to show off, we also graph the number of passes, failures, errors with green, orange and red lines on the front page for all internally released versions every night.
The code itself isn't entirely product neutral, there are aspects of it that are tied tightly to WithStyle, but with a bit of refactoring somebody else could enjoy the fruits of my labour.
Does any one want me to publish the Releaser to public store?
Update: I've released the Releaser to public store. Have at it :) If you need some help, email me or post on here.