Handbook GitLab ESR
Dans l’état des lieux des forges de l’ESR, il est apparu que la majorité des forges auto-hébergées de l’ESR sont des instances GitLab.
Ce document a vocation de partager les bonnes pratiques d’utilisation de ce logiciel dans le cadre de l’ESR.
1 - Bonnes pratiques Git
Bonnes pratiques d’utilisation de Git
A chacun son style
Il existe de nombreuses façons de travailler avec Git. Par rapport aux gestionnaires de versions centralisés comme CVS ou SVN (subversion), on crée beaucoup plus facilement des branches, qui sont ensuite fusionnées. On peut aussi très facilement faire des “petits” commits qui correspondent à une fonctionnalité, une correction de bugs, de typo : cela permet de plus facilement naviguer dans l’historique du code, pour chercher un bug avec git bisect
par exemple.
Fonctionnement des dépôts
- Faire des commits fonctionnels (un commit = une fonctionnalité) Cela facilitera la recherche de bugs.
- Utiliser des branches pour les fonctionnalités et les corrections de bugs. Cela permettra de garder le code principal propre et stable.
- Utiliser des étiquettes pour marquer les versions stables du code. Cela permettra aux utilisateurs de télécharger la version correcte du code.
- Protéger la branche principale. Cela empêchera les modifications accidentelles.
En plus des dépôts
- Mettre en place des pipelines CI/CD. Cela permettra d’automatiser les tests et les déploiements du code.
- Documenter le code. Cela permettra aux autres développeurs de comprendre le fonctionnement du code.
Ressources git
- Learning Git Branching pour apprendre les commandes importantes de git et visualiser leurs effets.
- Git flow pour comprendre le rôle des branches
main
, develop
et feature
dans un projet git.
- GitHub flow une version plus simple du lien précédent basée sur deux branches seulement.
5 - Organisation des projets
Bonnes pratiques pour l’organisation de projets sur GitLab
A adapter à chaque situation
L’organisation des projets sur une instance GitLab dépend de beaucoup de paramètres : est ce que les projets sont publics ou internes ? qui peut créer les projets, les groupes ? est-ce qu’il y a des règles/conventions qui régissent votre instance ?
Organisation des projets individuels
- Utiliser des noms de dépôts clairs et descriptifs. Cela permettra aux utilisateurs de trouver facilement le dépôt qu’ils recherchent.
- Structurer le dépôt de manière logique. Utilisez des sous-répertoires pour regrouper les fichiers associés.
- Mettre en place des conventions de nommage cohérentes pour les fichiers et les branches. Cela facilitera la navigation dans le dépôt.
- Rédiger des messages de commit clairs et concis. Cela permettra aux autres développeurs de comprendre les modifications apportées.
Organisation des projets par groupe
- Utiliser des groupes pour regrouper les projets connexes. Cela permettra de mieux organiser les projets et de contrôler les autorisations.
- Définir des autorisations au niveau du groupe et du projet. Cela permettra de contrôler qui peut accéder aux projets et aux données.
- Utiliser des sous-groupes pour organiser les groupes. Cela permettra de créer une hiérarchie de groupes.
- Créer des modèles de groupe pour définir les paramètres par défaut des nouveaux projets. Cela permettra de gagner du temps et de garantir la cohérence des projets.
- Utiliser les fonctionnalités de gestion de portefeuille de projets de GitLab. Cela permettra de suivre l’avancement des projets et de prendre des décisions stratégiques.
En plus de ces bonnes pratiques, il est important de s’adapter aux besoins spécifiques de votre équipe et de votre projet. Il n’y a pas de solution unique pour tous, et la meilleure façon d’organiser vos projets GitLab est de trouver ce qui fonctionne le mieux pour vous.
Ressources
Voici quelques ressources supplémentaires qui pourraient vous être utiles :
6 - Ressources pédagogiques
Cette page regroupe des ressources pédagogiques sur les forges en général, des forges particulières, ou des composants spécifiques produites par des collègues.
Ressources d’Arnauld BIGANZOLI
Contact mail : biganzoli[at]laplace.univ-tlse.fr
Il s’agit de supports utilisés pour des enseignements à l’INSA de Toulouse.
N’hésitez pas à regarder dans les commentaires du présentateur (sous les slides), il y a plein d’info et de lien complémentaire pour approfondir le sujet :
Ressources CIRAD
Le CIRAD propose un ensemble de ressources concernant le fonctionnement de sa forge.