Oracle Sends Hudson Up the River

A migration of source code receives a hard-line response from Oracle

ITworld|December 1, 2010

Every once in a while, I will come across a student in a class who, no matter how much I try to stress the importance of participating in the class, will fail to respond and end up doing poorly in the class. This is especially frustrating when you know the student has the capability to perform well, and won't do it anyway.

It's this level of frustration I feel lately about Oracle, as I read R. Tyler Croy's blog yesterday detailing Oracle making stupid choices about open source again, this time about the Hudson software project and its relationship with the Java.net infrastructure and the Java community as a whole. Coming away from Croy's fairly dispassionate relating of the whole saga, my primary question for Oracle is, are you guys really this dense?

In a nutshell, Hudson--a continuous integration platform that assists building and testing software builds--has long been hosted on the Java.net site. According to Croy, and quite a few other developers with projects on Java.net I have spoken to in the past, the hosting platform basically sucks.

The developers of Hudson have long debated whether it would be worth the hassle to pick up the code and moving it to another forge-like environment, like SourceForge or GitHub, but the impetus never seemed to reach the critical mass to actually work through a migration. In other words, it was easier to just bear the pain of Java.net's problems than endure the agony of a full-scale migration.

Until this past November, when Oracle started migrating projects from the older Java.net infrastructure to the new Kenai system. That's when a confluence of events became the straw that broke the camel's back. At the same time, Hudson developers had been independently working to migrate just the Hudson mailing lists off of Java.net--citing excessive outages. In mid-November, Hudson was locked down as Oracle began the migration to the new Java.net systems.

Oracle, to their credit, did attempt to notify the Hudson project leaders that this was about to happen, which Croy acknowledges. But the sender of the heads-up message wasn't subscribed to the mailing list, so the message was moderated out.

The upshot was that when they discovered that their access to the Hudson source code was suddenly blocked for no apparent reason, the Hudson development team was understandably upset. Eventually, the reason for lack of notification 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 whole move and get the source code off Java.net and onto another hosting infrastructure? Like, say, 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.

For now, though, the Hudson code still sits on the Java.net servers--due in large part to a response from Oracle Sr VP of Tools and Middleware Ted Farrell, who basically informed the Hudson team 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.

Er, what?

First off, even the most ardent open source user isn't going to care where a project is hosted. Seriously. The few times I go looking for source code, I hit the project's web site and follow those cool little underlined phrases that magically transport me to the code I want. Just because Hudson is hosted out on GitHub doesn't mean users wouldn't be able to find code (source or binary) on Java.net, too. It's called hyperlinking, Oracle--maybe you should look it up.

Not to slight users, but if the developers want a new host for their code, why would the users care and frankly, why should their opinions matter on this issue? It's the developers who use Java.net, GitHub, and the rest... not the users.

No, it's clearly Oracle that doesn't want Hudson to leave Java.net. In his message, Farrell was firm: Hudson would stay on Java.net, and any move to host it elsewhere would be considered a fork.

[Insert exclamation of dismay here.]

Wanting to move a project away from its hosting infrastructure doesn't in any way mean developers want to fork it. They just want the software to have a better home. Using Farrell's logic, if I move across town to a bigger house, then suddenly I don't want to be a citizen of my town anymore. Which makes no sense.

As far as I can tell, no one in the Hudson project wanted to fork the project, even when they were incredibly frustrated at the poor performance of the Java.net infrastructure. No one mentioned cutting Oracle out and I would be willing to bet that if the migration to the new Kenai system hadn't been flubbed a bit, the Hudson developers may have continued to leave Hudson on the new Java.net.

Now, Hudson devs are getting slapped in the face with statements like this from Farrell:

"...[W]hat I am saying is that I believe the final decision of what to do [with respect to] infrastructure belongs to Oracle and that decision should be made according to the will of the community as it makes sense."

It is not clear to me what is really going on here, though something Farrell wrote intrigues me a bit. In his original statement, Farrell stated:

"We need to make the hudson [sic] community a place that will welcome all the hudson [sic] users and encourage its growth and longevity. We will be announcing some changes in the upcoming weeks that we believe will foster that."

What, I wonder, were those changes going to be? A new all-in-one Hudson site for developers and users? Some major renovations to Java.net? A departure of the Hudson code from Java.net would certainly put the kibosh on any plans like that. Hudson is a big project in the Java ecosystem, and losing a marquee project would certainly be a loss of face for Oracle if they were planning a new/revised site relaunch.

That, plus an historic aversion to any loss of control, are likely the reasons why Oracle wants to keep Hudson in the fold, not any concerns for the user base.

If that is indeed the case, then maybe the Hudson team should fork, because if Oracle was indeed planning "some changes in the upcoming weeks" for Hudson or Hudson's infrastructure, why couldn't they be bothered to let the Hudson team in on it?

When will Oracle learn to work with its open source developers rather than use them?