<type>(<scope>): <subject>
# │       │          │
# │       │          └─⫸ Summary (Required)
# │       │               summary in present tense. not capitalized. no period at the end
# │       │
# │       └─⫸ Commit Scope (Optional)
# │            backend|frontend|datahub|retrain ...
# │
# └─⫸ Commit Type (Required)
#     build|ci|docs|feat|fix|perf|refactor|revert|style|test|chore|revert
#
# Conventional Commits
#   https://www.conventionalcommits.org/en/v1.0.0/#summary
#   https://www.conventionalcommits.org/en/v1.0.0/#specification
# Ignore body and footer since we are using squash and merge.
#
# Conventional Commits recommends the Angular convention commit types
#   https://www.conventionalcommits.org/en/v1.0.0/#summary
#   https://github.com/angular/angular/blob/master/CONTRIBUTING.md#type
#
#   fix: bug fix for the user
#   feat: new feature for the user
#   build: changes that affect the build system or external dependencies
#   ci: changes to CI configuration files and scripts
#   docs: changes to the documentation
#   perf: code changes that improves performance
#   refactor: refactoring production code; no functional changes, no api changes
#   style: formatting, missing semi colons, etc; no production code change
#   test: adding missing tests, refactoring tests; No production code change
#   chore: updating grunt tasks etc; No production code change
#   revert: reverts a previous commit
