Git workflow

Commit messages

Karma commits.

http://karma-runner.github.io/1.0/dev/git-commit-msg.html

Karma says 70 characters for the first line, but Github wraps at 50. Let's go with 50.

Branching model

Our workflow is based on Vincent Driessen's "successful git branching model", with some minor adjustments. We still utilize develop, master, and various types of feature branches, however we do not tag releases and there are no release branches.

git-flow is a git plugin that helps facilitate this branching strategy. It's not required, but can help make things a bit easier to manage. There is also a good write up on using git-flow.

Feature branching

All development happens in a feature branch. Feature branches are named as type/branch-slug, where type can be one of:

  • feature -- New features, both major and minor, in development
  • bugfix -- Fixing a specific bug or regression in the code
  • refactor -- Re-writing or re-architecting parts of the system
  • hotfix -- Patches applied directly to the master branch and deployed to live

Important

Feature branches are not considered complete until they include all of the following:

  • Code that conforms to our coding style.
  • Unit tests that pass locally and in our CI environment.
  • Documentation updates, as needed.

When a feature branch has been merged into develop, it is the responsiblity of that branches main developer to ensure it is deleted from Github.