Hudson migration status update

Monday morning I came into work and discovered that I cannot commit to the Hudson Subversion repository. Initially I wasn’t worried — I thought it was just another outage that will resolve itself in a few hours — but a little research a bit later revealed that Hudson was locked down and being migrated to new infrastructure.

I and the whole community was quite surprised by this, as we are supposed to be “notified as soon as we assign a date for [our] projects to move.” But by the time the developer community noticed, the project was already locked down, repository is read-only, and mailing lists can stop functioning any time. My immediate action was to contact the folks who are doing migration to get Hudson out of this cycle of the migration, but I was told that the ship has sailed and it was too late.

Even worse, there’s no ETA — it’ll definitely take a week, but since this is a Thanksgiving weekend, it can take longer, Oracle said.

I find this situation plain unacceptable, and e-mails from the earlier migration effort made me doubt if the new infrastructure is any better. I also had a pleasure of working closely with CollabNet folks over the past years and I was also involved in some earlier conversation and experiments about the new infrastructure, and when it comes to performance and monitoring, CollabNet folks really knew what they are doing. So I had multiple reasons to worry if the new infrastructure can handle the load of, which the old CollabNet-hosted one couldn’t handle.

But fortunately, since the general migration has been announced, we’ve discussed the migration of some of the project infrastructure. So we’ve accelerated the plan and implemented it, so as not to lose the critical project infrastructure services.

Mailing Lists

Hudson mailing lists are moved to Google Groups. See more details here and here. The new mailing lists provide a real search capability, decent UI for archives, and it makes it easier for people with multiple e-mail addresses to post from multiple addresses and receive just one copy. The stability of the service is also much better.

Source code

Hudson core source code has been long synced to GitHub. We’ve been getting several contributions through that already, and people have been asking for Git migration for long time anyway. So going forward I’ll be committing to and producing releases from the Hudson repository on GitHub at

The new Git-based repository would be far snappier to work with, and it’ll make it easier for people to maintain private changes and contribute changes back. There’s also a work in progress to set up Gerrit to streamline the patch review process to the core. So I think this further reduces the barrier of entry to the Hudson project and accelerate the progress.

The migration of Hudson plugin repositories still needs to be discussed, so stay tuned for the updates in the dev list today or tomorrow. I’ve developed a bulk import program whose output can be seen here, so I’m going to propose this as the migration strategy.


My apologies that these changes had to happen quickly — I’m just as frustrated as you are, but given the circumstances, I think this is the best course of action. Hopefully everything will be in place within a few days. And in the mean time, thanks for your patience.

2010 Tokyo Trip Summary

It’s been a while I visited Japan (in fact I believe it’s been two years since my last visit), but as always this 1 week trip was quite packed and exhausting.

Fist, I’ve made a number of visits to companies big and small using Hudson. I was pleasantly surprised to learn that several largest IT companies are starting to deploy Hudson in a large scale (and in some places they’ve dedlicated engineers to work on integration and deployment.) I’m working with them in the hope that they can discuss more about their experience in public, which would help spread Hudson in Japan.

I’ve also made a number of presentations. I gave one talk about how Hudson can be used to test Android apps, and another about Hudson and cloud. There was a lot of interest in the Android developer community about automated tests (especially with real devices, since there are now so many Android phones) — could be something interesting for CloudBees.

I’ve also helped organize the first Hudson user meetup in Japan, and did a presentation there as well. This was held in one of the biggest room in a local university, and Hudson users showed up in full force — I was told there were 208 people attended. 9 people took turn presenting various topics around Hudson, and there was a healthy mix of Java, Perl, and Ruby. We’ve launched Japan Hudson User Group (JHUG?) in this event, and we are working on hosting another meetup event in Feburary.

The last talk I gave was at the home-coming day of my college, and there I mainly talked about RELAX NG and how what I leanrt there was useful/unuseful in my professional carrer. I particularly enjoyed giving this talk, as it gave me an opportunity to reflect upon my past 9 years in the U.S.

Aside from those day activities, no trip to Japan is complete without incredibly good (and expensive!) sashimi, sushi, and other Japanese cuisines, and too much dose of alcohol. Unfortunately, I had spent most dinners in 懇親会 (a social get-together party after a meetup that involves beer), so I didn’t get to complete my what-to-eat list. But there’s always a next time.

Thanks for everyone who gave me chances to talk about Hudson, and it was nice meeting you all. Looking forward to seeing you again soon!

InfraDNA joins forces with CloudBees

Today, I’m happy to announce that InfraDNA is joining forces with CloudBees (there’s also a press release that’s far better written than my post.)

In the past 6 months, I think InfraDNA made a lot of progress. Hudson kept getting better, which in turn resulted in a continued growth of the adoption. We are also working with a number of vendors, such as CollabNet and Sauce Labs, to improve Hudson to work better with their products. Our support subscription business has grown substantially, and the forecast is looking even better. So I started feeling that we can grow faster, and as much as I enjoyed doing the business side, I needed to focus more on the engineering side. Or put another way, I felt that Hudson is big enough that it supports a bigger organization than a 2-men shop that is InfraDNA.

That’s where CloudBees come into picture. I’ve been in touch with them almost from the get-go, and I respected what they’ve done. As I wrote in my blog when I set out to start InfraDNA this April, I see Hudson more and more as a foundation of doing all kind of development things server side. I also see that the elasticity of the computing resources enabled by Cloud and virtualizations as a game-changing shift in CI (see my JavaOne 2009 presentation on this very topic.) CloudBees share these visions. On top of that, Sacha and Bob together bring in a lot of experience of doing a start up, surrounded by a number of high-caliber technical folks.

The combined companies have a lot to bring to the table. InfraDNA’s Certified Hudson CI (or ICHCI), our supported commercial value-add distribution of Hudson, will be renamed to something much easier to pronounce — Nectar! But otherwise it’ll follow through the same trajectory we set out at InfraDNA. It is aimed at more serious users of Hudson, who needs advanced features, manageability, etc.

Those advanced features we develop for Nectar will be also available in CloudBee’s Hudson-as-a-Service (HaaS), making it even more attractive for another set of audience, who would value the convenience of a hosted service (as opposed to doing everything by yourself.) In addition, the challenges large Hudson deployments face are naturally the kind of problems CloudBees face in providing HaaS. So those experiences cross-pollinate well.

So today marks a closure of one chapter of my life, and it also marks a beginning of another one. I also wanted to take this opportunities to thank all Hudson users and InfraDNA customers for making my life more interesting — I wouldn’t have been here without you! — and I’m looking forward to continue working with you guys.

Visiting Japan next week

I’ll be traveling to Japan for the entire next week. I’ve got a number of talks scheduled, so if you are in Tokyo around that time, please come see me speak Japanese :-)

11/11 37th Cloud computing meet-up jointly held together with 2nd Android users group test SIG meet-up
I’ll be talking about Android and Hudson, as well as cloud computing and Hudson. Hudson is a system where it’s got a number of plugins that make it usable in just about any development environment, so I’ll be talking about Android and cloud from those angles. Given the audience, I also intend to do a Hudson intro as well. RSVP from here, and here for the social afterward.

11/12 Hudson user meet-up (or aka “Japan build engineers’ symposium”)
Many of the key Japanese Hudson community members (as well as users) are here to talk about various aspects of Hudson. The Japanese Hudson user community isn’t really visible as it doesn’t really interact with the main English-speaking Hudson community, but it’s a huge community. More than 200 people signed up for this meeting, so it should be fun. Again, please RSVP from here.

11/13 University of Tokyo Home coming day, Information science department symposium
This is bit different from others in that I’ll be talking more than just Hudson. I wanted to talk about more broadly about what I’ve done in the past 10 years since I came to the U.S., about RELAX NG and what I learned from it, how my college education helped me or didn’t help me, and how the whole thing led me to Hudson. The event is open to public, so please see the time/place and come see me.

As is typical with the way Japanese people work :-), most of these meetings are in the night, and that means I’m pretty flexible during the day. So if you’d like me to come talk about Hudson or otherwise just willing to have a lunch with me or something, please let me know. It’s been a while I’ve been to Tokyo, so I’m really looking forward to it. I’m starting to build a long list of what I should eat while there.