views:

121

answers:

3

Everyone managing open-source-software runs into the problem, that with the time the process of releasing a new version gets more and more work. You have to tag the release in your version-control, create the distributions (that should be easy with automated builds), upload them to your website and/or open-source-hoster. You have to announce the new release with nearly the same message on chosen web-forums, the news-system on sourceforge, mailinglists and your blog or website. And you have to update the entry of your software on freshmeat. Possible more tasks have to be done for the release.

Do you developed techniques to automate some of these tasks? Does software exist that supports you with this?

+1  A: 

For my Perl stuff, I wrote Module::Release. In the top-level directory I type a single command:

% release

If checks several things and dies if anything is wrong. If everything checks out, it uploads the distribution.

It automates my entire process:

  • Test against multiple versions of Perl
  • Test distribution files
  • Check the status of source control
  • Check for code and distribution quality metrics
  • Update changes file
  • Determine new version number
  • Release code to multiple places
  • Tag source control with new version number

Everyone seems to write their own release automator though. Most people like their process how they like their process, so general solutions don't work out that well socially.

brian d foy
It does some work, but seems to be restricted to Perl-projects (checks with different Perl-versions).
Mnementh
Yes, it's my release tool for Perl modules. That's why it does Perl stuff. However, it's a system. You can write your own release scripts with it. You don't have to use it with Perl modules.
brian d foy
At least worth a look. My Perl-knowledge is a little bit (or a little bit more) rusty, but maybe it can be tweaked for my uses. Thanks for the hint, I will take a look.
Mnementh
+1  A: 

Pragmatic Project Automation shows how to do all of that. They use Ant for practically everything in the book, so if you know Ant you can make different targets to do any step in the build-release cycle.

Bill the Lizard
I use and I love ant. So another book to read. Thanks for the hint.
Mnementh
+1  A: 

Brad Fitzpatrick has ShipIt which is a Perl program to automate releases. There's slightly more info in his original announcement.

Greg Hewgill