Core vs. contributed projects

Last modified: April 27, 2009 - 21:22

If you're looking for ways to contribute to Drupal's code base, there are several places you can do so.

The most important thing to remember when starting to contribute to Drupal, is that with more than 700 contributors to Drupal 6, and over 2,000 people with access to the contributed modules repository, there's a high chance that whatever bug or feature you're interested in has already been thought of by someone else. Therefore the first step when planning to contribute a new bug report, feature request or module to Drupal is to search for issues or projects that already exist. By joining forces with people already working on the problem you're trying to solve, it's much more likely that a comprehensive solution will be found.

If you have existing code which you want to contribute back to the community, there are two primary routes:

Contributed modules

Contributed modules are the community-produced modules and themes available on the Drupal.org. To make a contribution, you need

As long as contributions meet some minimal criteria - they do what they claim to and have some demonstrable benefit without unduly replicating already-available functionality, and are coded with an eye towards secure code - they should be ok.

You should also read about maintaining a project on Drupal.org and consider joining forces with others to avoid duplication of effort and share the load of your module.

If you have major enhancements you wish to contribute, doing so via a contributed module is in many ways the easiest way to begin. Contributed code has a relatively low set of requirements to meet. It also helps to trial the feature with the community, gain feedback and help the code mature.

Your code contribution is welcome. Consider also being a responsible maintainer and helping build a community around your module as it grows in use and popularity. This will help reduce your load as well.

There is also a general issue list for all projects hosted on Drupal.org - project maintainers often welcome patches against their modules, or help answering support requests. If you use a particular module on your site, then helping out in the issue queue for that module answering support requests and testing patches is a great way to get involved. Nearly all code changes on Drupal.org happen via patches - learning the basic tools to create and test patches early on will help you contribute much more effectively.

Drupal core

In contrast, changes to the Drupal core are made through a thorough consultative process to ensure the overall integrity of the software.

Changes to the Drupal core are generally of three types:

  • Bug fixes. These changes respond to identified problems in
    the existing code.
  • New features. These changes are enhancements on what is already available.
  • Code maintenance. These changes are to improve the quality of the code or bring it up to date with changes elsewhere in Drupal. This can include bringing code in line with coding standards, improving efficiency (e.g., eliminating unneeded database queries), introducing or improving in-line comments, and doing upgrades for compliance with a new release version.

If you want to contribute back to Drupal but you're not sure how, there are several places to get started:

The Drupal core issues list contains all active bug reports, patches, support requests and feature requests against core. At any one time there are usually several hundred patches which need review, and a number of active bug reports which either need more information to reproduce or a patch supplied.

While you can create your own issues, you can also begin by simply taking on existing tasks on the task list. See the page "Tips for contributing to the core" for advice on how to get started as a core contributor.

 
 

Drupal is a registered trademark of Dries Buytaert.