Make or break time for Hudson

First Hudson milestone under Eclipse arrives

Chris Mayer
Eclipse-Foundation

The first milestone as a top-level project for the continuous integration server is a big one with over 50 new features

It was a tough year for Hudson
last year, recovering from an almighty acrimonious split. Most of
the community jumped ship to Kohsuke Kawaguchi’s fork of
the 
CI server, Jenkins which left Hudson barren of
its development team and users. But now, Hudson has returns with
3.0.0 M0 release and its undergone a bit of a makeover since its
last iteration.

The most notable change has been the shift across to the Eclipse
Foundation, quickly becoming a top-level project. Consequently,
several changes have had to be made to meet the open source
community’s guidelines.

The team have spent several labour-intensive months working from
the ground up, establishing IP cleanliness and modernising the
code. There was also the unenviable task of attempting to get rid
of over 200 third-party libraries that are GPL/LGPL
licensed, which is forbidden under Eclipse. Other mammoth tasks
included the introduction of BIRT charts for Hudson
charting needs and shifting the entire code base over to Git, as in
line with Eclipse’s mantra for 2012.

The hard work on getting Eclipse’s first milestone of
Hudson ready has been worth it though as Oracle’s Winston
Prakash
revealed how much work had been done for
M0. 
Over 50+ new features and enhancements cover:

  • Maven 3
  • Cascading Projects
  • JAXB-based REST API and plugin,
  • enhancements to
    • Parameterized Builds
    • Downstream Projects
    • User Management
    • Security and Authorization
    • UI
    • GIT support

Around 100 libraries are now meeting Eclipse specifications.
Over 350 bug fixes have been made across the full range
of Hudson, especially focused on stability, performance and the
core SCM plugins such as GIT and SVN. The standalone
container Winstone has been replaced by Jetty.

Prakash commented on the experience of rebooting Hudson:

I’m glad, we have done this. The entire process gave us a
great opportunity to clean up Hudson code base and make it easier
to maintain in the future. Personally, I gained lots experience in
understanding the innards of Hudson and get to know the good, bad,
and uglier parts of Hudson code base. 

He insists the work to make Hudson Eclipse-compliant is
not done however. Two major steps are still pending – as the team
is half-way through Contribution Questionnaires (CQ) to get
approval for test/build libraries and external Java libraries to be
bundled with Hudson. This will take 3-4 months, meaning that we
could see a final version of Hudson 3.0.0 around
May/June.

For now, the release is available to download for
testing and evaluation purposes. You can also find the source code
at Eclipse’s git
repository
. Aside from technical improvements, there is also a
new home for Hudson – The Hudson Book is
the ideal way to get started.

So, we now have two CI butlers at our beck and call. With the
Jenkins breakaway quite far in the past, let’s hope these butlers
leave each other in peace. It’s a good thing that there is now
choice for continuous integration servers – which one suits your
project is down to you!

Author
Comments
comments powered by Disqus