From 3cdfdfcc41cb601ee1b24b592f5cfa97ad6c3c33 Mon Sep 17 00:00:00 2001 From: Tim Schwenke Date: Sun, 5 Sep 2021 15:14:15 +0200 Subject: [PATCH] docs(development): Add infos about Semantic Release --- DEVELOPMENT.md | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 6b76fbb..9a083f5 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -2,7 +2,7 @@ ## Pre-Commit -Used for maintaining pre-commit hooks. +Used for maintaining pre-commit hooks. Local setup required. * * @@ -12,3 +12,34 @@ It should automatically run on every commit. It is also run as part of the CI/CD pipeline. To trigger pre-commit manually, execute `pre-commit run -a`. + +## Semantic Release + +Used for automatically releasing new versions. Only relevant within CI/CD, so no +local setup required. + +* +* + +Configuration of Semantic Release takes place in multiple places: + +* [`.releaserc.json`](.releaserc.json): Semantic Release is configured in this + file. For example the plugins used or plugin specific configuration. Currently + this project uses the Conventional Commits preset, a bunch of additonal types + and a few additional release rules. + +* [`.local/ci/`](.local/ci): Dependency management for the Semantic Release + environment. At runtime in CI/CD pipeline the `package.json` and lock file are + copied to the root of the project. + +* [`.github/workflows/primary.yaml`](.github/workflows/primary.yaml): Here Semantic + Release is actually executed. + +## Random Q&A + +### How to release a new version? + +Push to the master branch. Semantic Release will run as part of the primary +GitHub Actions workflow and act accordingly. SR automatically updates the changelog, +creates a tag and GitHub Release. See [`.releaserc.json`](.releaserc.json) for +the SR configuration.