Skip to main content

Conventional Commit Types

This document gives you a quick way to determine the correct conventional commit type for your change.

Diagram

Link to

Table

Multiple Commit Types

Use the most extensive type (the highest in the table below) if a commit includes more than one commit type. Using the broadest type ensures correct versioning. For example, if a feature, as a side-effect, also fixes a bug, it's still a feature. If it closes an issue, please still include Closes: #issue-number in the commit's footer to signify the fix

Breaking Changes

If a commit has breaking changes, you need to declare it using an exclamation mark (!) before the colon (between the type and the colon (:), for example, fix!: Hello world, or, if it exists, the scope and the colon, for example, feat(scope)!: Hello World). With breaking changes, you should include a BREAKING CHANGE: [description] footer describing the breaking change.

Conventional Commit TypeChangelog entryMinimum Version BumpDescription
featFeaturesminor (major if breaking)Newly implemented features
fixBug Fixespatch (major if breaking)Bug fixes
docsDocumentation ChangespatchDocumentation-only changes.
choren/apatchMeta changes that don't change the actual product, but rather the build system, CI configuration, repo structure, etc.
stylen/apatchChanges that only affect the code style (fixed linting issues, etc.)
refactorn/apatchRefactorings only causing internal changes not affecting the actual behavior
perfn/apatchPerformance-only changes, not affecting the actual behavior
testn/apatchAdded, removed or changed unit, integration or E2E tests. May not include changes to the source code.

See also

Conventional Commits Concept »../concepts/conventional-commits