Fixing Bugs
[edit] How to fix a Bug
Let's say you've found and/or reported a bug. You want to be proactive and fix the bug yourself. Perhaps the assigned priority of the bug is too low for your individual needs or you simply want to help on an easy-to-fix bug. Do you need permission to fix the bug? Of course not. That's the benefit of open source. So, how do you submit your bug patch to be committed to the main source tree(s)? The process is explained below - the following things should happen:
- If it has not been reported already, create a bug report in the MySQL Bug database, describing the problem you experience. Make sure to add a comment that you intend to provide a patch!
- You subscribe to the internals mailing list, where you should either provide a suggestion on how to resolve the bug or directly post your proposed patch for review (if you already created one) and discussion. Make sure to refer to the Bug ID for reference
- You add a link to the mail with the patch to the bug report (a link to the mail looks something like http://lists.mysql.com/internals/1111)
- You add the tag "Contribution" to the bug report, to make sure that it shows up in the Patch Contributions Pipeline
- You create a test case for the patch and fix up a result file, and then run the mysql-test program to verify the fix (look at the docs or see this tutorial)
- After a review you may be asked to submit a corrected patch
- Depending on the size and complexity of the patch, you may be asked to sign the Contributor License Agreement (CLA) (which essentially allows MySQL the copyright necessary to release and publish your code into the main MySQL trees)
- The patch is now ready to be committed to any of the internal source code trees from where it eventually will be merged to the main source trees (depending on the type of bug fix, the developers will decide in which version of the code base it will be applied. If it is a new feature, it will most likely be incorporated into the Community Server first. If it is a bug fix, it may be also added to the Enterprise edition.)