Conventional commits
Closes #121 (closed)
This MR introduces conventional commits. They follow a conventional commit spec by Angular (it's not tied to the Angular framework in any way): https://github.com/angular/angular/blob/master/CONTRIBUTING.md#type
https://conventionalcommits.org/
Conventional commits allow us to automatically build CHANGELOGs and automatically determine the needed version bumps/releases for each individual package.
We're using commitlint
to lint each commit message, but you can appease the linter/validator by making your commit messages start with 'fixup!' or 'squash!' (more info on that git flow here: http://fle.github.io/git-tip-keep-your-branch-clean-with-fixup-and-autosquash.html
In CI, we have a new step, that validates commit messages on the MR branch. We'll make sure that this step succeeds with at least one fully valid conventional commit (i.e. non-fixup!, non-squash! message), before merging MRs.
An example of a good commit message is:
feat(server): add GraphQL endpoint
Adds a GraphQL endpoint to server, located at /graphql.
closes #317
Something like that.
To help you write conventional commits, there's a nifty commit helper will guide you through the required type, scope, breaking change descriptions, etc., and you can summon it with yarn cz
, where cz is commitzen (https://github.com/commitizen/cz-cli#using-the-command-line-tool)