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
- Overview of the git branches
- Working with this git branching model
- Merge topic branch to develop with a code review
More basic GitHub workflows¶
- Modify README on main branch using GitHub web interface
- Modify README on topic branch using GitHub web interface
- Modify README on main branch using git
- Modify README on topic branch using git
- Merge topic branch to develop yourself
Project workflows¶
Phases¶
- Create all classes
- Create all has-a relations
- Create all is-a-type-of relations