Tuesday, December 22, 2009

How to contribute with Replication and Backup code

The MySQL Replication and Backup team is working with several community developers.

MySQL does a milestone release (roughly) every six months. To get patches included into a milestone release, it needs to be ready before the deadline for that milestone. All milestone releases are published, but not all will become GA-classified.

The below describes the process on how to get a contributed Replication or Backup patch included into a milestone release.
  1. Get acceptance of the idea. Each accepted patch needs to be thoroughly tested (by multiple teams in different ways) and we need to ensure that we can maintain it for many years. Due to this resource requirement, we can only accept a few patches per year (this number is increasing though, which is great). When your idea is accepted, you get an assigned "coach developer" that will help your patch through the procedure to get it included into a release.
  2. Get acceptance of patch. This includes multiple parts:
    • contributor agreement must be signed,
    • design must be accepted,
    • tests must be accepted, and
    • code must be accepted.
  3. Patch gets pushed into a team repository. The Replication and Backup team push the patch into the team repository. Some more testing is done. If there are problems with the patch, it can possibly be removed from the tree.
  4. Before the deadline for a milestone, the team tree gets merged into the release tree for that milestone. Release testing is done by the System QA and Server QA teams. If there are problems with the patch, it can possibly be removed from the tree.
  5. The milestone release is built from the milestone repository and is published on www.mysql.com. Some milestone releases will be marked as GA releases.
Before step 2 is completed, it is hard to know for which release it can be included into.

More information about how to contribute is available here:
http://forge.mysql.com/wiki/Contributing_Code

If you have comments about this procedure or would like to contribute with Replication and Backup code, please let me know.