|
|
||
|---|---|---|
| tests | ||
| .editorconfig | ||
| .gitlab-ci.yml | ||
| .releaserc.yml | ||
| app.py | ||
| README.md | ||
DEMO Conventional Commits and Semantic Release
Agenda
- Conventional Commits
- Semantic Versioning
- Semantic Release
Conventional Commits
Defined commit message schema, which allows for automation of releases based on Semantic Versioning (SemVer).
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Conventional Commits are considered stable with version 1.0.0
I personally prefer Angular conventions. Which IMHO give more flexibility for various changes with more commit types.
The default conventions offer only a few types (feat, fix, BREAKING CHANGE or use ! as a suffix after type/scope), others are allowed, but not defined. Which Angular Conventions fixes. Such as build, chore, ci, docs, style, refactor, perf, test.
Semantic Versioning
SemVer version format MAJOR.MINOR.PATCH, e.g. 1.16.3. The version (git tag) can be prefixed with v, e.g. v2.3.4.
Semantic Release
As the name suggests, this app is responsible for creating new releases following Semantic Versioning.
It uses the commit types to determine, what kind of a release should be released next.
BREAKING CHANGEor!=>MAJORfeat=>MINORfix=>PATCH