Last updated 1 March 2011.

The following tips will increase the chances of your contributions being accepted. Supplying patches is the method of making changes to core or contributed code.

  • Start small. Review other patches and offer constructive suggestions and improvements. Tackle a few small bugs from the issue queue. Prove yourself. Before you wade in with a substantial change, develop a profile as a dependable, collaborative contributor.
  • Take a step back and objectively evaluate whether the changes are appropriate for the Drupal core. Ask yourself:
    • Is the feature already implemented? Search the forums and issue tracker.
    • Could the feature be implemented as a contributed module rather than a patch to the core?
    • Will the change benefit a substantial part of the Drupal install base?
    • Is the change sufficiently general for others to build upon cleanly?
  • Be explanatory, provide descriptions and illustrations, make a solid case. Don't count on others downloading, installing, and testing your changes. Rather, show them in a nutshell what your changes could mean to them. Anticipate and address questions or concerns. If appropriate, provide screenshots.
  • Write an automated test to accompany your patch.
    • If your patch introduces new functionality, ensure that that the test affirms that functionality.
    • If your patch addresses a bug, ensure that the test identifies the bug and demonstrates that your patch fixes it.
  • Be open to suggestions and to other ways of accomplishing what you're aiming for. Be collaborative, friendly and respectful. Acknowledge the effort others put in.
  • Be persistent. If you don't get any response right away, don't necessarily give up. If you're still convinced your idea has merit, find another way to present it. Request another developer - ideally, one familiar with your work - to take the time to review your contribution.
  • Be responsive to suggestions, requests, or issues raised. Revise your work accordingly.
  • Make sure it still works If it has been a while since you wrote the code, make sure it still works with the current git version.