Git & CI/CD ReferenceUpdated: 2026-11-06

Conventional Commits Specification & SemVer Release Rules Reference

Standard prefix keywords (feat, fix, docs, chore), breaking change exclamation marks, and automated release bumps.

The Conventional Commits specification is a lightweight convention on top of commit messages that provides an easy set of rules for creating an explicit commit history. It enables automated tooling (like Semantic Release or Changesets) to determine semver version bumps and generate changelogs automatically.

Standard Commit Types & SemVer Mapping

The core prefixes recognized by semantic release automation tools.

Type PrefixSemVer Release ImpactDescription & Example
`feat:``MINOR` (0.X.0)Introduces a new user-facing feature (e.g. feat: add client-side WebP converter)
`fix:``PATCH` (0.0.X)Patches a bug in production code (e.g. fix: prevent canvas memory leak on iOS)
`docs:`NoneDocumentation only changes (e.g. docs: update API cURL examples)
`style:`NoneFormatting, white-space, semi-colons (no code logic changes)
`refactor:`NoneCode restructuring that neither fixes a bug nor adds a feature
`perf:``PATCH` (0.0.X)Code change that improves execution performance
`test:`NoneAdding missing unit/integration tests or correcting existing tests
`chore:`NoneMaintenance tasks, dependency updates, or internal build configs

Breaking Changes & Anatomy

How to communicate breaking API changes that require a MAJOR SemVer bump.

Syntax PatternSemVer ImpactFull Example
`feat!: <desc>` (Exclamation mark)`MAJOR` (X.0.0)feat!: drop Node.js 16 runtime support
`BREAKING CHANGE:` footer`MAJOR` (X.0.0)fix: change return type of parseUser\n\nBREAKING CHANGE: parseUser now returns Promise

Frequently Asked Questions

Why adopt conventional commits in team projects?

Conventional commits enable automated CHANGELOG.md generation, eliminate debate over pull request naming, and automate semantic package releases without manual tagging.

Can I include a scope in the commit message?

Yes! Scopes are placed in parentheses after the type, such as `feat(auth): add OAuth2 provider` or `fix(pdf): handle corrupted xref tables`.