Last updated February 19, 2014.

This section explains how to help by finding issues to work on, creating and submitting patches.

Finding issues to work on

Most issues are solved by developers that have a need to have them solved, because they are impacted by the issue or they are the maintainer and help to keep their module up to date.
Some developers also pick an issue of their liking and start developing and submitting a patch. The following links are collections of such issues to work on:
http://drupal.org/project/issues
http://drupal.org/patch/spotlight

Novices can start by picking issues that are tagged for novices. You must be logged into drupal.org in order to view this list:
http://drupal.org/project/issues/search?projects=&status[]=Open&issue_tags=Novice

Patches

Patches are pieces of code that solve an existing issue. In fact, patches describe the changes between a before and after state of either a module or core. By applying the patch the issue should no longer exist.

Patches are used to maintain control-ability over the entire Drupal project. While Drupal is distributed via the git version control system, patches are additional pieces of code that focus on a single change request and therefore are easily tested, reviewed and documented.

This also means that git commit access is not required to submit patches: a patch can be uploaded to an issue in the issues queue for anyone with a Drupal account. The tips for contributing apply to core as well as contributed modules. See Git tutorials on Drupal.org for information on using Git with Drupal core development.

Creating patches

Read Creating a patch with Git for instructions on how to create patches.

Creating interdiffs

Read Creating an interdiff for instructions on how to help reviewers save time and reduce tedium. Interdiffs have just the changes introduced in patch iterations, and offer a great resource for quicker, easier reviews.

Comments

If diffing against your own SVN repository, the follow tcsh alias comes in quite handy. (Tip I learned from Kitt Hodsden.)

alias svndiff 'svn diff --diff-cmd=`which diff` -x -u -x -p \!*'

Then you can do:

svndiff -r1 path/to/changed/file

and get the unified diff with function information.

Here is the alias I set on MacOS X, in file ~/.profile:

alias svndiff='svn diff --diff-cmd=`which diff` -x "-up"'

Type source ~/.profile to take into account this new alias in current terminal.

Then you can use it that way:

svndiff path/to/changed/file

This is a nice short doc on how to patch Drupal from Windows:
http://community.contractwebdevelopment.com/patching-drupal-modules-in-w...

Cheers,
- Berto
-- Founder, Discount Supplements - http://www.PricePlow.com