Unsentimental versioning
Blog post from LogRocket
Semantic versioning is a widely used strategy for software versioning, but it can be challenging due to its strict specification which requires developers to manually assess changes for each new release. This often leads to "sentimental versioning," where human judgment clouds the versioning process. To combat this, tools like semantic-release can be used in the CI environment to automate versioning by analyzing commit messages, requiring developers to adhere to a standard known as Conventional Commits. Commitizen assists in standardizing commit messages by guiding developers through the commit process with a series of questions, ensuring consistency. Semantic-release, although initially designed for Node projects, can be applied to any project type using plugins, and works by executing on the CI environment to automate releases without human intervention, thus ensuring an unbiased versioning process. While this approach may seem excessive for some projects, it is especially beneficial for larger teams or complex projects where versioning clarity is crucial.