[From MySQL AB
Submitting patches to Open Source code doesn't come naturally to everyone. It is not easy, since it requires coding skills that the average user does not have. Moreover, code patches require a fair amount of additional documentation, without which the patch itself is virtually useless. These notes will walk you through the requirements of a good patch for MySQL server and perhaps other projects.
Let's define some of the basics: A patch is a structured, computer-generated description of how to modify the source code of a software product. The most common patches fix bugs and introduce new features, and the most common program to generate such a description is "diff".
The article continues at