Aller au contenu
FerrFlow

Reference / Conventional Commits

Conventional Commits

FerrFlow suit la spécification Conventional Commits pour déterminer de combien incrémenter la version.

Type de commitIncrément de versionExemple
feat:minorfeat: add wallet subscriptions
fix:patchfix: correct pagination offset
perf:patchperf: cache user queries
refactor:patchrefactor: extract auth middleware
feat!: ou BREAKING CHANGEmajorfeat!: remove deprecated endpoint
chore:aucunchore: update dependencies
docs:aucundocs: update README
ci:aucunci: add linting step
style:aucunstyle: format code
test:aucuntest: add unit tests

Un breaking change peut être indiqué de deux manières :

Suffixe point d’exclamation :

feat!: remove the /v1/users endpoint
fix!: change authentication header format

Footer BREAKING CHANGE :

feat: redesign the API
BREAKING CHANGE: The /v1/users endpoint has been removed. Use /v2/users instead.

Les deux produisent un incrément major.

Les scopes sont optionnels et ignorés pour le calcul de l’incrément. Ils sont utiles pour la lisibilité :

feat(auth): add OAuth2 support → incrément minor
fix(db): correct index on user table → incrément patch

Les commits de type chore, docs, ci, style ou test ne déclenchent pas de release. Si tous les commits depuis le dernier tag sont de ces types, FerrFlow se termine sans créer de nouvelle version.

Lorsque plusieurs commits sont présents depuis le dernier tag, FerrFlow prend l’incrément le plus élevé parmi tous :

fix: correct typo → patch
feat: add export button → minor ← gagne
chore: lint → aucun

Résultat : incrément minor.