Skip to content

COAL Development Workflow

Taylor Alexander Brown edited this page May 23, 2017 · 1 revision

COAL Development HOWTO

How to work with us on Github

The following is a recommended COAL Github workflow for collaborative software development:

Creating a Pull Request

  1. create a local copy of the COAL repo git clone https://github.com/capstone-coal/pycoal.git
  2. configure remotes on local - specify the COAL repo remote as 'upstream': git remote add upstream https://github.com/capstone-coal/pycoal.git
  3. fetch the branches and their respective commits from the upstream repository: git fetch upstream
  4. master is our main branch which should always be stable
  5. log an issue in the coal issue tracker. Please use labels to classify your issue. If you need a new label to be created then please state this in your issue description.
  6. create a branch in your local repo which tracks master in upstream. The branch name should reflect the issue number you created above e.g. ISSUE-1 git checkout -b ISSUE-1 upstream/master
  7. make the changes in your branch & commit - with commit message please! e.g. git commit -m "ISSUE-1 add drafts of project statement and report"
  8. synchronize your changes with upstream: git push upstream ISSUE-1
  9. now would be a good time to lint your code... TODO
  10. within GitHub, create a Pull Request from ISSUE-1 into master ... at this point, you might assign the Pull Request to someone else to check before merging

Merging into Master Branch

  1. COMMITTERS ONLY: within GitHub, Merge the changes into master. Ensure that all builds and tests are passing.
  2. bring all those changes back into your local repo: git fetch upstream
  3. rebase (don't 'pull' - because this creates another commit) changes on your branch: git rebase upstream/master

(you might also want to rebase local/master too)