diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d1cc4ae..831934a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,22 +2,134 @@ - [Bonnes pratiques](#bonnes-pratiques) - [Développement](#développement) + - [Avant de travailler](#avant-de-travailler) + - [Cloner le dépôt](#cloner-le-dépôt) + - [Se mettre dans le répertoire `web-services`](#se-mettre-dans-le-répertoire-web-services) + - [Synchronisation](#synchronisation) + - [Nouvelle branche](#nouvelle-branche) + - [Pull Request](#pull-request) + - [Nouvelle instance ?](#nouvelle-instance-) - [Python](#python) - [version de python](#version-de-python) - [Utiliser un environnement virtuel](#utiliser-un-environnement-virtuel) - [requirements.txt](#requirementstxt) + - [Tester localement](#tester-localement) + - [node](#node) + - [Tester localement](#tester-localement-1) - [Documentation](#documentation) + - [paquets ezs](#paquets-ezs) - [examples.http](#exampleshttp) - [Tester le swagger](#tester-le-swagger) - [Déploiement](#déploiement) - [Tester sur la vi](#tester-sur-la-vi) - [Vérifier l'utilisation (grafana)](#vérifier-lutilisation-grafana) + - [Déployer sur la vp](#déployer-sur-la-vp) - [Après le déploiement](#après-le-déploiement) - [catalogues LODEX](#catalogues-lodex) - [Objectif TDM](#objectif-tdm) ## Développement +### Avant de travailler + +#### Cloner le dépôt + +Il faut *avoir cloné* le [dépôt](https://gitbucket.inist.fr/tdm/web-services) +sur sa machine: + +```bash +git clone ssh://git@gitbucket.inist.fr:22222/tdm/web-services.git +``` + +Cette étape n'est nécessaire qu'une seule fois. + +#### Se mettre dans le répertoire `web-services` + +On réutilise *toujours le même répertoire de travail* (normalement nommé par la +commande précédente `web-services`). + +#### Synchronisation + +Avant de commencer la création d'un nouveau service, on rapatrie les dernières +modification du dépôt (à partir de la racine, c'est-à-dire le répertoire +`web-services`): + +```bash +git pull +``` + +#### Nouvelle branche + +En fonction de ce que vous voulez faire, créez une branche: + +- `create-service` où vous remplacez `service` par le nom du service que vous + envisagez de *créer* +- `fix-service` où vous remplacez `service` par le nom du service que vous + envisagez de *corriger* +- `improve-service` où vous remplacez `service` par le nom du service que vous + envisagez d'*améliorer* + +```bash +git checkout master # on s'assure qu'on est sur la branche principale +git checkout -b create-service # on crée la branche et on s'y déplace +``` + +#### Pull Request + +Créez une *pull request* où vous pourrez documenter plus largement que dans les +messages de commit ce que vous faites. +Ça permet également d'avoir une discussion portant sur la modification en cours. +Ça permettra aussi de montrer votre code à quelqu'un d'autre avant de le +valider. +La *pull request* se crée à partir de la branche que vous avez créée, mais elle +doit au moins contenir un commit. + +Sur le [menu Pull requests](https://gitbucket.inist.fr/tdm/web-services/pulls) +de GitBucket cliquez sur `New pull request` (en haut à droite de la page). + +![bouton de création d'une PR](images/pull-request-button.png) + +Si vous ne voyez pas le bouton, connectez-vous à GitBucket. + +![bouton de connexion](images/gitbucket-signin.png) + +Par défaut, on tombe sur une page comparant la branche `master` à... la branche `master`. + +![Comparaison par défaut](images/pull-request-default.png) + +Comme vous avez déjà poussé votre branche, vous pouvez la sélectionner (à +droite): + +![Page de création de PR](images/pull-request-creation.png) + +Il est important de donner un titre et une description parlante à votre *pull +request*, c'est ce qui permettra de la retrouver facilement. +En général, le titre est lié au nom de la branche, si on a été bien inspiré en +créant la branche. + +![formulaire de description de la PR](images/pull-request-description.png) + +Comme la *pull request* est dédié à la communication entre nous, on peut y +écrire en français (dans un projet *open source* classique, on préfère utiliser +l'anglais). + +![PR créée](images/pull-request-created.png) + +### Nouvelle instance ? + +- vérifier si une instance existante serait réutilisable + +Si non: + +- déterminer un nom d'instance en suivant les conventions de nommage (un tiret + au milieu, ...) +- création du répertoire de l'instance +- création de la route v1/... + +Dans tous les cas: + +- création du .ini v1/service.ini + ### Python #### version de python @@ -26,8 +138,16 @@ #### requirements.txt +#### Tester localement + +### node + +#### Tester localement + ## Documentation +### paquets ezs + ### examples.http ### Tester le swagger @@ -36,8 +156,13 @@ ### Tester sur la vi +- service +- www-home + ### Vérifier l'utilisation (grafana) +### Déployer sur la vp + ## Après le déploiement ### catalogues LODEX diff --git a/images/gitbucket-signin.png b/images/gitbucket-signin.png new file mode 100644 index 0000000..0736e78 --- /dev/null +++ b/images/gitbucket-signin.png Binary files differ diff --git a/images/pull-request-button.png b/images/pull-request-button.png new file mode 100644 index 0000000..fc49aeb --- /dev/null +++ b/images/pull-request-button.png Binary files differ diff --git a/images/pull-request-created.png b/images/pull-request-created.png new file mode 100644 index 0000000..cdf1f36 --- /dev/null +++ b/images/pull-request-created.png Binary files differ diff --git a/images/pull-request-creation.png b/images/pull-request-creation.png new file mode 100644 index 0000000..3517175 --- /dev/null +++ b/images/pull-request-creation.png Binary files differ diff --git a/images/pull-request-default.png b/images/pull-request-default.png new file mode 100644 index 0000000..1cadf8c --- /dev/null +++ b/images/pull-request-default.png Binary files differ diff --git a/images/pull-request-description.png b/images/pull-request-description.png new file mode 100644 index 0000000..a1d922d --- /dev/null +++ b/images/pull-request-description.png Binary files differ