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.

Automated testing is not (yet) available. If the project you are contributing to includes tests, it is nice to run these in your browser locally by enabling the "SimpleTest" module and then visiting admin/config/development/testing to run the tests for the project.

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 issues and labels for all projects in backdrop-contrib. Please use this power responsibly.

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. On GitHub, 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. If the packager succeeds, a package named "Download [Project]" will be added to the release on GitHub, and almost as quickly, it will also appear on backdropcms.org. If the packager fails, an error message will be attached to the release instead of the packaged download.