Contributions

Contributions are important for open source projects such as PyMT. We accept contributions for almost everything. In the following, contributions concerning bug reports, feature requests, code, documentation and graphics are discussed. Any substantial contribution will be given explicit credit in the AUTHORS file of our code.

Bug Reports & Feature Requests

You found a bug in PyMT or you desperately want to have a feature that is not currently there? You should definitely let us know! We have an issue tracker that you can use for this. To do this, just go over to http://code.google.com/p/pymt/issues/list and click the "New Issue" button on the top left of the page. You can now give your issue a title, which should be expressive and easy to understand. In the "Description" field you can give us information about what the bug (or feature request) is, how it can be triggered, what operating system and PyMT version you are running and of course the error message including the entire console output if available.
The more precise you describe the problem or wish, the better we can help to find a solution!

Code

We also accept code contributions for many things. If you are not sure about what you want to implement, just talk to us (see below) and we will help you get started. The several ways that can be used to send us code are listed below.

Git Fork

We are using the Git version control system to for our development. While you don't have to know Git to send us code, it is certainly the preferred way because we can easily review, test and merge your changes and your name is guaranteed to be associated with your work. If you choose Git to send us your code, what you want to use is a Git fork.
A fork in terms of Git is not a bad thing. It's merely your own copy of our code that you can work on without interference. Here is how it works:
First, you create a remote copy of our repository. This is where you will push all your changes (it will be public) so we can examine, test and merge them. To create such a repository, you simply create a github.com account, then go to http://github.com/tito/pymt and click on the "Fork" button. This will automatically copy our repository to a public repository of yourself. You can then create a local copy of your repository on your computer:
git clone git@github.com:YOUR_GITHUB_NAME/pymt.git

Then, you work on the files in that local repository. Once you are done, you review your changes:
git diff

If your changes look good, you can create your commit:
git commit -am "Explain what you did here"

Then you can push your commits to your remote repository from which we can in turn pull your changes.
git push origin master

Your changes will then show up on your github page. Go to your repository and click the button "Send a pull request". This way you can send us a notification stating that your repo is ready to be merged.

This does by no means cover usage of git completely. You should definitely learn how to use this invaluable tool. Please refer to gitcasts.com or any other git learning resource. After a while, you will certainly love it as much as we do!

Patches

If you don't want to use Git, you can also send us patches in a textual format. We prefer unified diff for this. While nobody holds you back from posting these on the mailing list or our IRC channel, we definitely prefer patches being attached to issues that were created on our issue tracker (see above).

Documentation

Code Documentation

We have two kinds of documentation. Firstly, our code documentation. This is the documentation that we write into our code files. These are used to automatically create our API documentation. If you want to improve this part of the documentation, please refer to how you can do code contributions as described above (while you don't need to write code for this, we consider it a code contribution since your changes are in the code files).

Wiki (and others)

Our wiki is the primary source for user documentation. You can find it at pymt.txzone.net/wiki -- Feel free to add anything that you consider useful for others.

Graphic Design

We are desperately looking for graphic designers! If you are somewhat talented, please let us know! (See below for how to contact us.)

Communication

We would like to hear about your problems, projects or just chat about your ideas and visions! If you want to contact us, here is how:

IRC

We are mostly discussing all less important stuff on IRC. If you want to join us, you are more than welcome. You can find us in #pymt on irc.freenode.net

Mailing List

We have mailing lists for both, developers and users. You can join them and send mails to it.
The PyMT users mailing list is here: http://groups.google.com/group/pymt-users
The PyMT developers list is here: http://groups.google.com/group/pymt-dev