Conventional Commits
FerrFlow suit la spécification Conventional Commits pour déterminer de combien incrémenter la version.
Règles d’incrément
Section intitulée « Règles d’incrément »| Type de commit | Incrément de version | Exemple |
|---|---|---|
feat: | minor | feat: add wallet subscriptions |
fix: | patch | fix: correct pagination offset |
perf: | patch | perf: cache user queries |
refactor: | patch | refactor: extract auth middleware |
feat!: ou BREAKING CHANGE | major | feat!: remove deprecated endpoint |
chore: | aucun | chore: update dependencies |
docs: | aucun | docs: update README |
ci: | aucun | ci: add linting step |
style: | aucun | style: format code |
test: | aucun | test: add unit tests |
Breaking changes
Section intitulée « Breaking changes »Un breaking change peut être indiqué de deux manières :
Suffixe point d’exclamation :
feat!: remove the /v1/users endpointfix!: change authentication header formatFooter 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 minorfix(db): correct index on user table → incrément patchPas de release
Section intitulée « Pas de release »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.
Commits multiples
Section intitulée « Commits multiples »Lorsque plusieurs commits sont présents depuis le dernier tag, FerrFlow prend l’incrément le plus élevé parmi tous :
fix: correct typo → patchfeat: add export button → minor ← gagnechore: lint → aucunRésultat : incrément minor.