Skip to content

Project workflow

There are many project workflows. Here are some:

git model Code review Features
main No if main can be broken, also called 'trunk based development'
main, develop No if main needs not to be broken
main, develop, topic branches No if main needs not to be broken and there are multiple contributors
main, develop, topic branches Yes if main needs not to be broken and there are multiple team members

In this course, we will scale up from the first to the last project workflow.

flowchart TD
  main[main branch. Purpose: always works]
  develop[develop branch. Purpose: merge passing builds]
  topic[issue_x branch. Purpose: develop in isolation]
  issue[GitHub Issue x. Purpose: describe a task]

  main --> |update| develop
  develop --> |builds cleanly| main
  topic --> |builds cleanly, passed review| develop
  develop --> |update| topic

  issue --> topic

More basic GitHub workflows

  1. Modify README on main branch using GitHub web interface
  2. Modify README on topic branch using GitHub web interface
  3. Modify README on main branch using git
  4. Modify README on topic branch using git
  5. Merge topic branch to develop yourself

Project workflows

Phases

  1. Create all classes
  2. Create all has-a relations
  3. Create all is-a-type-of relations

Social