How to Contribute - PurposeOpen/Platform GitHub Wiki

We'd love to have your contributions to the Purpose Platform. Your code will help provide global movements with the tools they need to grow and affect change.

Style Guide

Branching Model

The branching model is based on one described by nvie. Instead of a branch for each release, we have one long-running 'release' branch. More info on releases can be found here.

branching model

*Important Notes*

  • Work on a feature branch off of 'develop' branch, not master or a branch of master.
  • Rebase instead of merge. When updating your local 'develop' branch with remote 'develop', and when updating a feature branch with changes in 'develop' branch, rebase instead of merge.

Set Up the Repository

Create a Feature Branch

  • Update 'develop' with upstream 'develop':
    git fetch upstream; git checkout develop; git pull --rebase upstream develop
  • Create a feature branch:
    git checkout branch feature_name

Work on a Feature

  • Update 'develop' and feature branches with upstream 'develop':
    git fetch upstream; git checkout develop; git pull --rebase upstream develop
    git checkout feature_name; git rebase develop;
  • Work on the feature and commit the code:
    git add . ; git commit -m 'commit message'
  • Push feature branch to GitHub:
    git push origin feature_name
  • Repeat these steps until the feature is complete.

Prepare the Feature for a Pull Request

  • Update 'develop' and feature branches with upstream 'develop':
    git fetch upstream; git checkout develop; git pull --rebase upstream develop
    git checkout feature_name; git rebase develop;
  • Make sure all tests pass.
  • Push feature branch to GitHub:
    git push origin feature_name

Submit a Pull Request


For more details on using GitHub with this workflow, see the diaspora project's docs, which served as a model for ours.