Dans le contexte dynamique du développement de scripts, maintenir l'efficacité et la cohérence malgré les mises à jour fréquentes et les contributions collaboratives peut s'avérer complexe. Cette présentation met en lumière la puissance du logiciel Git pour le travail collaboratif sur les scripts, en proposant des solutions aux problèmes courants tels que les suppressions accidentelles, la gestion des versions et les contraintes liées aux sauvegardes manuelles.
Git est un outil indispensable au travail d'équipe, permettant à plusieurs contributeurs de collaborer simultanément sur un projet. Avec Git, chaque modification est automatiquement versionnée, offrant un historique complet qui permet aux équipes de suivre, d'annuler et de vérifier les modifications sans effort. De plus, la création automatique de sauvegardes par Git garantit la protection de votre travail en temps réel, éliminant ainsi le risque de perte de données et améliorant la productivité globale.
Après avoir expliqué la structure de Git, ainsi que son installation et son utilisation, cette présentation montre comment développer un script.
JMP sur Git est une initiative que nous souhaitons promouvoir. Je m'appelle Britta Silbersack. Je travaille chez Roche Diagnostics, où j'accompagne nos scientifiques dans la création de scripts avec JMP. À mes débuts dans ce domaine, j'ai rencontré Bernd, qui était consultant chez Roche. Nous nous sommes retrouvés aujourd'hui pour cette présentation.
Je m'appelle Bernd Heinen. Certains me connaissent peut-être comme ancien ingénieur système senior chez JMP. Je travaille maintenant comme consultant. J'aide mes clients à comprendre et à appliquer les statistiques, ou je les forme à l'utilisation de JSL. C'est ainsi que j'ai rencontré Britta. Il y a quelque temps, nous avons discuté de programmation et nous avons pensé qu'il serait judicieux de promouvoir l'utilisation de Git pour le développement JSL.
Qu'est-ce que Git ? Git est un système de contrôle de version distribué. Vous enregistrez vos scripts JSL dans un répertoire d'administration Git, et de nombreuses fonctionnalités sont ensuite disponibles pour vous aider à gérer vos scripts et vous simplifier la vie. Git crée des instantanés de vos scripts à différents moments. Il vous permet d'organiser vos sauvegardes, de gérer les versions, de faciliter la collaboration et de documenter votre travail.
Vous pouvez profiter pleinement des avantages de Git même en travaillant seul comme programmeur. Dans ce cas, une infrastructure importante suffit. Une copie sur un serveur distant est toutefois recommandée pour la sauvegarde. La véritable puissance de Git se révèle dans un environnement collaboratif. Les membres d'une équipe peuvent travailler sur le même programme, envoyer leurs versions au dépôt, puis consolider leur travail. Git est le système sous-jacent, et sa communication native se fait via une interface en ligne de commande. Mais il existe de nombreux modules complémentaires qui fournissent des interfaces graphiques pour Git, et qui étendent même ses fonctionnalités.
Nous souhaitons vous présenter une courte vidéo illustrant un flux de travail typique. Il ne s'agit pas d'une formation Git, mais plutôt d'une source de motivation pour les utilisateurs de Git. Nous avons veillé à ce qu'elle soit concise tout en étant suffisamment informative pour démontrer l'utilisation de Git. Nous aborderons des aspects tels que la programmation en JSL, l'enregistrement d'un script dans Git, la notion de snapshot, le rôle du dépôt et la fusion de différentes versions d'un même script.
Nous commençons par l'ordinateur portable de Britta. Elle se connecte à GitLab Cloud, une des options d'hébergement possibles pour Git. Elle crée un nouveau groupe, « take it easy », et invite des personnes, dont moi, à le rejoindre. Quelques clics suffisent. Dans ce groupe, elle crée un nouveau projet vide, « TryGit ». Elle remplit les champs par défaut, crée le projet, puis copie le lien et retourne sur son ordinateur portable ou travaille en local. Avec Git Extensions, l'interface graphique que nous utilisons pour cet exemple (il en existe de nombreuses), elle colle le lien et clone ou copie le dépôt. Un espace de travail vide est ainsi créé sur son ordinateur portable.
Elle commence alors à écrire son script JSL dans JMP. Une fois terminé, elle l'enregistre dans le dossier géré par Git. Ensuite, elle crée un commit (un instantané) et envoie ou télécharge l'état actuel sur le dépôt web via GitLab.
Nous allons maintenant examiner l'ordinateur portable de Bernd, qui travaille à distance sur GitLab. Lorsque j'ai créé le groupe de travail, Bernd a reçu un courriel de Git. Intrigué, il a cliqué sur le lien vers le dépôt distant. Il a consulté le projet. À ce moment-là, il était encore vide. Il a également copié le lien. Il a suivi la même procédure : il a cloné le dépôt à partir de l'URL chiffrée SSH et a déterminé l'emplacement où enregistrer cette copie sur son ordinateur portable. Il a utilisé le nom du dépôt pour son dossier et l'a ouvert.
Comme prévu, l'espace de travail était vide. Malheureusement, j'ai reçu un autre appel urgent et j'ai demandé à Bernd de poursuivre le travail. Après avoir téléchargé mon code JSL, il a récupéré l'état actuel du projet. Il l'a ouvert dans JMP et a étendu le programme. Il a enregistré ses modifications dans le même fichier. Ensuite, il est passé à l'extension Git et a créé une nouvelle branche. Cela permet à Git de suivre les modifications. Il a validé l'état actuel et Bernd a pu voir où le programme avait été ajouté. Il a également envoyé l'état au dépôt. Il a cliqué sur « Vérifier », puis est passé à GitLab. Sur le web, une nouvelle branche était apparue. Il a sélectionné cette branche et a créé une nouvelle demande de fusion.
Dans la demande de fusion, j'ai désigné Britta comme relectrice et je lui ai envoyé un message. Ce message, ou plutôt les informations, lui a été automatiquement envoyé par e-mail. Nous consultons actuellement la demande sur son ordinateur portable. Elle a reçu cet e-mail, a cliqué sur le lien, s'est rendue sur le dépôt et a vu la demande de fusion. Elle l'a lue, l'a vérifiée et a finalement validé mes modifications. Git affiche l'historique des modifications et la fusion est terminée.
Les deux branches sont maintenant réunies à la branche principale. Britta est de retour sur le projet et nous décidons de travailler sur différentes tâches en parallèle. La commande `pull` uniformise la base de développement sur nos deux ordinateurs. Vous voyez, dans l'exemple du travail de Britta, comment elle crée une nouvelle branche. Cela permet à Git de suivre ses modifications. Je fais de même sur mon ordinateur (ce n'est pas visible ici), puis nous reprenons notre travail de programmation, chacun sur sa version du programme.
Nous créons tous les deux un commit ou un instantané pour nos programmes. Notez que les différences par rapport à l'instantané précédent sont mises en évidence. Nous envoyons ensuite nos branches au dépôt.
Britta, sur son ordinateur portable, consulte le dépôt en ligne et constate que les deux branches sont présentes. Elle ajoute un commentaire à sa branche, puis crée une demande de fusion et me désigne comme relecteur.
Bernd travaille désormais à distance sur son ordinateur portable. Il se connecte à Internet, ouvre la demande de fusion et l'approuve. Il bascule ensuite sur la branche principale. Puis, il récupère la nouvelle version du programme sur son ordinateur, se place sur sa branche et lance une fusion. Il souhaite intégrer la branche principale à sa branche « Fit a Model ». Oh non ! Il y a des conflits.
Il existe aussi des outils pour atténuer le problème. Bernd utilise l'outil Meld pour consolider les différentes versions du programme. On constate ici de nombreuses différences. Il est facile d'identifier les modifications, de supprimer les doublons, d'insérer des parties et de copier-coller d'autres éléments. Il enregistre les modifications, les valide à nouveau et les envoie. Nous pouvons maintenant récupérer la version actuelle du programme et exécuter le programme final intégrant les deux versions.
Ce qui devrait particulièrement intéresser les utilisateurs de JMP, c'est la visualisation complète du processus de développement et de son état actuel. Il ne s'agit pas des fonctionnalités Git de base, mais d'un outil parmi d'autres offrant des interfaces utilisateur interactives pour Git.
En conclusion, Git est facile à configurer et intuitif. Il permet des sauvegardes simplifiées, offre un contrôle de version robuste et facilite la collaboration sur les scripts. Nous espérons vous avoir éclairé sur l'utilisation, les avantages et l'accessibilité de Git. À vous de jouer ! Prenez-en de la graine dès maintenant ou dès que vous serez de retour à votre bureau.