Skip to content

Conventional commits

Jure requested to merge conventional_commits into master

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)

image

🎉

Edited by Jure

Merge request reports