Contribution Guide

Translators

For translators we have a transifex account where you can translate the .po files and don’t need to install git or mercurial to be able to contribute. All changes there will be automatically sent to the project.

Developers

For contributing to django-cms follow these steps:

  • You need either git or Mercurial with the hg-git extension installed.
  • You need an account on github.
  • On github you can see all the open tickets. Please be sure to check there first before you open a new one.
  • Go to the project-page and click on the fork button. This creates your own repository of django-cms2 and enables you to push updates to this repository. On your fork you should see “Your Clone URL:”. Copy the URL and clone it with git or hg-git.
$ git clone YOURURL

or:

$ hg gclone YOURURL

Make your changes and commit.

$ git commit

or:

$ hg commit

After you are finished you can push to github.

$ git push origin

or:

$ hg gpush origin

After you have done the push, your changes should show up in the project network.

You can now press on “pull request” to send the project leaders a message of what your changes contain and inform them that there are new changes ready to be incorporated into the master tree.

After some time you local and github repository will probably become out-of-date. To get the newest changesets add a new remote:

$ git remote add upstream git://github.com/digi604/django-cms-2.0.git

or:

$ hg gremote add upstream git://github.com/digi604/django-cms-2.0.git

After this you can do a fetch from upstream:

$ git fetch upstream    # only download
$ git pull upstream master      # download and merge master branch

or:

$ hg gfetch upstream    # download
$ hg update             # merge

Now your repository is up-to-date again.

It is also good practice to use a branch for every bug / feature you commit if you have more than one or you need more then one commit. This helps that we can merge the whole branch and don’t have to cherry-pick the single commits that make up the fix / feature. Also it allows us to give you instructions if something is missing (tests, docs) and you don’t have to interfere with other things you might be working on.

If you have questions you may wish to read some tutorials about git or Mercurial or ask on IRC or the mailing list.

Questions/Feedback

If you notice errors with this documentation, please open a ticket and let us know!

Please only use the ticket tracker for criticisms and improvements on the docs. For tech support, ask in the IRC channel or post to the django-cms mailing-list.