Qui suis-je ?

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

avec l’objet [BUT3]

Domaines d’application

R en production

Utilisation de R tous les jours -> bonnes pratiques -> se rendre la vie facile -> collaborer et partager

  • CM : 4.5h
  • TD : 4.5h
  • TP : 7.5h

En parallèle avec Mme Gabriel Edith.

Présence obligatoire

Domaines d’application : 1 projet

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/

A vous

Présenter votre voisin

  • Nom, Prénom
  • Parcours (EMS, VCOD)
  • Idées de métiers ?
  • En alternance ?
    Ou ? Je fais quoi ?
  • L’année prochaine ?
  • Pratique du R ? sous Rstudio ?
  • Windows ? Mac OS ? Linux ?
  • GIT ? GitLab ? GitHub ?
  • Package R ? CRAN ?
  • Applications Shiny ? En ligne ?
  • Rmarkdown ? Quarto ? JS ?
  • Docker ? GitLab CI/CD ? Issues ? Pages ?

Questions ?

Note

Vous avez des Questions ?

Note

Thématique pour le package ? l’application Shiny ?

De mon coté

Mon métier d’appui à la recherche (IE).

Développement et mise à disposition d’outils informatique et de modèles statistique pour :

  • l’épidémiologie
  • l’écologie
  • l’environnement

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

Ingénieur Informatique à INRAE

Appui à la recherche.

  • Gestion de projet informatique (méthodologies, outils)
  • Développement outils (modélisation, administration)
  • Mise en place d’infrastructure (Système d’information complexe)
  • Taches administratives
  • Participation à la vie de l’institut (collectif d’actions, conseil scientifique)
  • Communication (conférences, séminaires, …)

R

+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.

Exemples

Un peu de théorie

Les concepts seront approfondies et manipulés en TD et TP.

Gestionnaire de version

Gestionnaire de version

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…

GIT

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 : concept

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

git init #création d'un dépôt
git clone <URL> <repertoire_local> # récupérer un dépôt git
git status # états des fichiers
git commit # versionnement
git pull origin main # mettre à jour localement
git push origin main # mettre à jour l'origin

Note

Site officiel : https://git-scm.com
Commandes/concepts à connaitre : https://git-scm.com/docs/giteveryday

Git : les posibilités

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

Git initialisation

Pour créer un dépôt Git (init ou clone)

Git versionnement (commit)

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>

Git identifiant unique des commits

Un hash (SHA) unique généré à chaque commit. (25ac95e84f…)
Utilisation d’un Tag sur le hash d’un commit. (mon tag)

Git décentralisé

Git permet de se synchroniser avec des dépôts distants (remotes repositories).

Git Merge vs Rebase

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

Git vs Rstudio

Note

Rstudio vs Positron vs vscode

GitLab vs GitHub (remote)

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

Git vs Rstudio vs GitLab

Sujet du TP1

GitLab

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/

https://gitlab.iut-avignon.fr/but3/2025-2026

Sujet du TD1

Package R

Package R

Pourquoi un package R ?

  • Etendre les fonctionnalités de R
  • Réutiliser du code/méthodes
  • Normaliser le code
  • Maintenance améliorée
  • Permettre le partage

Package R

C’est quoi un package R ?

  • Un répertoire (normé)
    • Un fichier DESCRIPTION
    • Un fichier NAMESPACE
    • Un répertoire R/
    • Un répertoire man/