Bachelor Universitaire de Technologie - Science des Données
Semestre 5
Jean-François Rey
—
Ingénieur d’études Informatique #DevOps
Chef de projet
Ingénierie logicielle
Expertise en infrastructure
@INRAE (Institut National de Recherche pour l’Agriculture, l’Alimentation et l’Environnement) https://inrae.fr
@BioSP (Biostatistique et processus SPatiaux) https://biosp.org - Avignon
CONTACT
jean-francois.rey@inrae.fr avec l’objet [BUT3]
R en production
Utilisation de R tous les jours -> bonnes pratiques -> se rendre la vie facile -> collaborer et partager
En parallèle avec Mme Gabriel Edith.
Présence obligatoire
Réalisation d’un projet par groupe (binôme ou trinôme) lors des TPs.
On va aborder les points suivants:
- Gestion de projet informatique
- Travaille collaboratif et partage
- Automatisation et reproductibilité
Notre Objectif
1- Réaliser un package R normé et valide, avec sa documentation et une application Shiny embarqué. ✅
2- Automatiser le maximum de tâches, même la mise en production de l’application Shiny.😎
Points d’évaluation et thématique du package R disponibles (fin cours et TP).
https://cours.pages-forge.inrae.fr/tp_domappli/
Présenter votre voisin
Note
Vous avez des Questions ?
Note
Thématique pour le package ? l’application Shiny ?
Mon métier d’appui à la recherche (IE).
Développement et mise à disposition d’outils informatique et de modèles statistique pour :
Principalement en R et C++
Modernisation des méthodologies de dev, bonnes pratiques, accompagnement.
Expertise infrastructure (architecture, cloud)
Chef de projet en recherche et opérationnel
Appui à la recherche.
+10 ans de R
Packages R, documentations (.Rd, RMarkdown, Quarto), codes embarqué, …
Mainteneur Packages sur le CRAN
Widgets Shiny et applications Shiny
Serveurs de développement et de mise en production
Implication dans la communauté Francophone (et INRAE) et international.
Participation aux conférences UseR! et Rencontres R.
Organisation des Rencontres R 2023 à Avignon https://rr2023.sciencesconf.org
Astuce
Moins on a de dépendances aux packages R mieux on se porte.
https://forge.inrae.fr : gestion du code source, gestion de projet, travail collaboratif, automatisation, documentation, etc.
https://shiny.biosp.inrae.fr : Exemple d’applications Shiny
https://sk8.inrae.fr : Applications en production pour l’institut
Package {VMR} : CRAN Source Documentation
Un gestionnaire de version est un système qui enregistre l’évolution d’un ensemble de fichiers au cours du temps de manière à pouvoir rappeler une version antérieur d’un fichier à tout moment.
Il permet de traquer le contenu des fichiers de votre projet. Les modifications et leurs historiques sont versionnés.
On parle de VCS Version Control System ou de SCM Source Control Management
Note
Fichiers : codes sources, documents, etc.
Trois types de VCS : locaux, centralisés et distribués.
Corollaire : Évolution, accès diff. modifications, Contrôle, Différences, Fusions, Partages des modifications…
Outil décentralisé de gestion de version (libre et opensource)
2005 - Linus Torvalds
Note
Stocke/Traque un ensemble de fichier en conservant la chronologie des modifications apportées.
Avertissement
GIT est un outil indispensable dès qu’on produit du code.
Git surveille et fige des versions d’un répertoire. (Qui, Quand, Comment)
Note
Dépôt/Remote : répertoire versionné
Serveur central (URL) == origin
Branche par défaut == main
Note
Site officiel : https://git-scm.com
Commandes/concepts à connaitre : https://git-scm.com/docs/giteveryday
Naviguer dans les branches, versions et tags (checkout)
Revenir en arrière (revert)
Créer des branches (branch)
Merger le travail de plusieurs contributeurs (merge | rebase)
Documentation : https://git-scm.com/doc
Pour créer un dépôt Git (init ou clone)
Pour créer une version de votre travail (commit)
Ne pas oublier le message de commit
A chaque commit Git va vous demander d’ajouter un message. Ce message est lisible par un humain et est là pour noter ce que vous avez effectué comme modification.
git commit -a -m "cette version est un exemple de commit"
Add pour traquer un fichier
Git traque uniquement les fichiers qu’on lui demande. Pour cela il faut faire un add.
git add <mon_fichier>
Un hash (SHA) unique généré à chaque commit. (25ac95e84f…)
Utilisation d’un Tag sur le hash d’un commit. (mon tag)
Git permet de se synchroniser avec des dépôts distants (remotes repositories).
Cela intervient à la fusion de branche ou lors de la mise à jour de notre version local avec un dépôt distant.
2 branches
Merge
Rebase
Note
Rstudio vs Positron vs vscode
Outils web plus complet et ergonomique pour travailler
GitHub (très utilisé dans la communauté R)
GitLab (version CE, très utilisé)
Il y en a plein d’autres…
Note
On va travailler avec GitLab
Sujet du TP1
On va travailler ici : http://docker.univ-avignon.fr/ ou depuis l’extérieur https://gitlab.iut-avignon.fr/
Project : le projet sous Git
Issues : pour la gestion de projet
Pages : pour publier de la documentation
CI/CD (Continious Integration / Delivery) : pour automatiser
Artifacts : production du CI/CD (packages, doc, binaires…)
Docker registry : pour stocker les images docker
Note
Connectez-vous pour que je vous ajoute au groupe de travail.
http://docker.univ-avignon.fr/
Sujet du TD1
Pourquoi un package R ?
C’est quoi un package R ?
Note
Documentation officiel : https://cran.r-project.org/doc/manuals/r-devel/R-exts.html
Version light : https://r-pkgs.org