Update Journal_de_MOOC.md

parent 929a95b8
...@@ -72,16 +72,6 @@ En haut à droite : Edit profile user ...@@ -72,16 +72,6 @@ En haut à droite : Edit profile user
Dans le bandeau vertical gauche qui apparaît (l'agrandir si besoin via expand collapse), sélectionner key SSH, Copier - coller le code de la clef Dans le bandeau vertical gauche qui apparaît (l'agrandir si besoin via expand collapse), sélectionner key SSH, Copier - coller le code de la clef
## Faire le lien entre un projet sur GitLab et le même projet sous RStudio <!-- pratique -->
Sous GitLab :
Bouton clone
Copier l'adresse URL
Puis sous Rstudio :
File> New project > version Control > git (clone a project from a Git repository) >
--> copier l'URL du GITLab
A la question "indiquer votre SSK Key" : coller notre numéro de clef SSH
Puis à la question ci-dessous, qui demande si on fait confiance à forgemia, repondre yes (sinon, ça ne fonctionnera pas !!!)
# Document computationnel # Document computationnel
Pour améliorer la traçabilité d'un calcul Pour améliorer la traçabilité d'un calcul
...@@ -206,12 +196,144 @@ commandes r ...@@ -206,12 +196,144 @@ commandes r
``` ```
Une équation ou expression mathématique : entre deux $$ Une équation ou expression mathématique : entre deux $$
Par exemple Par exemple
\$X\sim U(0,1)$ s'affichera X ~U(0,1) \$X\sim U(0,1)$ s'affichera X ~U(0,1) \
# Logiciels de versionnage (Git)
Git = Logiciel de forge = __outil de contrôle de versions__ = gestionnaire de versions
GitHub, GitLab = __interfaces web__ pour le logiciel Git
(hébergement gratuit de projets publics=
GitLab, GItHub : stable, ouvert, __mais pas forcément pérenne__.
Il y a des plateformes d'archivages de données ou de codes sources, comme zenodo et figshare (et aussi les dataverses, ou HAL)
<!-- pratique --> Installer Git sur la machine (pour pouvoir travailler avec Git (et GitLab) en distant, et pou ravoir les plugins et onglet Git sous RStudio) : https://git-scm.com/downloads
On peut utiliser Git :
- uniquement en local (pour le versioning des fichiers d'un projet sur lequel on travaille seul, et pour lequel il n'est pas crucial d'avoir une copie distante, sécurisée, sur le Net
- En local *et* en distant : nécessite de déclarer un lien entre mon ordi et le Gitlab distant
<!-- pratique --> Pour accéder à la fenêtre de commande Git :
- Soit cliquer srur l'icône Git Bash du bureau
- Soit taper les comandes git sur une quelconque fenêtre de commande : par exemple sous Windows : Démarrer > cmd
- Soit via Rstudio
Git : conserve historique des modifs sans dupliquer les dossiers de sauvegarde
Sauvegarde sur des ordis distants
Fusion "automatique" des modifs éditées par plusieurs personnes
__Pas besoin d'utiliser Git en ligne de commande : utiliser des interfaces__
Mais besoin de comprendre :
- Historique dstribué : cf. diapo une histoire simple.Les fèches indiquent une dépendance d'une verison p/ une autre. Historique à la granuarité du projet pas du fichier
- Branche : qd retour à une version précédente poru repartir sur un nouvel historisque
- GitHub
- GitLab
Git add indique quelles modifs conserver ensemble (et à quelle étape elles correspondent) (et en gros quels fichiers je souhaite garder, voire quels bouts d fichiers)
Git commit (commit = une version du projet, identifiée par un SHA1)
Git checkout : permet de revenir à version n-x etd e retracer l'histoique des modifs (pointe sur la version à partir de laquelle on va retravailler)
Git ignore = les fichiers qu'on ne prend pas
Git clone : copie sur ma machine un historique d'un rojet distant (historique vierge qu'on crée sur un serveur distant Gitlab par ex)
(clone with SSH évite d'avori à toujours rentrer son ldap ensuite ; clone with https demandera, à chaque push ou pull, de retaper le ldap et mdp)
Git push : envoie sur le serveur distant. Permetd e synchroniser des branches en sauvegardant des morceaux d'historiques
Travail collaboratif (avec git merge)
Git push envoie nos modifs locales sur la branches du serveur distant
Git pull télécharge sur notre branche locale la dernière version de la branche distante
Git peut fusionner automatiquement 2 fichiers modifiés si les modif ne portent pas sur l amême ligne
Sinon, nous envoie la question (la ligne, avec le conflit) avec 2 étapes :
- 1/ ta version locale n'est pas à jour, fais un gt pull avanat de faire une modif
- 2/ si un conflit persiste affiche le lieu du conflit (la ligne de texte) et nous demande de choisir
C'est à la personne qui génère le conflit e le résoudre
Pour travailler à plusieurs,
- Eviter de travailelr tous sur un seul gros fichier : modulariser
- Il y aura conflit si une igne donnée a été modifiée de plusieurs côtés
- Faire des commits différents pour les modifs de fond, de fore
- Faire des petits commits logiques
- Git commit -a
Modifs : git commit (je peux les faire localement)
Synchroniser : git pull, git push
Pour travailler à plusieurs sur un texte : s'organiser pour ne pas travailler en même temps sur les mêmes parties du texte (et ainsi éviter les conflits)
Overleaf permet de travailler à plusieurs sur un fichier Latex (et gère les commentaires). Gratuit pour 2 personnes, payant pour travailler à plus de 2
Mais pas possible de "localiser" des commentaires-bulles comme dans Word.
OU alors, nméroter des lignes et dire "comment ligne xx : "
Avec RMD, possible de localiser les commentaires
__Evolutivité et pérennité des versions sur un texte__
Modifc apparentes sous Word :
- pas sur un fichier texte.
- On peut sauvegarder la dernière version et perdre l'historique de smodifs
Moteur de Wiki : si on clique sur "chgt récents", on a accès à tout l'historique des modifications. Forat txt. Mais on ne peut modifier qu'une page à la fois
Bilan : préféer Github. Suit les versions successives d'un ensemble de fichiers liés. Permetd e corriger plusieurs fichiers simultanément. Sauvegarde centralisée, et copie intérale sur notre ordi
## les interfaces : gitLab
[HELP GitLab BASICS (sites inRAE)](https://forgemia.inra.fr/help/gitlab-basics/start-using-git#clone-with-https) <!-- pratique -->
GITLab nécessite une authentification :
Soit une clé SSH : une clé par machine.
Soit une clé https
Pour les projets sensibles, confidentiels, préférer le [gitlab institutionnel de notre entreprise](https://forgemia.inra.fr/efno)
puis Sign in et Connexion SSO (avec LDAP)
Clef SSH :<!-- pratique -->
- __Sous GitLab__ : barre de menu en haut à droite : cliquer sur notre avatar/profil, puis Edit Profil,
puis dans le bandeau vertical "User Settings" qui apparaît à gauche, cliquer sur SSH Keys : et créer son numéro de clé .
- __Sous RStudio__ :
- Dans Rstudio > Tools > Global Options > GIT/SVN > on peut indiquer : l'emplacement du git.exe et le code SSH
## Faire le lien entre un projet sur GitLab et le même projet sous RStudio <!-- pratique -->
Sous GitLab :
Bouton clone
Copier l'adresse URL
Puis sous Rstudio :
File> New project > version Control > git (clone a project from a Git repository) >
--> copier l'URL du GITLab
A la question "indiquer votre SSK Key" : coller notre numéro de clef SSH
Puis à la question ci-dessous, qui demande si on fait confiance à forgemia, repondre yes (sinon, ça ne fonctionnera pas !!!)
Sous RSTudio :
Je fais une modif dans RMD
Icône commit
Visualise la modif
Puis commande push pour l'enregistrer sur le serveur GitLab
__Document computationnel sous RMD (script commenté)__ :
Préférable de transmettre (publier) aux autres utilisateur le RMD ET l'HTML (car le rmd seul n'affiche pas les résultats)
# Analyse réplicable
Jamais de modif de donnees à la main
Lire les données à la source
Attention aux données manquantes __dès la lecture__
Bibliothèque __parsedate__ pour gestion des dates en norme ISO sous R :
Xxxxyy
(xxxx : année ; yy = semaine)
Un code inline : Le code RMD du Mooc est téléchargeable comme __exemple d'analyse réplicable__
Une ligne de `code`
Conseil :
Garder toutes les données ensemble, même si de nature diverse (cf. module 5)
Métadonnées (= infos sur les données) à garder en format texte
Format binaire permet le stockage de données de nature diverses
Formats FITS et HDF5 sont de bonnes solutions pratiques (FITS plus facile) pour des données de nature diverse ou des très grosses quantités de données (e.g. lidar, TD°)
Il y a des plateformes d'archivages de données ou de codes sources, comme zenodo et figshare (et aussi les dataverses, ou HAL ?)
Plus précisément :
__HAL, ArXiv__ = archivage et mise à disposition des articles de recherche.
Il est possible de déposer ses articles sur Figshare et Zenodo (ces entrepôts de données fournissant même un DOI) mais ces plates-formes sont plutôt destinées à accueillir des données et à servir de site compagnon aux articles de recherche.
L’exploitation d’articles de recherche est plus facile dans une archive en ligne que dans un entrepôt de données.
__Github, Gitlab ou Software Heritage__ : plutôt destinés à accueillir du logiciel que des données. GitHub et GitLab Pas forcément pérennes.
Le code des projets publics de github est désormais automatiquement téléversé sur Software Heritage.
C’est également possible pour GitLab, mais il convient de vérifier si c’est bien le cas avec l’administrateur s’il s’agit d’un GitLab institutionnel. Enfin, il existe des mécanismes très simples permettant d’archiver l’état courant d’un dépôt github directement sur zenodo. L’archivage pérène de son code est donc très simple lorsque l’on utilise un gestionnaire de version au jour le jour.
__Docker__ : n’est pas une plate-forme, c’est une technologie de conteneur visant à isoler et préserver les environnements logiciels.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment