A long time ago I started to use continuous integrations (CI) servers starting with anthill and moving via Apache Continuum and Atlassian Bamboo to Hudson. Since then I feel that a project without CI builds is missing a crucial bit of infrastructure and communication tool, that can not be underestimated in value. And then earlier this year the opportunity to write on a book about Hudson presented itself to me…
Since I enjoy writing and mentoring, there was no holding me back. Documenting a powerful software like Hudson is an endless job (especially if it changes..) and we are now just at the beginning. One thing I love about documenting software is that if I think something should be done better I can just go and fix it. And that is exactly what I started doing whenever I felt like “this is dumb” when documenting.
So now I am a committer on Hudson and help out where I can. Since the project lives on github it is pretty easy to follow the usual clone, branch, hack, commit, pull request sort of flow and thanks to Maven the build is as easy as .. surprise .. mvn clean install. I also watch the mailing lists, work on the wiki and dabble around with the issue tracker.
Due to all the turmoil the project has gone through with the split into Hudson and Jenkins including key people moving to Jenkins and the relatively long history of the project itself there is still a lot of clean up to do. For example different url’s like hudson-labs.org or nabble links are sprinkled all over the help documentation, the wiki and the issue tracker and redirect to Jenkins or often lead into nowhere useful.
Another thing is that the issue tracker is still full of issues for various plugins, some of which have moved and maintain their issue tracking now in Jenkins, github or some other place. So if you have any issue assigned to yourself or know that e.g. a plugin is tracked somewhere else, let me know. I will just close them all. I already did some bulk changes unassigning issues causing a flood of emails so I might as well keep ticking people off that way
In terms of changes Hudson is on a roll at the moment:
- the new Maven 3 integration from Sonatype is coming to the next beta release and seriously rocks
- the git plugin will be part of the default distribution
- all L/GPL dependencies are moved out of core and refactored to use extension points as part of the work to move to the Eclipse foundation
- a whole bunch of bug fixes flowing into each release following a regular QA and release cycle
- potentially great side projects like a huge refactor of the core done by Winston which is moving stapler and jelly dependencies out as much as possible and therefore and allowing better REST/API support and different view layers in the future
Documenting the installers recently got me to try them out and I ended up fixing them with Winston with some work still ongoing. I want to make the binary packages first class citizens as they deserve to be since they are the least hassle for the Hudson administrator. Should we change them to run in a container like tomcat or jetty by default? And/or proxy it behind apache or nginx rather than using the plain executable war with the embedded winstone? Or provide different packages? Oh boy.. so much to learn still. I love it.
By the way with the move of Hudson to the Eclipse Foundation happening hopefully soon we have a host of changes ahead of us again. I am hoping that this will strengthen the project even more. The work of a bunch of regular full time committers should allow us to get some awesome work done. I am excited to be part of the mad competition in the CI space with rocking products like TeamCity, Bamboo, Jenkins and a whole bunch of others and last but definitely not least Hudson.
Together we can make continuous integration, and even better continuous deployment, the norm and not the exception.
But that is a long road ahead – onwards..
PS: The book is still in alpha quality but we will make it available with the upcoming beta release of Hudson that will include the Maven 3 integration. Or you can have a peek now and give me some feedback. Later we will hopefully completely open source the book as well.