February 2010

This Week in Plugins

This week we had 18 plugin releases, with the xUnit plugin managing to have a release almost every day. For this edition of TWiP I was actually able to generate the log of releases mostly automatically thanks to rpetti who contributed the script to the contiuous-blog-tools repository on GitHub.

This past week saw two new plugins, the SSH plugin and the Global Build Stats plugin, the latter of which is still in "alpha".

Links for 2010-02-25

People are more expensive than Continuous Integration servers; let’s optimise the system for them.

Sonatype freeing projects from java.net's Maven repo

Are you working on a project which uses java.net's Maven repository for deploying its artifacts?

Well, if so, there's a great opportunity opening up for you to get off that problematic repository: Sonatype is helping java.net projects move to Sonatype's hosted OSS Nexus repository, starting March 5th. We're looking into moving Hudson over but for most smaller projects, this should be a no-brainer. Problems with the java.net Maven repository are legendary and Sonatype's OSS Nexus repository is a great alternative.

Take a look and see if this can work for you.

Editor's Note: Andrew Bayer (abayer) has been a contributor to Hudson since early 2009, contributing to the ClearCase plugin, Hudson's core and a small number of other plugins. Andrew also helps Kohsuke with a lot of Hudson's project infrastructure, most notably the migration from Bugzilla on Java.net to JIRA running at issues.hudson-ci.org.

Spotlight on: SpringSource

For this week's user spotlight segment, I'm talking with Doug MacEachern of Hyperic, part of SpringSource, a division of VMware, hoping I got that dependency chain correct. Hyperic builds enterprise systems monitoring and management software and also contributes to a number of open source projects, many of which are built with Hudson. A small subsection of Hyperic's Hudson

To date I must say that Doug's use of Hudson is one of the largest and more impressive installations I've seen. I don't want to spoil the interview, but they're testing on platforms that don't even run Java. Madness! If you think you can out-do him, you can find my email information at the bottom of the interview, I'd love to hear about it!

Without further ado, Doug from SpringSource.

Links for 2010-02-24

Via the @hudsonci twitter account I typically share or "retweet" a number of links during the day, I realize a number of people either do not use Twitter or do not constantly pay attention to it. A lot of the links I find quite interesting, so I'd like to try sharing them after the fact here.

Hudson at PyCon

This past week PyCon has been going on in Atlanta, where Titus Brown gave a talk titled:

Why not run all your tests all the time? A study of continuous integration systems

Just use Hudson

Titus has some notable quotes "just use Hudson" but overall a good introduction of CI and a breakdown of some of the challenges behind continuous integration. He also does a good job going over getting started with Hudson, setting up a basic Python project that incorporates JUnit XML reporting and slaves.

"Yeah, we used Buildbot until recently, then I switched us to Hudson and my life got a lot better"

If you're using Python with Hudson, I highly recommend watching the talk (embedded below).

Would you run Hudson in the cloud?

One of my favorite bloggers on the subject of continuous integration, The Build Doctor, posed this question in a recent post:

Continuous Integration in the cloud: good idea?

The topic of running a CI server in a virtualized environment, such as with Amazon's EC2 service, is an interesting issue, particularly in the Hudson community. About 10 months ago Kohsuke announced the Hudson EC2 plugin which has seen slow, but steady development since then, including support for the Ubuntu Enterprise Cloud which was added to the plugin in a release last Monday.

As The Build Doctor and his readers point out, continuous integration is a difficult task to offload into the cloud because of the immense hardware demands constant building and testing presents. That said, Hudson does very effectively manage spinning slaves up and down on demand if you've configured it as such. Implication being: running Hudson in the cloud may be more efficient to meet peak demands without needing to run a large farm of machines.

If you're interested in trying out the EC2 plugin, check out Sonatype's post on Nexus Open Source and Hudson on EC2 might be a good start.

Would you run Hudson in the cloud?

Hudson 1.347 Released

The release of Hudson 1.347 last friday, February 19th, was a relatively "minor" one insofar that it contained an assortment of smaller fixes instead of fixes to major regressions (they weren't any to be fixed) or major features added. There were however some notable commits in this release cycle that didn't make the changelog just yet, for example godin committed an ebuild which will allow for a native package of Hudson for Gentoo Linux, joining the ranks of the existing packages for Debian/Ubuntu, FreeBSD, OpenSolaris, openSUSE and RedHat/Fedora Linux. The bundled Subversion plugin was updated and thanks to sogabe and wyukawa the Japanese translations for Hudson got some updates as well.

For Hudson developers, both plugin and core, this release contains some notable changes from mindless (a.k.a Alan Harder), a number of calls which have been deprecated for over two years have finally been pruned from the code base:

  • Hudson.addListener(JobListener), Hudson.removeListener(JobListener)
  • Entire listeners.JobListener class (replaced by ItemListener)
  • One form of DirectoryBrowser constructor
  • One form of Descriptor.configure() (with HttpServletRequest param)
  • Descriptor.convert(Map) and 4 implementations of this method, and code calling it in Descriptor.readResolve() (this code called save() whenever updating data, so there should be no remaining cases out there)

Alan's quest for removing deprecated code will likely continue for a while, but this is a good step in the right direction, keeping Hudson's internals in good working order. Worth mentioning, the influx of plugin releases in the This Week in Plugins from a couple weeks ago, was driven largely by Alan, rummaging through the code of older plugins, updating plugins left and right.

This Week in Plugins

Last week's TWIP enumerated the release of 26 different plugin, this past week has seen 19 unique releases in comparison. You might be tempted to assume that less plugin development has occurred over the past week, which isn't the case. Last week a number of the releases were "code updates", i.e. plugins being rebuilt against the latest Hudson plugin API as opposed to new features or bug-fixes. With the releases of plugins this past week, it seems a large number of the releases contained new features and bug fixes, including three new plugins!

Making their Hudson debut are the following

If you're interested in contributing to an existing plugin, or building your own, I highly recommend checking out the plugin tutorial and joining the dev@ mailing list. That said, here are this week's releases, starting with last Friday.

Spotlight on: VisFleet

For this week's user spotlight, I'm talking to Rasheed Abdul-Aziz of VisFleet Ltd. out of New Zealand. This being our second "spotlight" on a particular company, the format can still be considered beta; if you have any additional questions for Rasheed, feel free to ask them in the comments and I'll try to get Rasheed to answer.

Similar to the spotlight on ITA Software from last week, VisFleet builds business software helping their customers operate their businesses more effectively through web applications in tandem with mobile applications. While I could endlessly discuss the power and flexibility of Hudson, particularly for building web software, I'll let Rasheed do the majority of the talking, so let's get to it.