This file documents the guidelines to be followed when submitting patches to setup.exe. Firstly, patch submission: As per cygwin1.dll: no changelog in the patch itself. attach the changelog to the email. new files are ok in the patch, or as attachments. ChangeLog as per GNU standards. One goal per patch. (*) Multiple patches per email accepted, but my preference is for one patch per email. Secondly, Coding standards: setup has a number of different code formats in it. This is ok as long as it stays readable. I'll accept patches (if anyone wants to do it :}) to standardise towards what I'm laying out here. But: thats not needed! Mainly, as code is changed, either leave well enough alone, or refactor what you are working on accordingly. The GNU standards are acceptable, but: They don't explicitly cover C++, and C++ has a number of challenges that are not met by them. If you choose not to follow the GNU standards, then you should follow these: * classes or structs to be FirstLetterCapitalised. * static members and globals to be FirstLetterCapitalised. * local variables and non-static members to be capitalisedAfterTheFirstWord. * hungarian notation is banned. * Try to keep functions less than 15 lines in length. * Try to avoid using return values with non-query methods. * Use classes rather than static functions. * Place all methods for a single class in a single file. (* Libraries may need multiple files, this is for setup.exe's source itself) * Name the source file for classes and their headers after the class. Capitalise it identically. Where pragmatism requires, try to be as close as possible (see for instance, String++.h).