9 Développement
9.1 Dropbox
Nous utilisons Dropbox à la CLESSN pour stocker et partager entre nous diverses informations sur nos projets.
Ainsi, puisqu’elles sont souvent lourdes, voire confidentielles, les données doivent en tout temps demeurer dans un dossier Dropbox dont le nom débute par *_SharedFolder*. Comme mentionné, les dossiers Dropbox qui commencent par _SharedFolder sont ignorés par le .gitignore, c’est-à-dire qu’ils ne seront jamais partagés en ligne, même lors d’un git push (vous allez bientôt bien connaitre par coeur ces expressions). Ainsi, vos données demeureront confidentielles, sur votre ordinateur. On suit cette logique pour tous nos projets en équipe.
La CLESSN est parfois tentaculaire, et il est facile de perdre ses fichiers si l’on ne prend pas le temps de bien les organiser.
Voici quelques principes simples d’organisation de fichiers :
- Placez tous vos repos se trouvent sur Dropbox.
- Placez tous vos repos se trouvent au même niveau hiérarchique (d’arborescence).
- Chaque dossier Dropbox partagé (_SharedFolder) se trouve à l’intérieur du repo du même projet.
- Ne déplacez jamais un repo à l’intérieur d’un autre repo ou à l’intérieur d’un dossier Dropbox partagé. Cela peut causer des problèmes de duplication qui peuvent être longs à régler. Si vous n’êtes pas sûrs d’où mettre un dossier ou fichier, demandez de l’aide!
Voici un exemple d’arborescence Dropbox:
❗️IMPORTANT❗️
Si vous vous impliquez un certain temps à la CLESSN, la nécessité de payer individuellement pour Dropbox se fera ressentir. Vous devez vous y préparer. Voici quelques considérations à garder à l’esprit :
- Il est très important d’entreposer vos données sur un cloud comme Google Drive, OneDrive ou Dropbox. Autrement, si vous perdez votre ordinateur et ne faites pas de sauvegardes externes très régulières de l’ensemble de vos travaux, tout votre travail pourrait être perdu.
- Pour travailler sur des projets en équipe, Dropbox est régulièrement utilisé par plusieurs équipes de travail dans le monde académique. Si ce n’est pas maintenant, il est fort probable qu’un peu plus tard dans votre carrière vous deviez acheter la version payante. Même Google Drive ne suffira plus si vous faites beaucoup de recherche, surtout quantitative.
- Dropbox gratuit possède seulement 2 Go de mémoire. C’est beaucoup moins que les 15 Go de Google Drive.
- Dropbox Plus compte 2 To. C’est 1000 fois plus que la version gratuite, donc il est réaliste de rester avec Dropbox Plus pour l’essentiel de sa carrière académique.
- Dropbox Plus coute 179,23 $ par année ($ canadiens de 2022).
- Il y a généralement une dépendance au sentier (path dependency) : quand vous payez pour la première fois pour Dropbox Plus, vous devez être préparés à payer un montant annuel potentiellement jusqu’à la fin de votre vie. Autrement, vos fichiers ne seront plus entreposés sur le cloud et vous pourrez les perdre à tout moment.
9.2 Git et GitHub
Éventuellement, vous serez appelé à «pusher» votre travail en ligne sur GitHub pour qu’il soit ensuite consultable et modifiable par vos collègues.
Voici quelques informations de base sur nos outils de stockage de données.
- Github sert au stockage de codes, de textes et de tout fichier devant être modifié par plus d’une personne;
- Github n’aime pas que l’on entrepose des informations trop lourdes sur ses serveurs… Des repo trop costauds seront aussi plus longs à télécharger.
- Pour bien saisir la logique de Git et de GitHub, nous vous conseillons de visionner les tutoriels Git and GitHub for Poets de la chaine YouTube The Coding Train. Voici le lien du premier vidéo: https://www.youtube.com/watch?v=BCQHnlnPusY&t=3s. Ce genre de vidéo vous apprendra notamment à minimiser le risque d’erreurs sur Git. Notez bien la formule magique à inscrire dans votre terminal (oui, nous utilisons le terminal!):
- git add -A
- git commit -m “écrire ici la description du commit”
- git pull
- git push
Important: malheureusement, apprendre une formule magique n’est jamais une solution miracle. Il est plutôt nécessaire de comprendre les commandes et de pouvoir faire ce que l’on veut, peu importe les circonstances. Dans certains cas, la formule ci-dessus pourrait être inappropriée!
Quand on fait un pull après un certain temps dans un repo, il est tout aussi important de taper ces codes dans le terminal, même si nous n’avons rien modifié depuis longtemps. Parfois, un fichier caché a été modifié (.RData, .Rhistory ou .DS_Store). En «commitant» comme ça, on s’assure de ne pas avoir de conflits.
Le fichier texte (caché, c’est pourquoi il est invisible) .gitignore est nécessaire, comme son nom l’indique, pour ignorer la mise en ligne de certains fichiers à l’intérieur de notre repository Github. Par exemple, tous les dossiers débutant par *_SharedFolder* seront ignorés par le .gitignore lors d’un «push», et ne seront donc pas mis en ligne. Les fichiers pdf et png sont aussi ignoré par le .gitignore. Elles doivent donc préférablement être entreposées dans un _SharedFolder. La taille de fichier maximale recommandée par GitHub est de 50 MB.
De plus, nous avons pensé le fichier .gitignore pour qu’il ignore aussi les dossiers dont le nom débute par _PrivateFolder. Vous pourrez y glisser tout votre travail personnel (par exemple, les dossiers relatifs à vos cours). Ce dossier restera confidentiel; il ne sera ni publié en ligne ni partagé avec moi ou vos collègues.
Pour en savoir plus, je vous invite aussi à consulter la «cheat sheet» sur Git ci-dessous.