Skip to content
Snippets Groups Projects
Commit 8f8155e9 authored by Fᴀʙɪᴇɴ Wᴇʀɴʟɪ's avatar Fᴀʙɪᴇɴ Wᴇʀɴʟɪ :keyboard:
Browse files

init

parents
No related branches found
No related tags found
No related merge requests found
* prérequis
- mail
- check jour-j
* projet
* scenari
* demander a puppetmaster / remi si ok sur le contenu
# Exercices
Pour nous mettre en situation, nous allons travailler chacun dans notre groupe.
Des groupes de 2 à 4 personnes simulent des équipes de travail, composés d'un
ou plusieurs administrateurs et de développeurs (libre à vous d'assigner les droits
dans *gitlab*). Nous allons tous travailler sur une version du même projet.
Au sein d'un groupe, chacun aura pour mission d'effectuer un ou deux changements et
de gérer les conflits éventuels. Nous tenterons également de soumettre certains changements
à d'autres groupes en utilisant des *merge request*.
## Créer une copie du projet
La première étape est de *forker* le projet *plop*.
Cela permettra d'obtenir une copie parfaite du projet *git*, sur laquelle on aura tous les
droits au sein de son groupe.
## Gérer les droits du projet forké
La deuxième étape consiste à gérer les droits au sein de son équipe.
La manière exacte de procéder dépendra du *workflow* que l'on souhaite avoir au sein de son
groupe. Quelques stratégies simples:
* Partagé: tout le monde a les droits d'écriture sur toutes les branches
* Partagé': idem tout pareil, sauf que les branches partagées sont *verouillées*
* Big brother: personne n'a les droits d'écriture sur les branches partagées. Les membres
du groupe soumettent les changements par *merge request*
* Autre: il y a autant de *workflow* possibles que de questions que vous allez poser
Par simplicité, nous choisirons l'une des deux premières.
## Cloner le projet sur son environnement de travail
C'est la dernière étape nécessaire avant de pouvoir réellement travailler sur le projet en lui-même.
Il s'agit de récupérer une copie du projet sur son poste de travail (laptop ou ccdevli).
Une fois l'opération effectuée, on peut enfin travailler sur les fichiers.
## Réécrire plop
Le projet (très compliqué) comporte quelques fichiers de documentation et une source en C dans le répertoire `src`,
à savoir `plop.c`. Ce programme très complexe, une fois compilé en utilisant `gcc plop.c`, permet d'émettre sur la sortie standard le texte `awesome`. Le but de cet exercice est: réimplémenter `plop` dans votre langage favori, et de le placer dans `src` aux côtés de `plop.c`. Ensuite, il faut ajouter le fichier au projet et l'envoyer au serveur afin de permettre à ses collègues de son groupe d'en bénéficier.
* Créer `src/plop.truc`
* l'Ajouter à l'index
* valider et annoter les changements
* propager et partager les changements
## Reconnaissance
Le but de cet exercice est de s'ajouter à la liste de contributeurs du fichier `CONTRIBUTORS.md`.
En effet, nous venons de contribuer au projet *plop*, donc à nous la célébrité.
* S'ajouter à `CONTRIBUTORS.md`
* Ajouter le changement à l'index
* valider et annoter le changement
* propager et partager le changement
## Marre des conflits
Le but de cet exercice est de créer une branche personelle, qui nous permettra de pousser les changements
sans avoir de risque d'être embêté par les changements des autres membres du groupe
## License
But: ajouter une license au projet - choisissez celle que vous voulez:
* CeCILL
* GNU
* Apache
* Artistic
* WTFPL
*
Et insérez son contenu récupéré sur le ouaib dans le fichier `LICENSE`
Puis, ajoutez, validez, propagez (AVP) dans la nouvelle branche
## Readme
Ajoutez une entrée dans la documentation, pour votre implémentation de `plop`.
Puis, AVP!
Ensuite, ajoutez d'autres changements, ce que vous voulez.
## Merge!
But: maintenant que l'on a fait des changements dans sa branche personelle, on aimerait les propager au sein du groupe.
* S'assurer que sa branche est à jour et synchronisée avec gitlab
* Se repositionner dans la branche `master`
* Récupérer les changements distants
* Merger
* Gérer les conflits éventuels
* AVP
## Merge Inter-groupe
But: propager ses changements vers les autres groupes.
* Créer une branche `mon-groupe`
* Effectuer un *merge request*
* Traiter le *merge request* des autres groupes
Bonjour,
Vous recevez ce mail car vous êtes inscrits à la formation git.
Avec un peu de chance (Vendredi 13 oblige - hahaha) vous n'avez pas de
travail d'ici là. Cependant, afin de gagner le maximum de temps le jour J
(nous n'avons que 3 heures), je vous serai gré de bien vouloir prendre
connaissance des prérequis:
1. Avoir un ordinateur portable
2. Avoir un compte sur gitlab.in2p3.fr
3. Avoir un client git fonctionnel sur son portable
*ou*
3. Avoir un compte Kerberos5 fonctionnel et un accès sur une ccdevli
Si l'un de ces points n'est pas satisfait, manifestez vous au plus vite, sinon
vous allez vous faire taper sur les doigts par Foudil.
Voilà, à Vendredi!
* demander aux stagiaires de lire l'énoncé du TP avant Vendredi?
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment