Part I: How Butlers Came into IT
“…I had this great idea of a web framework, and I wanted an excuse to actually implement it. This was around the time when everyone had his own framework, so I suppose I couldn’t help myself.”
– Kohsuke Kawaguchi, creator of Jenkins
In January 2013, RebelLabs released a report titled Why Devs <3 CI: A Guide to Loving Continuous Integration , which, in addition to extolling the virtues of building & automatically testing your app in development several times a day, also showed how to get started with 3 popular Continuous Integration servers: Jenkins, Bamboo and TeamCity (Travis CI was also given a shout out).
In this report, we wanted to focus on Jenkins/Hudson, famous scism of the CI world, which according to RebelLabs’ 2012 Developer Productivity Report is used by as many as 49% of IT organizations and is clearly the significant market power in the realm of Continuous Integration.
Jenkins is an open source project, written entirely in Java, and created by Kohsuke Kawaguchi in 2004 while at Sun Microsystems. Kohsuke, who chatted with RebelLabs in an exclusive interview (see the end of this report), initially called the project Hudson and wanted to wanted to create a small program to fix broken builds before other colleagues were able to notice the problem. Sun Microsystems found this project promising, luckily, and a community of happy CI users has evolved quickly.
“I’m calling it Hudson, because in a sense this system is like a build master in my project, and Hudson sounded like just that kind of a name.”
– Kohsuke Kawaguchi, mentioning Hudson for the first time in a 2005 blog post on Java.net.
Things Fall Apart
Fast forward to 2010, when a survey by Sonatype shows Hudson as the most popular CI server with a staggering market share of almost 72%. However, just when Hudson was on the tip of the mountain, some tensions began to arise between the new owner of Sun Microsystems, Oracle, and the developers of Hudson.
As the story goes, Oracle claimed the name “Hudson” as its trademark and forced changes in the development process of Hudson that resulted in less agile programming. Kohsuke and the developer community did not agree with the changes and eventually, in the beginning of 2011, Hudson’s code base was forked into a repository on GitHub under the new name Jenkins, and thus a new entity was born.
After this transition, most Hudson plugins were migrated to Jenkins, and according to Kohsuke in his 2011 presentation at a Jenkins User Conference, the conversion rate from Hudson to Jenkins is about 85%. Nowadays Jenkins has over 600 plugins, 50,000 active installations, being offered as a service in the cloud by a company named Cloudbees (which is where Kohsuke spends his days) and is used both by small startups and large enterprise companies. Jenkins, while being developed by a very agile community and released in short cycles, also provides long-term support releases, which is a huge benefit for larger and more conservative companies who prefer stable releases over “latest and greatest”.
Seeing as how much of the community, and the founder of the technology, have both jumped ship in order to pursue the development and maintenance of Jenkins, rather than Hudson, you can see our reason for covering it. But what are the stats behind these two alleged competitors?
Looking at the numbers: Jenkins vs. Hudson
It is always interesting to compare the activity and size of communities. Let’s take Jenkins and Hudson head to head and bring some numbers to the surface. We’d like to mention that these numbers are approximate in certain cases, especially with regards to Hudson. If Jenkins development is more or less centralized in a single location these days, Hudson has been spread across several places, like the Eclipse Foundation, GitHub and Java.net. Where possible, we used Ohloh, the open source discovery/tracker service by Black Duck to get some numbers, which are accurate as of the end of January 2013.
CODE REPOSITORY MEMBERS COUNT
APPROXIMATE NUMBER OF COMMITS OVER THE PAST 12 MONTHS
Jenkins: 2500 Core, 5450 with plugins
For his part, Kohsuke published this graph depicting a more accurate line up of commits for both Jenkins and Hudson–previous graphical representations of this had, he felt, made Jenkins commits seem even higher in number. Without commits into plugins, Jenkins averaged 41.2 commits per week, while Hudson averaged 9.7 per week.
NUMBER OF CODE CONTRIBUTORS OVER NUMBER OF CODE CONTRIBUTORS OVER
DEVELOPER MAILING LIST SIZE AND ACTIVITY
Jenkins: 1784 members, ~350 posts/month
Hudson: 448 members
TWITTER ACTIVITY AND FOLLOWERS (A GOOD SIGNAL OF COMMUNITY ACTIVITY):
@jenkinsci: 4718 tweets, 8060 followers
@hudsonci: 271 tweets, 1176 followers
USERS MAILING LIST
Jenkins: 3569 members, ~650 posts/month
Hudson: 696 members
In the IT world, community support can very often have a profound effect on the future of a tool or technology. Once Kohsuke and other members of the Hudson development team jumped ship, the community seemed to react in turn. This tweet holds nothing back:
“…the Jenkins rename is fine. Ppl use Jenkins and Hudson is now dead. The developers have spoken.” Charles Lowell @cowboyd