This wiki has been moved to https://github.com/SuperTux/wiki into the mediawiki branch.
Once you have done some own changes to supertux, you probably want to show them to the world and contribute them to the project.
Also if you want to join the supertux team then you first need to have some patches accepted before we'll give you write access to our repository.
Contribution which mostly add new files (typically when creating new graphics, sound, music, levels) can simply be put into an archive (preferably .tar.gz or .zip).
Changes to the code typically affect only parts of bigger files, so it's hard to spot the differences to the original file. Therefore we only accept code contributions in the form of a patch. This guide will walk you through the process of creating a patch.
We assume that you have a current checkout of the supertux repository (see Download/Subversion) with your changes applied. Then you should first use
which will print you a list of files with a prefix letter. M means you have changed the file, C means there has been a conflict between your changes and changes from someone else in the repository, and ? means the file is ignored by the version control.
You should fix all conflicts (by editing the conflicted file, then using svn resolved <filename>) and use svn add <filename> to add files that you created and want to add. svn remove will delete files from the repository. (Note that files are never really deleted; you may always check out a former revision when the file still existed.) Finally you can create a patch by using
svn diff > mypatch.patch
This will create a file mypatch.patch that contains all changes you did to the repository. (You should open the file in a texteditor and verify that it contains all your changes and only changes you wanted to submit).
So you have your patch ready and want to submit it? Then the prefered way is to open a new report on our bug tracker and attach the changes to it. (You can upload and attach files to bugreports).
An alternative method is uploading the changes to some website or ftp server and sending us the link on the mailing list. Using attachements on the mailing list is NOT good as the files tend to get big which will annoy people subscribed to the mailing list!
If your contribution can not be redistributed under the same license as the rest of Supertux we can't use it. Usually small code changes gets infected by GPL automatically. For everything else (like levels, images, sounds and new programs) we need to make sure that it is GPLv2 code and GPLv2 + CC-by-sa for everything else.