If you've created a module or theme for Backdrop CMS we encourage you to collaborate with others in improving and maintaining it. All new modules for Backdrop CMS should be hosted on GitHub.

Join the Backdrop Contrib group on GitHub by submitting an issue to the Backdrop Contributed Module Issue Queue. The queue is monitored for new applicants. After being accepted, you will be able to create a new project (or move an existing one) under the Backdrop Contrib group at http://github.com/backdrop-contrib.

Contributing to an existing project

The process for contributed projects is similar to that for Backdrop core and involves:

  1. Forking the repository on Github into your own account.
  2. Cloning the repository to your own computer.
  3. Modifying the code.
  4. Committing and pushing the code to your repository.
  5. Making a pull request back to the original project.

In this case however automated testing is not likely to be available and so it is even more important to ensure that you are submitting quality code. If the project you are contributing to includes tests, it is best to run these in your browser locally by enabling the "SimpleTest" module and then visiting admin/config/development/testing and running the individual tests.

Courtesy in contributing code

Note that all contributors to Backdrop projects are added to the "authors" group of the "Backdrop CMS contributed projects repository" which means that anyone, once granted initial permission has access to modify projects being maintained by other authors. This is an issue with GitHub's permission system and for now cannot be avoided. Backdrop's contributors are asked not to directly modify projects being maintained by others without first establishing contact and obtaining the go-ahead from the contrib maintainer.

Contributed development branches

Contrib branches should reflect the core major version (1.x) followed by a hyphen and then your module's major version (1.x). For example 1.x-2.x indicates it is the 2.x version of a module made for Backdrop 1.x.

Contributed releases

Once you have created a module, theme, or layout for Backdrop and added it to the contrib group on GitHub, you'll likely also want it to appear on backdropcms.org. In order to do this, you'll need to create an official release of your project.

When making official releases of your project on GitHub, please follow the same semantic versioning patterns used by Backdrop core, but also include a prefix indicating the version of Backdrop core in which the project is compatible. Contrib release tags should include the core major version followed by a hyphen and then your module's major.minor.patch number. For example 1.x-1.0.0 indicates it is the 1.0.0 release of a project that is compatible with Backdrop 1.x. See the devel module releases for a real-world example.

Steps to create an official release are as follows:

  1. Post your module, theme, or layout in the contrib group on GitHub
  2. Test thoroughly, be sure everything works as intended.
  3. Create a tag for your release, name it semantically, for example: 1.x-1.0.0
  4. Push your tag up to GitHub
  5. Visit the releases tab for your project.
  6. Edit the tag you just pushed up.
  7. Add a release title, description, and click the "Publish release" button to create your release.

Your new release should be packaged by the Backdrop CMS packing script within seconds. Almost as soon as you see the new package added to your tag, it should also appear on backdropcms.org.