Make or break time for Hudson
First Hudson milestone under Eclipse arrives
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
- 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!