More Code Contributions to MySQL

MySQL has deep roots in open-source software development communities and code contributions to MySQL keep flowing in, being reviewed and integrated into the MySQL. 

During our BoF at the MySQL Conference and Expo, Lenz Grimmer talked about our work to make MySQL (even more) contributor friendly, with some more focused effort starting on February 1, 20091.

The desire to contribute code to MySQL remains as strong as ever as evidenced by this year's MySQL Conference and Expo, where I had an opportunity to speak with some contributors and partners who wish to contribute to MySQL. Of course, there are a lot of strong and varying opinions in this area.

As I said above, code has been contributed and absorbed in MySQL (according to either the MySQL CLA or SCA contributor agreements) for years now.

Examining just the patches and contributions submitted through the MySQL Bugs database, some 16 pieces of code contributions to MySQL have been absorbed into some version of the MySQL server in the first 4 months of this calendar year, and there are some 17 SCA signatories who are intent on contributing to MySQL.

As examples of code contributions being currently reviewed, one may point to two thread on "internals," one involving a review by Konstantin Osipov (contributor: Antony Curtis, WL#820) and another a review by Guilhem Bichot (contributor: Erik Ljungstrom). 

[1] February 1, 2009 was exactly 10 years from the day I started working for Sun Microsystems Inc., February 1, 1999, when I started in the J2EE RI development team.

Comments:

You note Erik's patch (reviewed by Guilhem). That's an OurDelta patch, and nothing more than a few lines of regex in a shellscript, a bugfix. Important yes, but noting it as a code contribution is stretching it a tad far, my friend.
WL#820 (external stored procedures) is indeed substantial, and it'll be really good if that gets integrated.

The "for years now" is also a stretch - while technically correct, in effect very little of it has happened. The only contribution in recent years has been SHOW PROFILES by Jeremy Cole.

You're only cool if/when other people say you are.
I'm encouraged by the current process, at least it's going somewhere now. Let's see that actually yielding results, and non-Sun people writing about that. Then you're cool. And no need for the self-validation then.

Posted by Arjen Lentz on April 27, 2009 at 05:44 PM PDT #

Bug 19975 listed on the contributions link above was filed with code in May 2006. Recent updates to it are from the filer who is upset that no progress has been made on it. And there is nothing on the bug report that indicates any progress. Maybe we can get the fix into Percona and Google branches.

On the other hand, 5.4 has a lot of community code from the Google patch. Although some of it may be removed when the 1.0.3 InnoDB plugin is merged into it (which has similar code from the Google patch).

The replication team has fixed many bugs filed by us that included patches in the bug report.

MySQL/Sun did not treat us (external developers) well and we moved elsewhere. But lets give them a chance to woo us back and _show_ us that things have changed. In some cases the cathedral is still very much in place (performance schema).

Is there a 5.4 tree in launchpad on which we can submit a patch?

Posted by Mark Callaghan on April 27, 2009 at 10:54 PM PDT #

Hrm....Worklog 820 is at http://forge.mysql.com/worklog/task.php?id=820 and states:

Affects: Server-7.1 — Status: Un-Assigned — Priority: Medium

5.1 was just GA'd 6 months ago, and there's at least 6.0 in front of 7.1, if not also 7.0.

Jeremy Cole's SHOW PROFILE/SHOW PROFILES patch is an excellent example of a code contribution that was accepted, but took way too long to get in the hands of the community.

The problem isn't that community contributions aren't taken, it's that they take TOO LONG to get to users.

Pardon me if I don't get excited about an average of one piece of code per week -- are they all going into 7.1? Are any going into a version that's going to be used before 2012?

Posted by Sheeri K. Cabral on April 28, 2009 at 02:54 AM PDT #

Arjen -

Thanks for your comment. The examples I gave are random illustrations of more recent contribution-related activity.

Perhaps, they are not the "best" examples but contributions and work related to them do not need to boil oceans before they count as significant or important. (This is particularly the case when establishing and instituting new habits of community development.)

As I noted above, there have been more than a dozen contributions absorbed in 2009 so far, i.e. in the first 4 months of 2009.

Sheeri seems to be saying this handling rate is too slow. I agree -- with a certain qualification regarding the difference between "integration" and "handling".

I'll respond to Sheeri's comment separately below but I think there is a great deal that can be done within the context of the \*evolving\* MySQL development, qualification and release practices.

Here, I'd just like to add that, "handling" a contribution is not synonymous to "integration" -- some contributions will be handled without being "integrated" -- i.e., the "reviewers" may find some contributions to be unsuitable for integration, for a number of possible reasons.

This type of "discrimination" also goes on in all other living contribution-based communities I know of. In these communities, we have "core teams", "committers" and "voters", etc., who decide what gets in, what doesn't and what needs more work, etc.

In the meantime, let's see what we can do to remove roadblocks, facilitate reviews and qualifications, and move faster.

(I'm not sure to what extent anyone in the community participates in doing actual reviews and qualifications. I know they should participate more and that this practice of having community reviewers and qualifiers, along with MySQL's own qualification, needs to be further developed by MySQL, "the company". (I have observed that Drizzle has taken some interesting steps on that ground, partly building on the launchpad collaboration environment, which is wonderful.)

Posted by M. Mortazavi on April 28, 2009 at 04:13 AM PDT #

(I just extended the comment period on this entry, and have also changed the default comment period for all new entries to to 60 days.)

Sheeri -

A significant number of the contributions have been absorbed to earlier versions over time.

In the first quarter CY 2009, just based on contributions coming through bugs db, MySQL absorbed about a dozen contributions to 5.0, dozen to 5.1 and two dozens to 6.0. These are contributions that have made it to the mainline of code in the first quarter.

We have been absorbing at a rate of about 50% into mainlines, with about 25% going into updates of existing GA-ed, product lines, i.e. 5.0 and 5.1.

Only a total of 40 or so submissions were made by community contributors in the same quarter of 2009, through the bugs db issue tracking system, which I think is the best way to submit contributions. The number of contributions need to increase and people need to submit more contributions to MySQL under the guidance we have already published for contributing code to MySQL. (See below, and above.)

More importantly, our lead times between the submission of a contributions, its review and its eventual integration (if appropriate) have been significantly reduced. This is if we simply look at the publicly available data for those contributions made through the bugs db issue tracking system, which, again, is the best way to submit a contribution to MySQL.

Significant reduction in lead times means that we are now handling contributions sometimes twice as fast, and sometimes three times as fast as in CY 2008.

Of course, not all contributions make sense to absorb. However, all should be handled, i.e. all need to have a clear destiny as quickly as possible.

... and all this is besides the fact that there are many active community and development branches feeding into various mainlines where contributors can work. See Launchpad for MySQL's active ideas/experiments/module branches.

To learn more about how to contribute code to MySQL, please review:

http://forge.mysql.com/wiki/Contributing_Code

Posted by Masood Mortazavi on May 25, 2009 at 05:44 AM PDT #

Post a Comment:
Comments are closed for this entry.
About

MortazaviBlog

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today