Skip to content

Workflow

Spencer Pollock edited this page Feb 26, 2019 · 5 revisions

GitHub Workflow

If you haven't already, please check out the CONTRIBUTING file document for how to contribute to this project. Discussed here is a high-level view of how the git branching system will work in the project. The workflow will be as follows:

git branching and workflow

The project will follow a master-feature-hotfix model that I've modelled after a few repos (some monolithic repos as well). The master-feature-hotfix model describes a branch-folder-folder naming structure. There will be the master branch (or the working copy of the product) followed by two branch types of feature/ and hotfix/. Feature-folder branches (feature/[branch | folder]_name(/)) allows for multiple "project" features to be nested within a branch name. These Feature-Folder branches will branch from master and will be merged in after the feature is complete. The Hotfix-Folder branches are also branched from master, but focus only on specific issues labelled "hotfix" from the project's issues page. Once a hotfix has been completed, a PR will be made to merge it into the master branch and released.

Reports

Project reports are to be created in GitHub issues for GitHub Milestone (milestone/sprint) tracking. The project has been set up with GitHub issue templates to allow quick report generation and conformity. Report tracking will be monitored through GitHub milestones as well. They will flow in the following order:

  • [ISSUE] Week [n..n+m] report -> [MILESTONE] Sprint i
  • [ISSUE] Sprint [n..n+m] report -> [MILESTONE] Milestone j

where n is the week/sprint number, m is the difference in reports, i is the sprint number and j is the milestone number

A milestone is tracked in and of itself. The documentation is through the week and sprint reports. Normally a milestone would be a complete release of the project, however, as this project has no develop branch all features are merged into master and deployed for usage. While this could end-user issues, that is why there are 100% passing test requirements to avoid as many technical issues as possible. Milestones are simply used for major milestones of the project that I wish to example and show off where possible.

Release Process

The product release process will be as follows (as a rough draft for the moment until I digitize it):

Workflow process was inspired by @mikenikles's Medium post.

development and release process

Every push to master is a release. Every. Push. While this may be frowned upon, this will allow the project's most recent updates and fixes to be available. With strenuous testing, the goal is to be as error free as possible (like all projects should aim to be).

Clone this wiki locally