Monday, 12 March 2007

Global Warming & Google Summer of Code

What happened with the MySQL Winter of Code? It was hit by Global Warming. Specifically, the Community Team got heated up working on the MySQL Conference & Expo 23-26 April 2007, left with little bandwidth to pursue the ideas and action items for Winter of Code.

When winter warms up, it slowly turns into summer. But the coding work remains. Colin Charles was smart enough to combine these two facts with Sheeri Kritzer's blog entry and hints about the Australian Winter, and took action related to the Google Summer of Code. Colin spoke to Chris DiBona and Leslie Hawthorn of Google and has now signed us up for Google Summer of Code.

In short: We are transitioning the Winter of Code to the Google Summer of Code, and we today sent in our application to Google.

While I am not happy about our not having been able to devote the necessary resources to our WoC, I am happy that the Quality Contribution Program has been launched and had some early successes -- like when Martin Friebe submitted a bug report including a test case and a bug fix code patch, which enabled usto verify the bug and apply the fix within two hours of the bug report. Thanks Martin Friebe, Giuseppe Maxia and Chad Miller!

In an attack of misguided pride, we at MySQL AB could choose to feel bad about not having found or fixed that bug ourselves. I don't. Bugs are a fact of life, and it's our task to architect our model so that they're fixed fast. We hate bugs! And we love those who help us kill them!

The Quality Contribution Program has oiled our internal processes for being able to receive, process, review and accept external patches -- something which we traditionally haven't been good at.

In fact, we haven't been creating as much of an Architecture of Participation at MySQL, as we should expect. What's an Architecture of Participation? Let me quote the two first sentences from Wikipedia:


The phrase architecture of participation describes the nature of systems that are designed for user contribution, such as open source and Wikipedia. It was coined by Tim O'Reilly, who described it at length in a 2003 speech and later in several of his online writings.

The phrase has come to define one of the key elements of what's been called Web 2.0, which describes the collection of companies, technologies and projects that are designed around the culture and economics of openness.


Now starts the next step in opening up the MySQL Development Model. The two things that SoC require of us are the same as what an Architecture of Participation requires of any organisation:

(i) identifying mentors
(ii) identifying features to implement

Identifying mentors: Experienced developers need to "Adopt A Programmer" and guide these contributors on the MySQL source code, and how to implement the features they (or we) want them to develop. This takes several hours a week, but if well done, it's as rewarding for the mentor as it is for the students being guided.

While folks running MySQL University are ideal mentor candidates, I would argue that students at MySQL University also qualify. We absolutely want more than the topmost ten hotshot developers at MySQL as mentors.

Identifying features: In the tentative Winter of Code plans, we proposed large, ambitious tasks


  • Improvements to (pure drivers for) Perl, Apache APR, Python, Ruby or new connectors for emerging environments

  • New Storage Engines: The Mail Inbox Format Storage Engine, the File System Storage Engine for Windows, for Mac, for Linux, or the Digital Picture (JPG / EXIF) Storage Engine



However, for SoC, we have tasks of all ambition levels -- and have not limited ourselves to entirely new features. Jeffrey Pugh, our VP Engineering, and his Dev Leads have provided Colin with a digested list, that Colin is managing at http://forge.mysql.com/wiki/SummerOfCode and that currently has the following item headers


  • Test Suite Development (Stewart Smith)
    mysql-test-run.pl and mysqltest

  • Test case development (Giuseppe Maxia)
    Code coverage improvement
    System Tests - Load Tests and Long-Running Tests
    Test creation tools

  • Benchmarking the MySQL Server

  • Instance Manager fixes

  • Integrate MySQL Cluster with Instance Manager

  • INFORMATION_SCHEMA tables for MySQL Cluster status

  • MySQL Based Atom Store

  • Simple P4 bugs/features involving options/flags on bugs.mysql.com

  • Simple features from Worklog, our detailed todo list



At last query, the MySQL bugs system had over 1,499 bugs filed in a Priority 4 state, which means they're Feature Requests (Severity 4). While all of these are "up for grabs", we don't expect our Summer of Code students to pick their favourites from such a long list. Soon, we'll rank the top ones based on our judgement of how interesting the features are to use, and how easy they are to develop.

So, if you're interested in participating in our Summer of Code, what should you do?


  1. Look for interesting projects in our project list on MySQL Forge.

  2. Fill in an application according to our application template, also on MySQL Forge. Do this on the Google Summer of Code web app that will be live from 14 to 24 March 2007.



And if you have questions, feel free to contact Colin Charles and/or myself over email, firstname@mysql.com.

No comments:

Post a Comment