Contributing code is encouraged, but to make things easier on the developers, please adhere to the following guidelines.
Patch submissions should be sent to the tmda-workers mailing list. You do not need to be subscribed to post a message there.
- Please make sure your patch works with the earliest supported version of Python. For example, if TMDA supports Python 2.3 and above, you should test your changes with Python 2.3, even if you normally use a more recent version of Python. If you plan to contribute code on a frequent basis, you should get into the habit of using the earliest supported Python for all of your TMDA development.
As far as preferred coding style, I try to follow the general Python Style Guide. Strict coherence to this is not necessary when working on TMDA, but I'd prefer that you match the existing coding style whenever you can. In particular, use the existing indentation style in the file(s) you are editing (Emacs handles this for you automatically). Also, please limit all lines to a maximum of 79 characters.
- Emailed patches should preferably be sent in MIME format, with the actual patch included as an attachment.
When making patches with diff, please use the -u option, or if your diff doesn't support it, -c. Also, it is helpful if you create the patch from the top level of the TMDA source directory.
Diffs should be made against the current development source from Subversion rather than the particular TMDA release you happen to be using.
Here is an example illustrating some of the above concepts:
- Checkout the latest developement sources from TMDA's Subversion repository. This will create a 'tmda' subdirectory in your current working directory containing the source:
% cd /usr/local/src % svn co https://svn.sourceforge.net/svnroot/tmda/trunk/tmda
- Make the necessary changes:
% cd /usr/local/src/tmda (hack, hack, hack....)
- Create your patch called "tmda.diff":
% cd /usr/local/src/tmda % svn diff > tmda.diff
If you wish, accompany your patch with an update to the apropriate ChangeLog file. If you use Emacs, you can use the M-x add-change-log-entry command to do this automatically.