In Vie de l'entreprise

Dans le domaine du développement logiciel, la gestion de versions vise à maintenir l’historique des modifications du code : auteur, date, commentaire de la modification. C’est une bonne pratique de développement qui permet de faciliter l’intégration du code (fusion/merge) et de revenir sur les circonstances des modifications (qui, quand, pourquoi). Le versioning est également la base d’une démarche d’intégration continue.

GIT

De nombreux logiciels de gestion de version existent sur le marché (CVS, SVN, Mercurial, etc), mais GIT, l’outil open source de gestion de version créé par Linus Torvals pour le développement du noyau Linux, est le plus répandu.
Sa particularité est d’être décentralisé, le code n’étant pas exclusivement stocké sur un dépôt centralisé. Chaque contributeur peut cloner un dépôt distant, réaliser ses développements puis proposer ses évolutions au mainteneur du projet.

Cette décentralisation a largement contribué au succès de GIT qui est actuellement le logiciel de gestion de version le plus populaire. Le service d’hébergement de développements GitHub basé sur Git revendiquait en Mai 2019, 18 millions d’utilisateurs et plus de 37 millions de projets hébergés.

Si vous n’êtes pas familiers avec l’utilisation de Git, le Git Handbook proposé par GitHub est un bon point de départ.

Integration de GIT dans les logiciels SAS

De nouvelles fonctions permettant d’interagir avec des dépôts GIT ont été ajoutées à partir de la version SAS 9.4M6. Ces fonctions peuvent être appelées dans tout code SAS exécuté sur SAS Base, SAS Enterprise Guide, SAS Studio ou SAS Data Integration Studio.

Elles permettent de réaliser toutes les actions nécessaires pour gérer vos développements : clone, branch, commit, push, etc.

Par exemple voici un code pour cloner localement un dépôt distant hébergé sur GitLab :

data _null_;
 /* Get the version of the libgit2 library that is being used */
    libgit2_version = gitfn_version();
    put libgit2_version=;
 /* Clone the Repo */
    rc = gitfn_clone("https://gitlab.com/AVISIA/realtimedata.git",
      "~/projets/realtimedata",
      "AVISIA",
      "{SAS002}xxxxxxxxxxxxxxxxxxxxx",
      "~/.ssh/id_rsa",
      "~/.ssh/id_rsa.pub");
    put rc=;
 run;

Pour une liste complète des fonctions, vous pouvez vous référer à la documentation SAS. Les fonctions GIT sont préfixées par GITFN.

SAS Enterprise Guide

SAS Enterprise Guide ne propose pas d’interface complète vers des outils de gestion de version. Il n’est pas possible de réaliser les actions usuelles d’initialisation d’un dépôt, clone, push, etc. Un suivi des modifications peut tout de même être réalisé en utilisant les fonctionnalités internes de suivi de modifications de SAS Enterprise Guide et en hébergeant les fichiers du projet dans un dépôt GIT.

Voici les étapes à suivre afin de versionner votre code SAS Enterprise Guide sous Git :

  • Les programmes doivent être enregistrés sous forme de fichiers et non pas inclus au projet
  • Les programmes doivent être enregistrés dans une racine commune à votre projet Guide
  • Les programmes doivent être déclarés dans votre projet Guide avec des chemins relatifs à la racine du projet (Propriétés du projet > Références de fichiers)
  • La racine hébergeant votre projet doit être enregistrée dans un dépôt Git
  • Renseigner votre nom et votre adresse e-mail dans Outils > Options > Paramètres Git

Une fois ces précautions prises, utilisez un outil externe comme Git GUI pour valider (commit) vos modifications de programmes sur votre dépôt, et visualiser les modifications effectuées par les autres contributeurs.

Si vous avez activé l’historisation des programmes (Options > Historique des programmes), SAS Enterprise Guide présente des boutons « Validation » et « Modification ». Ces actions ne permettent pas d’interagir directement avec le dépôt Git. Elles permettent respectivement d’enregistrer des informations de suivi de modifications dans le projet Guide, et de consulter les modifications des programmes non validés dans le projet. Ces informations font partie du projet Guide. Le bouton « Historique » permet d’afficher les modifications validées dans le projet, ainsi que les modifications enregistrées dans le dépôt local Git.

Le site du support SAS propose un exemple complet de suivi des modifications d’un programme.

SAS Studio

Sur SAS VIYA et SAS 9.4, depuis la version 3.8, SAS Studio intègre une interface Git. Afin de travailler avec un dépôt Git, la première étape consiste à renseigner un profil Git dans l’écran des préférences (User name, e-mail, emplacement des clés SSH). Une fois le profil renseigné, le menu « Git Repository » du panneau de navigation propose d’ouvrir ou de cloner un dépôt :

Après avoir ouvert le dépôt local, ce menu permet de préparer la liste des fichiers modifiés à valider, et d’effectuer la validation (commit). Les fichiers du dépôt sont visibles dans le panneau de navigation sous « Fichiers et dossiers du serveur ».

Un exemple d’utilisation de Git avec SASStudio est disponible sur le site du support SAS. Vous y trouverez également une documentation complète de lintégration de Git dans SASStudio.

Data Integration Studio

Jusqu’à la version 4.903 de SAS Data Integration Studio, seuls les logiciels de contrôle de version CVS et SVN étaient supportés. Depuis la version 4.904 incluse dans SAS 9.4M6, le support GIT a été ajouté.

Afin de versionner vos objets, il vous  faudra déclarer votre dépôt Git dans le menu Outils > Options > Git Plug-In.

Une fois le dépôt déclaré, les objets peuvent être archivés sous forme de SAS Package (fichiers SPK) dans le dépôt. L’historique des objets archivé peut être consulté et il est possible de comparer deux versions d’un objet archivé afin de déterminer les modifications apportées entre les versions.

Afin d’avoir un bon aperçu de l’intégration de Git dans SAS Data Integration Studio, je vous propose cet article très complet agrémenté d’une vidéo. Tous ces éléments peuvent également être retrouvés dans la documentation SAS DIS.

Les outils permettant de générer du code SAS (SAS Base, Enterprise Guide, SAS Studio, SAS DIS) des dernières versions de SAS VIYA et SAS 9.4 disposent d’une interface Git. Les développeurs peuvent ainsi bénéficier de tous les avantages du contrôle de version dans leurs projets.

Recent Posts
AVISIA