On Saturday, the relationship between Oracle and a substantial portion of the Hudson developer community turned a new corner as unhappy coders voted to change the project name and reassert community governance over the project. Oracle's response? Don't let the door hit you on the way out, forkers.
The vote's outcome came as little surprise to Java watchers who watched Oracle, the commercial sponsor of the Hudson project, dig in their heels while negotiating with Hudson developers about the future governance path of Hudson.
The community vote this weekend specifically addressed this issue: should Hudson be renamed to Jenkins so the project's infrastructure could remain in the hands of the developers working on it? The vote results were crystal clear: 214 voted to rename the project, with 14 voting against the idea.
This conflict all started back in the Fall of 2010 when Hudson developers, frustrated with the performance of hosting their project on the Java.net infrastructure, decided to migrate the project to GitHub. The move came after a miscommunication about a planned internal migration from older Java.net resources to Java.net's Kenai system left Hudson developers unexpectedly locked out.
When they discovered that their access to the Hudson source code was suddenly blocked for no apparent reason, the Hudson development team was upset. Eventually, miscommunication was discovered, but not before Hudson founder Kohsuke Kawaguchi put forth the proposal that since the mailing lists were already being migrated, and with yet another problem with Java.net, why not just finish the move and get the source code off Java.net and onto GitHub?
Hearing no major objections from the rest of the Hudson community to Kawaguchi's proposal, the Hudson team made plans to switch their code repositories over to GitHub on November 30.
But the Hudson code initially remained on the Java.net servers, because Oracle Sr VP of Tools and Middleware Ted Farrell requested that Hudson needed to stay on Java.net for the sake of the larger Hudson user community, which hadn't been heard from yet about a move to GitHub.
This seemed reasonable. But then Farrell kept writing and stated that Hudson would stay on Java.net, and any move to host it elsewhere would be considered a fork.
Which was not what the community had in mind. Indeed, they made efforts to prevent such a split.
Jenkins (née Hudson) developer Andrew Bayer had initially reported that Oracle and the Hudson team seemed to be backing away from the edge:
"These talks have in many ways been fruitful--we came to working agreements with Oracle on the project infrastructure (such as mailing lists and SCM repository location), code review policy for Hudson core, and perhaps most significantly, a governance structure for the project going forward. Some issues are not yet entirely resolved, such as questions on restrictions on third party dependency licenses," Bayer wrote.
Unfortunately, one issue remained a sticking point, which turned out to be unresolvable.
"But one issue, which we feel is the most significant issue of all, one for which we now believe no resolution is possible: the rights to the name Hudson," Bayer stated.
Oracle holds the trademark on "Hudson" in the US and EU and is unwilling to give up those rights. The Jenkins team members were concerned that eventually, despite Oracle's verbal assurances, Oracle would retract the naming rights for Hudson at any time.
"In short, we'd be living under a sword of Damocles, regardless of the goodwill of the individuals we've been negotiating with at Oracle--Hudson as a project would be beholden to Oracle's whims for its continued use of its own name, and we believe that's not viable," Bayer wrote.
Which led to this weekend's vote to rename Hudson to Jenkins and ultimately transfer the ownership of the Jenkins trademark to the Software Freedom Conservancy.
The Jenkins team also proposed to move the the code for their project away from all Oracle-owned and -hosted servers and will create an interim governance board for the project, "consisting of three members--myself, [Hudson founder] Kohsuke [Kawaguchi] and, if Oracle elects to remain involved, Winston Prakash, the Oracle engineer working on Hudson," Bayer indicated before the vote.
However, Oracle's or Prakash's participation on Jenkins seems highly unlikely, given that Prakash was on the byline for the Hudson project's official response to the vote, posted on the newly redesigned Hudson website:
"Many of you may be aware that Andrew Bayer and Cloudbees (where Kohsuke Kawaguchi now works) have confirmed their intent to fork Hudson into a new community. We want the Hudson community to know that we have a dedicated team that includes people from Oracle, as well as some of our partners and current Hudson community members who will continue to build and grow the Hudson project and community. Your current installations will continue to run fine, and you won't need to change any code. You can still come to http://www.hudson-ci.org/ for all things Hudson," Prakash wrote.
Oracle must have known which way the vote was going to go, since the timing of the new Hudson site design falls squarely around the time of the vote. A new web site, they seem to be thinking, will gloss over the fact that a vital chunk of the Hudson community has just left the Hudson project.
What is frustrating during this entire incident was Oracle's consistent stance that this was always going to be a fork if the community did not side with them. This is counter to every public statement made by Bayer, Kawaguchi, and CloudBees, who were insistent that Oracle was always welcome to join the Jenkins community or relinquish the Hudson trademark. Either way, the community wasn't trying to exclude Oracle--they just wanted to have more say in Hudson's infrastructure. This was something Oracle was not willing to do.
That Oracle doesn't seem to take such a community stance seriously was communicated in a post-vote message to the Hudson developer mailing list from Oracle Product Manager Susan Duncan:
"All, Now that the fork has happened, we can start to put this saga behind us and get back to work," Duncan began the message.
The characterization of a community of developers trying to exercise some control over the infrastructure of their project as a "saga" seems to belittle the whole issue into the same category as middle-school politics.
Between their messaging and the new web site, it's clear that Oracle wants to gloss this over as much as possible for their customers and get on with Hudson development. But if I were a customer using an Oracle open source project, I would look at the history of OpenOffice.org, Hudson, and now maybe JUnit and ask myself: is Oracle really an effective leader of any open source community?