Archive for the ‘Configuration Management’ Category

Hudson: The right choice?

1 June 2008

One of the things to consider when thinking about switching tools is “How long will it last?”. CruiseControl is a mature open source product, well established with a large user base and several developers.
Hudson in comparison is relatively new, so I have no idea about the adoption and seems to be mainly Kohsuke Kawaguchi’s pet project.
Imagine my excitement, when I read this week on his blog that he is now working full time on Hudson. I think, there are great things to come for Hudson.


Happy with Hudson

1 June 2008

I’ve been using Hudson as a continuous integration server now for about a week and I am pretty happy with it.
Currently, I run CruiseControl on one machine and Hudson on another one. Both are building three branches of a large Java project from a Subversion repository (trunk, current release, and an integration branch for the current release). During the last week, we had two broken builds due to incomplete commits to the repository, which both systems reported within half an hour. And both systems reported, when the build was fixed again.
So, both systems fulfill their main purpose.

In addition, Hudson has some features, that I didn’t actually miss in CruiseControl until I discovered them in Hudson:

  • A currently ongoing build can be stopped from the UI. Hudson is quite responsive here: Usually, this only takes a couple of seconds. It seems as if you don’t have to wait until the current ant target is completed.
  • There is a “Shutdown Mode”. Once activated, no new projects are build. In CruiseControl, I usually waited until the svn update within the build file was complete and then killed the process.
  • Hudson projects handle svn updates and checkouts themselves. I always found CruiseControl lacking in this regard. Even though it is easy to have a target in a special build file to update the checked-out project, why not let the tool do the job? To set up a new project in CruiseControl, you need to add the project to the configuration and check-out the sources. In Hudson you create the project or duplicate it from an existing project (quite handy!) and run the project. Hudson takes care of the check-out.
  • Hudson handles removing the checked-out copy when deleting a project.

Hudson: Found the mappings between user names in SCM and e-mail addresses

19 May 2008
I finally found the mappings between user names from the SCM and the e-mail addresses.
After my post about “how easy everything in Hudson” is, the only explanation is that I am either blind or it is too obvious:
Main page > People > {choose a user}
And there it is on the left side: A “configure” link that leads you to a page where you can enter the e-mail address.

Hudson: Love on first sight?

18 May 2008
I recently discovered Hudson the “Extensible continuous integration engine” and fell in love with it.

Currently, I’m using CruiseControl for continuous integration and Anthill OS for our nightly build. CruiseControl does an incremental build on our Java sources, so that developers usually get feedback about their latest commits in less than an hour. The nightly Anthill build is a clean build that performs additional steps like generating user documentation or building the installers and takes much longer.

Lately, I’ve been looking for a replacement for Anthill OS and for CruiseControl. Up to now, I’ve taken a look at Continuum and Luntbuild and now at Hudson. I’ve started with trying to replace CruiseControl due to the shorter turn-around cycles for the CI build and so far, I’ve been very pleased with Hudson:

  • Setting up the project was pretty easy.
  • Working with Hudson is a pleasure. It’s amazing how aesthetically pleasing and consistent the web ui is.
  • Hudson seems faster in some respects than CruiseControl, e.g. the summary reports for PMD errors.

I’m just missing two features (or haven’t been able to find them yet):

  • Every so often (e. g. every tenth build) I’d like to do a clean rebuild of the project
  • There seems to be no user mapping between SCM users and e-mail addresses. When the build breaks, I’d like to inform the developers who committed sources since the last successful build about it.

Let’s see how long this love story lasts…