GitHub, « Fork me, I’m famous! »

Ça y est, vous maîtrisez les rouages de R, la gestion de données courante ne vous fait plus peur et vous programmez régulièrement de nouvelles fonctions. Bien, il est temps de passer à la vitesse supérieure, en entrant dans le monde merveilleux de Github !

Envie de soulever le capot de vos packages favoris, de partager le fruit de vos développements, de travailler de manière collaborative, voire de construire des extensions à vos programmes de prédilection ? Ne cherchez pas plus loin, c’est sur Github que cela se passe. 

Qu’est-ce que c’est ?


GitHub is downAdresse incontournable du software libre et du partage de connaissance, Github est une plateforme sociale (d’où le -hub) basée sur le logiciel de gestion de versions Git. Bien, mais en clair ?

Comme souvent… tout est dans le nom ! Un logiciel de gestion de versions (ou Version Control System dans la langue de Shakespeare) permet de tracer l’évolution d’un fichier, en conservant l’historique de toutes le modifications qui ont été réalisées sur ce dernier. Autrement dit, vous pouvez remonter l’arborescence des changements dans un script,  depuis sa mise en ligne jusqu’au moment de sa consultation — un système relativement pratique pour développer en équipe.

Le hub, de son côté, fait référence au caractère collaboratif de la plateforme, qui a tout d’un réseau social qui se respecte : possibilité de suivre un utilisateur, flux d’actualité, mise en favoris, biographie, groupe, wikis, etc. Par exemple, pour contribuer à la progression des packages du tidyverse, c’est facile : abonnez vous à Hadley Wickham, forkez un de ses repositories avant de lui envoyer une pull request. Wait… What?

Github, du code, mais pas que

Bon, éclaircissons un peu ces termes fumeux et plongeons dans le grand bain du jargon de Github.

Comme sur toute plateforme collaborative qui se respecte, la première étape de votre aventure Github sera la création d’un profil. Jusqu’ici, tout va bien. Une fois inscrit, vous pourrez ouvrir votre premier dépôt (ou repository), afin d’y stocker vos fichiers — images, textes, pages html, script R…

Bien, et le côté collaboratif, dans tout ça ? Chacun de vos dépôts pourra être « forké » par un autre utilisateur, qui s’approprie alors le code source en créant un embranchement sur son profil, pour y travailler à loisir. Une fois les améliorations apportées, cet utilisateur pourra le conserver chez lui, ou vous envoyer une « pull request », autrement dit une suggestion de modification, que vous pourrez, ou non, fusionner avec votre version (en anglais : merge).

La force de Github reste de vous offrir une vision complète et simplifiée de l’ensemble des actions et des modifications sur un fichier. Le site intègre aussi un système de gestion de suivi des problèmes (issues), pour collaborer à la réparation des bugs sur un programme.

Et parce que Github n’aurait jamais été complet sans un volet curation, la plate-forme vous permet également de mettre en favoris des dépôts (star / unstar), mais aussi de garder un oeil ouvert sur l’évolution d’un repository, en recevant des notifications (watch / unwatch).

Connectez Github à R

GitHub — Yes we codeVous l’avez donc compris : si vous avez l’âme maker, si vous partagez la philosophie du libre, ou encore si vous avez tout simplement envie de tester des packages en développement qui ne sont pas sur le CRAN, Github est l’encyclopédie vers laquelle se tourner. Avec plus de 15 millions d’utilisateurs actifs, il y a de grandes chances que vous trouviez de quoi faire dans l’un des 155 949 dépôts (à l’heure d’écriture de ce billet) étiquetés R.

Pour importer depuis Github dans R, plusieurs méthodes sont à votre disposition. Prenons un exemple au hasard… le Github ThinkR-open (vraiment à tout hasard). Pour faire venir le script R contenant les fonctions d’un de nos dépôts, vous pouvez tout simplement copier-coller la version texte dans votre éditeur. Bien, mais pas pratique si l’on a beaucoup de contenus ou de scripts. La deuxième option : télécharger un fichier zip, que vous ouvrez ensuite avec R. Ce qui ne reste pas la plus optimale des solutions.

Heureusement, RStudio a pensé à tout ! Vous pouvez directement cloner un dépôt dans votre session R. Pour ça, rien de plus simple : créez un nouveau projet, et sous l’onglet « Version Control », choisissez « Git », avant d’entrer l’url du dépôt Github disponible sous Clone or download. S’il s’agit d’un package, Mr Wickham a pensé à tout — la fonction install.github du package devtools vous permet, comme son nom l’indique, d’installer directement un package, de la même manière que si celui-ci venait du CRAN. Donc, dans notre cas, il s’agirait de :

devtools::install_github("ThinkR-open/fcuk")

Bien sûr, l’idéal reste de connecter son RStudio à R. Mais pour ça, il faut mettre les mains dans le cambouis !

Quelques Gits à surveiller

Sans hésitations, nous vous conseillons de vous abonner au compte de notre gourou (Hadley Wickham), pour garder un oeil sur les rebondissements de l’ordocosme, ainsi qu’à celui de RStudio.

Si vous vous trouvez perdu sans savoir où chercher, n’hésitez pas à parcourir la liste awesome-r, qui vous offre une compilation relativement complète de tout ce qui se fait de mieux sur le CRAN, mais aussi sur Github. Et surtout, commencez par vous abonner au Github de ThinkR. Pull requests welcome !


À propos de l'auteur

Colin Fay

Colin Fay

Data scientist & R Hacker


Commentaires


À lire également