Principle:Cypress io Cypress Semantic Versioning
| Knowledge Sources | |
|---|---|
| Domains | Release_Engineering, Versioning |
| Last Updated | 2026-02-12 00:00 GMT |
Overview
A commit-message-driven version calculation mechanism that determines the next semantic version (major.minor.patch) based on conventional commit prefixes in the Git history.
Description
Semantic versioning automates version determination by analyzing Git commit messages following the Conventional Commits specification. Each commit prefix maps to a version bump type: feat: triggers a minor bump, fix: triggers a patch bump, and breaking: or BREAKING CHANGE: triggers a major bump. The algorithm scans commits since the last release tag, determines the highest-priority bump, and computes the next version.
This automation eliminates manual version management and ensures that version numbers accurately communicate the nature of changes to users.
Usage
Use this principle during the release process to determine the next version number for both the npm package and the binary distribution.
Theoretical Basis
Conventional Commit → Version Bump Mapping:
feat: new feature → minor (x.Y.0)
fix: bug fix → patch (x.y.Z)
breaking: / BREAKING CHANGE → major (X.0.0)
chore:, docs:, etc. → no bump
Algorithm:
1. Find last release tag (e.g., v13.6.1)
2. Collect commits since that tag
3. Parse each commit message for prefix
4. Determine highest-priority bump (major > minor > patch)
5. Apply bump to last version → next version