From ad94118a70354482c6b68b290e54393ce4e2e11f Mon Sep 17 00:00:00 2001 From: Vojtech Mares Date: Thu, 9 Dec 2021 10:03:37 +0100 Subject: [PATCH] docs(README): add agenda --- README.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/README.md b/README.md index 3088e0a..dbc0d5e 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,39 @@ # DEMO Conventional Commits and Semantic Release +## Agenda + +- Conventional Commits +- Semantic Versioning +- Semantic Release + +## [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) + +Defined commit message schema, which allows for automation of releases based on [Semantic Versioning (SemVer)](https://semver.org/). + +``` +[optional scope]: + +[optional body] + +[optional footer(s)] +``` + +Conventional Commits are considered stable with version `1.0.0` + +I personally prefer [Angular conventions](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines). Which IMHO give more flexibility for various changes with more commit `type`s. + +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](https://semver.org/) + +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](https://semantic-release.gitbook.io/semantic-release/) + +As the name suggests, this app is responsible for creating new releases following [Semantic Versioning](https://semver.org/). + +It uses the commit types to determine, what kind of a release should be released next. + +- `BREAKING CHANGE` or `!` => `MAJOR` +- `feat` => `MINOR` +- `fix` => `PATCH`