Conventional Commits¶
Using the Conventional Commits specification
Format of the commit message¶
Add either a !
before the :
or a footer BREAKING CHANGE:
to trigger a major version bump.
Types¶
- build
- Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
- ci
- Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
- chore
- Other changes that don't modify src or test files
- docs
- Documentation only changes
- feat
- A new feature
- fix
- A bug fix
- perf
- A code change that improves performance
- refactor
- A code change that neither fixes a bug nor adds a feature
- revert
- Reverts a previous commit
- style
- Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- test
- Adding missing tests or correcting existing tests
Components¶
Tools used as part of this approach.
Commitlint¶
Commitlint is a tool to check commit messages for "conventional commit" formattting.
Standard-version¶
Standard-version is a utility to generate a release on a branch.
It will create/update a CHANGELOG.md file, and list notable commits from the git history.
Note
The utility only runs on the local repository, so nothing is pushed, no PRs are created or merged.
To further automate, release-please or semantic-release may be next steps.
Links to commit hashes on Github will be generated for the remote named origin
.
Note
Link generation only works in the main checked out folder for a repository.
It does not work in a checked out worktree folder.
Warning
When running standard-release -f
for a first release, it will not do version bumping. Update for instance the version in docs/antora.yml
and stage it in git index before releasing.
Local configuration¶
-
Added command
git-commitlint
andgit-standard-version
in~/bin
with default behaviour, also available as git subcommands. -
Added aliases
git cl
andgit rel
. -
Added a pre-push script under
~/.config/git/hooks
. Set the hooksPath for a local repository to use these standard scripts.