Jenkins commit activities in 2012

Stephen is having fun with Git and R, and I saw another person creating a similar comparison (although I’m not sure where the credit should go on that one.)

Both charts are great, but I also noticed that their Y-axis aren’t consistent. So if people aren’t careful they might not see Jenkins as favorably as it actually is. So here is the graph, comparing # of commits in the year 2012. They both only includes the core and in the master branch:

On average, we have 41.2 commits per week, compared to 9.7 on the other side. If you want the raw data, here is the Excel file.

One last plea for Hudson/Jenkins vote

As Andrew posted, the vote for Jenkins is open now. You need to be a member of the users or the dev list to be eligible, and the detailed instruction can be found here. I thought I’d take the opportunity to make one last plea to the community.

When the representative of Oracle says it to my face that I should just go find something else to work on, or that I need to immediately stop making [infrastructure] changes or the next email I will receive will be from their lawyers, or when you hear him describe me as a hurdle to the community, I think writing on the wall is pretty clear to me.

As such, regardless of the outcome of the vote, I find it very unlikely that I can continue to contribute to the Hudson project, and thus I will move on on Jenkins. I can’t control what others do, but I can at least decide what I personally do. While days leading up has been rather hard on me emotionally, now that I made up my mind, I actually feel good (besides, it’s such a nice day in San Jose today.) I’m confident that many key core and plugin contributors (who has made Hudson what it is today) will join me, and I hope users will follow us too (which is the other part of what made Hudson what it is today.)

What I’d like to ask the broader Hudson community is to have your voice heard and give us your support by voting. That you want to be with us. It lets us maintain the continuity of the project, it gives us legitimacy, and it sends a singal to the unaware silent majority which way they should follow. It’s the best way to maintain our community.

So please let your voice heard, and help us spread the word. For one last time.

On Oracle proposal about Hudson

Oracle posted their proposal on the future of the Hudson project here (the cached version is here and here in case it changes.)

In this proposal, Oracle has not shifted at all from their original position that resulted in the community posting the proposal to rename. It’ll keep all the rights on the trademark Hudson, and it will continue to collect CLA from the core contributors. The proposal includes a clarified fair use policy to derivative work, but it doesn’t include any provisions about how the project can continue to use its name in the future, which was the central issue.

I think the message is quite clear, that Oracle intends to change the way the project is run, and that they are driving the effort unilaterally. You can see it in the proposal itself:

As many of you have pointed out, there can be a fork at any time. If Oracle ever did anything that the community disagreed with, whether it was enforcing new rights on the Hudson name, or trying to muscle the community, the community could always fork at that point in time. That is one of the assurances against a corporation doing things like that. … There are many ways to run an open source project. I think in order for Hudson to grow and reach more people the core community needs to grow and become more open and equal.

Notice that in their eyes, what happened in the past two months is not something “that the community disagreed with”, and putting a stop to a well agreed GitHub migration is not “trying to muscle the community.”

In my opinion, their proposal reinforced that our concerns were legitimate and what we feared is already happening. If the outcry from the community didn’t win any compromise from Oracle, I honestly don’t know what will. This is precisely why we need to rename now, and not later. If this isn’t enough for us to be resolute, then we’ll be divided and conquered through a series of highly technical confrontations that cannot rally a larger community, the community gets gradually boiled to death like a frog.

This “our way or highway” theme can be seen in many places throughout our conversation. They are going to dictate their will on us, when they contribute less than 1% of commits since I left Oracle. They think they have a proven record of leading open-source projects, when the record shows otherwise.

Since their position hasn’t changed, I continue to stand behind our earlier proposal to rename. That is,

  1. We rename the project to Jenkins. We’ll trademark the name, and transfer that to the umbrella of the Software Freedom Conservancy, to ensure that the owner of the key assets cannot use that to unfairly influence the project.
  2. For core, we’ll also start collecting CLA assignable to SFC for the same reason, when we are admitted to SFC.
  3. Grant the trademark usage in the same way the Linux trademark is handled.
  4. We’ll foster the same open atmosphere that we always had, where everyone is a committer just by asking (plus CLA for core), proposals are discussed on their technical merits and not by the title of the proposer, inputs from plugin contributors are valued, and the consensus of the community trumps any single entity.
  5. We’ll put an interim governance board in place, until the governance structure is secured and hold an election of the board members. I suggest myself, Andrew and, if Oracle elects to remain involved, Winston Prakash, the Oracle engineer working on Hudson, be the interim board members.
  6. We’ll move our infrastructure off from Oracle-owned servers and for other infra resources that are hosted elsewhere, such as GitHub and Google Groups, we’ll rename them for Jenkins.

Now that we know all the options on the table, I believe Andrew will get a vote going soon. Please help us with your support. To borrow a line from a movie I recently watched, “when bullies rise up, the rest of us have to beat them back down.”

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.

See you at JavaOne!

With a week-long Scandinavia tour over, my nexgt big week is JavaOne! JavaOne has always been an incredibly busy week for me, but this year is no exception.

  • Sunday before JavaOne, we’ll be having a full day Hackathon at Digg. If you are around, please RSVP and join us.
  • I’ll be presenting a Hudson talk (S313338 – Sep 20th 10am in Parc55). I’ll discuss the current state of the project, then I’ll spend most of the time talking about various techniques on Hudson that goes beyond simple builds & tests.
  • I’ll be on a 15-minute OTN video interview after that.
  • InfraDNA will have a kiosk outside the JavaOne vendor exhibit area. We’ll be showing our value-add Hudson distribution ICHCI, and we’d be happy to answer any Hudson related questions/comments, so please drop by. I should be at the booth most of the time.

I think it’ll be fun, and I certainly look forward to seeing as many of you as I can!

Scandinavia Tour 2010

I was traveling for the whole week last week.

My first stop was at Copenhagen. I attended the two-day Hudson/CI workshop hosted by Nokia, and I was very impressed at the degree in which Nokia embraed Hudson and the amount of the Hudson plugin development they’ve done thus far. I hope some of those work will be publicly visible some time (nag, nag.) I also got some inspirations about new plugins, which I hope to implement soon.

We also hosted the Hudson user meetup at the same place Monday night. We had about 20-30 people all in all, which I thought was a great attendance. It looks like there will be a LinkedIn group for Copenhagen Hudson users, so please go join the group if you couldn’t come to the meet-up. Aside from all the conversations that I enjoyed, I was able to discuss and validate some of the ideas that I’m doing in ICHCI, our value-added Hudson distribution.

On more lighter notes, I was finally able to meet Simon Wiest in person, who is a long time Hudson contributer and an author of a German Hudson book.

Simon also “discovered” that Nokia deployed extreme feedback devices throughout their offices, and that their builds are so always green that they only have yellow and red lights. Must be a Scandinavian energy-efficiency thing.

Nokia folks told us that should these lights ever come off, there will be sirens and people will be evacuating the building. Clearly, a broken build is a serious, serious deal :-)

In the later part of the week, I moved to Oslo to attend JavaZone 2010. As usual, JavaZone was very well organized, and aside from everything being twice as expensive than the US, I enjoyed Oslo. The attendance to the meet-up was much smaller here, but nonetheless I had a good 2 hours in a local bar talking about Hudson, life in Norway, and so on. The talk went OK, with all demos working correctly.

One thing that always strikes me in Europe is that how much people drink. Here at JavaZone, they even serve you beer at the conference, which is unthinkable in the US! So when I realized that I had some extra time in the airport, I just couldn’t resist mimicking an European by indulging myself with a glass of beer (at 10am!)

The only regret for me was that I didn’t have much time doing sight-seeing — I would have loved to visit Legoland Denmark or the famous Fjord in Norway — but then, there’s always the next time. For those who I met in person during the travel, it was a great pleasure to meet you. There’s something special about meeting people in person.

Hudson User Meet-up in Copenhagen/Oslo?

I’ll be in Copenhagen from 9/5-9/7 and in Oslo 9/8-9/9 to present in JavaZone. I’d like to take advantage of the opportunities and have user meet-up events in those cities. Depending on the number of participants, it could be just a drink in a bar, or a talk in a meeting room.

So if you are:

  1. in those cities,
  2. available in the evening of 9/6, 9/8, or 9/9, and
  3. willing to attend such an event,

… then please let me know.

Also, if you have an office in those cities and willing to provide a space for an event, that would be extra appreciated!