# Gitflow ## Branches **To be defined** ## Conventional Commits 1.0.0 La spécification de Conventional Commits est une convention légère pour des messages de commit propre. Il fournit un ensemble simple de règles pour créer un historique de commit explicite; Ce qui facilite l’écriture d’outils automatisés. Cette convention est liée à SemVer, en décrivant les fonctionnalités, les correctifs et les modifications importantes apportées aux messages de commit. Le message du commit doit être structuré comme suit : ``` [optional scope]: [optional body] [optional footer(s)] ``` Le commit contient les éléments structurels suivants, permettant de communiquer à l’intention des consommateurs de votre bibliothèque : * **build**: changements qui affectent le système de build ou des dépendances externes (npm, make…) * **ci**: changements concernant les fichiers et scripts d’intégration ou de configuration (Travis, Ansible, BrowserStack…) * **feat**: ajout d’une nouvelle fonctionnalité * **fix**: correction d’un bug * **perf**: amélioration des performances * **refactor**: modification qui n’apporte ni nouvelle fonctionalité ni d’amélioration de performances * **style**: changement qui n’apporte aucune alteration fonctionnelle ou sémantique (indentation, mise en forme, ajout d’espace, renommante d’une variable…) * **docs**: rédaction ou mise à jour de documentation * **test**: ajout ou modifications de tests ### Exemples #### Message de commit avec description et breaking change dans le footer ``` feat: allow provided config object to extend other configs BREAKING CHANGE: `extends` key in config file is now used for extending other config files ``` #### Message du commit avec ! attire l’attention sur un BREAKING CHANGE ``` feat!: send an email to the customer when a product is shipped ``` #### Message du commit avec scope et ! attire l’attention sur un BREAKING CHANGE ``` feat(api)!: send an email to the customer when a product is shipped ``` #### Message du commit avec ! et BREAKING CHANGE dans le pied de page ``` chore!: drop support for Node 6 BREAKING CHANGE: use JavaScript features not available in Node 6. ``` #### Message du commit sans corps de texte ``` docs: correct spelling of CHANGELOG ``` #### Message du commit avec scope ``` feat(lang): add polish language ``` #### Message du commit avec plusieurs paragraphes et plusieurs pieds de page ``` fix: prevent racing of requests Introduce a request id and a reference to latest request. Dismiss incoming responses other than from latest request. Remove timeouts which were used to mitigate the racing issue but are obsolete now. Reviewed-by: Z Refs: #123 ``` ### Pourquoi utiliser Conventional Commits ? * Génération automatique de CHANGELOGs. * Déterminer automatiquement un changement de version sémantique (en fonction des types de commits inclus). * Communiquer la nature des changements aux membres de l’équipe, au public et aux autres parties prenantes. * Déclencher des processus de génération et de publication. * Faciliter la contribution des personnes à vos projets en leur permettant d’explorer un historique de commit plus structurée. Basé sur la convention commits 1.0.0 du site https://www.conventionalcommits.org/fr/v1.0.0/