

When there are any code changes (push, merge, etc) to our code repository, semantic release runs to determine if a new version is needed, and if so, it will create a git tag for it, and publish a release version in our git.


Why? Because it is not exactly part of our code (except for the configurations) but Semantic Release is used and installed in our Continuous Integration (CI) environment (e.g. Semantic Release is developed in NodeJS, but it can be used on any code base, e.g. 1.0.0-alpha, 1.0.0-beta before 1.0.0 How Semantic Release works? Semantic Release follows the standard Semantic Versioning format of v >= 1 → 1st public stable release How do we determine the next version number? Should it be a major version (v1 to v2) or a minor version (v1.1 to v1.2)? Semantic Release is a software used by software developers to manage the versioning of our code for us automatically. When it comes to releasing software projects to production, versioning can be a topic that is easily overlooked as something that is too trivial and done manually.
