The Summer of Code Roller Coaster

I am awaiting final confirmation from google and the GNU project, but I am 99% sure now that phpGroupWare will be getting a Summer of Code (SoC) slot, and I will be mentoring a student to implement sync.

What a process it has been, and I am yet to start mentoring. I thought others might be interested in the the ups and downs involved in getting phpGroupWare a SoC place.

At the start of March, Google opened applications mentoring organisations. I made an application on behalf of phpGroupWare. All up 141 organisations were accepted, ranging from small obscure projects through to some of the stars of the FOSS community, with a mix of grass roots and commercial projects. Unfortunately phpGroupWare ended up at 142nd or lower in the rankings.

I am sure google was inundated with applications, but it would have been nice to at least receive a "thanks but no thanks email" from them. I found out by checking the listings when they were announced. It kind of reminded me of first year uni when they would post provisional marks for the semester a couple of weeks before mailing out academic transcripts. I thought our Summer of Code was over before it had even started.

Then I noticed that the GNU Project had been accepted as a mentoring organisation. As phpGroupWare is a GNU Package it was eligible for SoC slots, under the GNU banner. The GNU project received 65 valid applications, with a further 12 being deemed to be invalid. I thought phpGW had a pretty good chance of getting one of the slots.

phpGroupWare received 2 applications for worth while improvements, those being sync and redoing the installer/setup code. It was really hard choosing between the 2 applications. The rationale went something like this. Setup is the first thing a new phpgw admin will see, our current setup app has had some eye candy added by it is far from polished and needs some serious attention, yet it is not something that someone is likely to invest money in, but it is important. Sync on the other hand allows us to support mobile devices, desktop apps (including dare I say it MS Outlook) and to tick another business functionality box, yet our previous attempts at sync have failed, usually due to technical reasons. In the end a tough choice had to be made (sorry again jarg), and we went with sync as it was going to bring the greatest benefit to our current and potential users.

The GNU SoC admins asked all the mentors to rate the applications. Our top choice (sync) was rated up.

While I was away for Easter (with limited dialup speed internet) it was announced that the GNU project had been allocated 8 spots. That seemed like a reasonable number off slots given that some GNU packages, such as GNOME had been given many more in their own right. The problem was that the 8 places allocated to the GNU project had to be shared between 11 packages. This meant that some people were going to miss out. I still thought that there was good chance of phpGW getting a slot.

On Monday when I got home (with a good connection) the final 8 was proposed, to my disappointment phpGroupWare wasn't on the list, we had been ranked 10th. This ride was still far from over. A later message suggested that there had been a rethink and 2 packages had been dropped and the last 2 slots were to shared between phpGroupWare and 2 other projects. Back to a two-thirds chance. I fired off an email explaining why I thought we should get one of remaining slots.

The next morning I woke to the bad news, we had lucked out again. Another application had been found as the diamond amongst the coal and elevated to 8th spot. phpGW was now sitting in 10th spot and out of contention, or so I thought at the time.

By this stage I was proof reading a draft blog post on the whole SoC of process. I am now glad that I didn't publish it, not that I was likely to, it was more a venting. I did email one of the admins privately asking for more information on why we had been rejected.

On Wednesday morning I was checking my mail and found a new GNU SoC final list (rev 3, I counted). One student had been allocated to 2 projects and had decided to work on the other project, this freed up 1 slot, which meant phpGroupWare moved to 9th, still 1 short. The news got better, google had allocated the GNU project an additional place. We made it, finally!

I am sure Google didn't intend it to be such a tough process for mentors, but when there are so many worthwhile FOSS projects, some many enthusiastic and competent students and a limited budget it does make it difficult for Google to give everyone a go.

It has been a long and stressful process to get phpGroupWare a SoC slot this year. I hope that the stressful part of the process is now over and that Johan Gunnarsson will turn out a functional syncML interface for phpGroupWare.

If it works out well this year, it might be worth all the effort to ride the roller coaster again in 2008, as long as Google is willing to put up the cash.

Update: I have checked and phpGroupWare is in Google's accepted list.