Thursday, May 5, 2011

More detailed thoughts on Jenkins, Hudson, Eclipse, etc

I've had a night to sleep on yesterday's news that Oracle has proposed donating the Hudson project, including their trademark on the name, to Eclipse, and my thoughts have become a bit more coherent. I'll readily admit that coming into the office to find a plethora of press pieces on Oracle's proposal flying past me on Twitter was a little overwhelming, especially when I was then asked for comment by Infoworld. I spent a while slaving over the right thing to say, and I still believe what I said then: this move is, if anything, a statement of the success of the Jenkins community since the split. But that's not what people are asking - they want to know if this means a reunion is in the cards. And honestly, I don't know.

Would I like to see a reunion? On the right terms, I definitely would. But yeah, "on the right terms" is a bit loaded. There are technical and philosophical questions that would need to be resolved. For example, I firmly believe that Jenkins' history of rapid iteration of releases is essential to the project's distinctive character and success. There's definitely a need for a less bleeding edge, stable release alongside the weekly release, which we've addressed with the new stable branch releases on Jenkins, but I really believe the rapid releases bring a ton of value to the table and need to be continued. Another area of concern for me with the Hudson project is its comparatively narrow focus on Java continuous integration. Jenkins (and pre-split Hudson before it) is not Java-specific at all - while the plugin ecosystem for Java projects may be more mature than that for other languages/platforms/etc, there are a ton of Jenkins users out there running Python, Ruby, Objective-C, you name it. I don't know if the companies now working on Hudson are interested in that broad-based usage, given their commercial focus on Java development.

There are also legitimate questions as to what the right governance model is for a project like this - especially given the move of Hudson since the split to corporate-sponsored work as compared to the more independent developer-driven Jenkins (with the obvious caveat of Kohsuke, as I'll get into shortly). What's right for one scenario isn't necessarily right for the other, and I don't know what the right middle ground would be, or if there is such a thing.

But more important than any of that, to me, is recognition of Kohsuke's role in the project. Kohsuke created it, Kohsuke has written the overwhelming majority of the code, Kohsuke has done an astonishing amount of work to increase its adoption, its range, its reliability. While Jenkins now has nearly a hundred committers to core and the plugins living in the Jenkins organization on GitHub, I don't think it's an exaggeration to say that Kohsuke is the one irreplaceable component of the whole project and community. I'm personally in awe of him. If a reunion were to occur and there'd be any sort of "lead" role established in the project, I can't imagine anyone but Kohsuke filling that role.

Then there's the political aspects - as I said on Twitter, if a reunion is really what people want, then they need to actually do something about it. Telling the press that you'd love to see the other side come to you (implicitly on your terms) isn't going to cut it - and I'm definitely guilty of that. It's a natural human instinct to want to be the winner when there's a conflict, but no reunion is going to be possible if one side insists on a PR victory over the other. Compromises will need to be made, and even then, reconciliation may not be possible for entirely legitimate reasons, not simply because one side is the good guy and the other is not. It's entirely possible that the two projects have diverged enough in their intentions and cultures that they can't, and shouldn't, be brought back together. If that's the case, so be it. But if the Jenkins community and Hudson community are willing to reach out and try to find a middle ground, I think that's worth trying.

(note - this is just me talking. I'm not representing Cloudera, or the Jenkins governance board, or anything but myself.)

3 comments:

  1. Have you posted these thoughts on the Eclipse proposal forum? That would appear to be the place to have that discussion. After all, the proposal does ask for interested parties to discuss it there.

    Your points about KK are valid as well - have you proposed that on the forum?

    ReplyDelete
  2. Still thinking things through, waiting to have a discussion with the rest of the Jenkins community - like I said, I don't speak for the project, I just speak for myself, but I'm tangled up in the project thoroughly enough that me posting anything at the Eclipse forum would have a whiff of "Here's what Jenkins says". Which, at least as of this point, I don't want. I just wanted to get my thoughts down somewhere for now.

    ReplyDelete
  3. HI Andrew, I got carried away in my response. So here it is over here: http://milesparker.blogspot.com/2011/05/eclipse-community-and-victory-over.html :)

    ReplyDelete