Note: feature requests should be added to the feature request tracker for discussion! When requesting features, please check the list archives to ensure that it hasn't been proposed before. You can also propose features on the mailing lists.
If you've changed the code in some way and you want your changes in the main distribution then you should post your changes to the mailing list.
If the project uses GIT (see Using GIT for instructions on getting hold of the latest version of a program) then you should commit your change(s) first to your local repository, like this:
After making your changes, do:
git commit -a
Enter a log message. The first line should be a short summary (like the subject of an email). Then leave a blank line, then write a longer description. This only commits to your local machine, so you don't need any special permission for this.
To view your patch after committing:
git show
If you realised you made a mistake, correct it and then do:
git commit -a --amend
Then, you have two options:
$ git format-patch origin/master
If the project uses subversion, do svn diff to create a patch and send it to the list.
Hints on getting patches accepted:
Translators: see Internationalisation for instructions on creating a language translation.