|
| 1 | +# GitFlow du DSFR Chart |
| 2 | + |
| 3 | +## Installation |
| 4 | + |
| 5 | +Le dépôt est disponible à cette adresse : https://github.com/GouvernementFR/dsfr-chart |
| 6 | + |
| 7 | +Afin de pouvoir commencer à développer et contribuer au DSFR-chart, assurez-vous tout d'abord de faire un fork du projet depuis votre compte GitHub (https://help.github.com/articles/fork-a-repo/) |
| 8 | + |
| 9 | +Il suffit ensuite de cloner votre fork, en téléchargeant les sources depuis le bouton “clone” de github, ou via un terminal avec commande : |
| 10 | +```shell |
| 11 | +git clone https://github.com/VOTRE_NOM_UTILISATEUR_GITHUB/dsfr |
| 12 | +``` |
| 13 | + |
| 14 | +La branche **dev** est la principale branche de travail - la branche **main** correspondant aux versions de productions livrées aux utilisateurs. Il est donc nécessaire de créer de nouvelles branches de travail pour l'ajout et la modification de packages depuis la branche **dev**. (Voir la section [Utilisation > Git](#git), pour le fonctionnement détaillé). |
| 15 | + |
| 16 | +## Git |
| 17 | + |
| 18 | +### Branches |
| 19 | +Afin de travailler sur un nouveau package, ou un correctif d'un package existant, il est nécessaire de créer une nouvelle branche à partir de la branche `dev`. |
| 20 | +```shell |
| 21 | +git checkout -b prefixe/ma-branche dev |
| 22 | +``` |
| 23 | + |
| 24 | +#### Nommage des branches <!-- omit in toc --> |
| 25 | +Afin d'organiser et d'identifier rapidement la nature du contenu des branches, il est nécessaire de préfixer les branches : |
| 26 | +feature/nom-de-la-branche pour les nouvelles fonctionnalités ou nouveaux composants. |
| 27 | +fix/nom-de-la-branche pour les correctifs apportés sur des fonctionnalités ou composants existants. |
| 28 | + |
| 29 | + |
| 30 | +### Commits |
| 31 | +Nous utilisons des [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) qui doivent donc s'écrire sous la forme suivante : |
| 32 | + |
| 33 | +``` |
| 34 | +<type>[optional scope]: <description en français> |
| 35 | +
|
| 36 | +[optional body] |
| 37 | +
|
| 38 | +[optional footer(s)] |
| 39 | +``` |
| 40 | + |
| 41 | +Les valeurs possibles pour le `type` de commit sont : |
| 42 | +* **fix**: Un commit de type `fix` permet de patcher un bug ([[PATCH]](https://semver.org/#summary)) |
| 43 | +* **feat**: Un commit de type `feat` permet d'introduire une nouvelle fonctionnalité ([[MINOR]](https://semver.org/#summary)) |
| 44 | +* D'autres types que `feat` et `fix` peuvent être utilisés, nous utilisons [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional), qui recommande l'utilisation des principaux types suivants : `build`, `chore`, `ci`, `docs`, `style`, `refactor`, `perf`, `test` |
| 45 | + |
| 46 | +* **BREAKING CHANGE**: Un commit avec un footer `BREAKING CHANGE:` introduit un changement important dans le code ([[MAJOR]](https://semver.org/#summary)) |
| 47 | + |
| 48 | +Les messages de commits sont écrits en français (exception faite des mots réservés par conventional commit, ainsi que les termes techniques). |
| 49 | + |
| 50 | +Exemple de commit simple : |
| 51 | + |
| 52 | +``` |
| 53 | +feat: ajout du composant BarChart |
| 54 | +``` |
| 55 | + |
| 56 | +Exemple de commit avec `scope` le nom du composant ou de la fonction, description et `BREAKING CHANGE` footer |
| 57 | +``` |
| 58 | +fix(core): maj fonction: ancien-nom devient nouveau-nom |
| 59 | +
|
| 60 | +BREAKING CHANGE: nouveau nom pour la fonction .... |
| 61 | +``` |
| 62 | + |
| 63 | +### Signature des commits |
| 64 | + |
| 65 | +Afin de garantir l'originalité des contributions, nous demandons aux contributeurs de signer leurs commits et/ou de nous faire parvenir le [certificat de garantie de l'origine du développeur](doc/legal/cgod.md) signé. |
| 66 | + |
| 67 | +Pour signer un commit : |
| 68 | + |
| 69 | +``` |
| 70 | +git commit --signoff (ou git commit -s) |
| 71 | +``` |
| 72 | + |
| 73 | +### Proposer une pull request |
| 74 | + |
| 75 | +Important |
| 76 | + |
| 77 | +**Avant de proposer une pull request**, assurez vous que vous respectez la [garantie d’origine de vos développements](https://github.com/GouvernementFR/dsfr/blob/main/doc/legal/cgod.md), et pour les personnes **n'étant pas des agents de l’État,** que vous avez pris connaissance des documents relatifs à la [cession des droits d’auteur](doc/legal/cession.md), **document à nous transmettre signé**. |
| 78 | + |
| 79 | +**Toute ‘pull request’ ne respectant pas ces pré-requis sera systématiquement rejetée.** |
| 80 | + |
| 81 | +Pour contribuer sur le git DSFR, il convient d’utiliser une “pull-request” (PR). |
| 82 | +Lorsque vous estimez que votre développement est terminé et qu'il peut-être révisé par l'équipe DSFR, vos devez créer une pull request depuis github (https://github.com/GouvernementFR/dsfr/pulls ) ou github cli (gh). |
| 83 | +La pull-request suit les même règles de nommage décrites précédemment (branches, commits), à savoir le [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/). |
| 84 | +Une description détaillant le problème à résoudre, la façon dont la contribution résout le problème et toute autre information utile à la revue de code est fortement conseillée ! |
| 85 | + |
| 86 | +La pull request doit être faite depuis la branche de votre fork vers la branche **dev** du dépôt officiel. |
| 87 | + |
| 88 | +### Recette |
| 89 | + |
| 90 | +L'ouverture de chaque nouvelle pull request sur le Github du DSFR-chart génère un environnement de recette sur une URL Netlify de type : |
| 91 | +``` |
| 92 | +https://deploy-preview-[NUMERO DE LA PULL REQUEST]--dsfr-chart.netlify.app/ |
| 93 | +``` |
| 94 | + |
| 95 | +Cet environnement de recette expose le contenu du repertoire `/docs` basé sur la page (`public/index.html`) présentant l'ensemble des graphiques mis à disposition des utilisateurs du DSFR-chart. Voir la section [Déploiement d'une page de démonstration](./CONTRIBUTING.md#déploiement-dune-page-de-démonstration) |
0 commit comments