+ - 0:00:00
Notes for current slide
Notes for next slide

rOpenSci, revues de packages R par les pairs pour une meilleure science

Maëlle Salmon
ma_salmon maelle masalmon.eu

2019/03/29

1 / 37

Mes objectifs

2 / 37

Mes objectifs

  • Présenter le système de revue de logiciel de rOpenSci.
2 / 37

Mes objectifs

  • Présenter le système de revue de logiciel de rOpenSci.

  • Vous motiver pour la revue de logiciel et code scientifique.

2 / 37

Mes objectifs

  • Présenter le système de revue de logiciel de rOpenSci.

  • Vous motiver pour la revue de logiciel et code scientifique.

Mon expérience est dans mais généralisable à d'autres languages.

🔗 Diapos disponibles https://tiny.cc/urfist-salmon

2 / 37

Présentations 👋

3 / 37

Mes missions autour de R

  • rOpenSci

  • Locke Data

  • R-hub

4 / 37

Bénevolat autour de R

  • Gérante du compte Twitter de R-Ladies Global

  • Membre de l'équipe de R Weekly (et blogueuse R moi-même)

  • Éditrice pour le système de revue de paquets de rOpenSci

5 / 37

Qu'est-ce que rOpenSci?

  • Communautés de chercheur·se·s et de développeur·se·s de logiciels

  • Paquets R pour la science ouverte et reproductible

  • Contributions par le personnel et la communauté

6 / 37

https://ropensci.org/packages/

7 / 37

Des paquets pour la science

Extraction de données du web ou de formats exotiques, analyse de texte, etc.

  • Encourager le scriptage plutôt que le clic,

  • Réduire la duplication des efforts,

  • Libérer du temps et de l'énergie pour la science elle-même.

8 / 37

Des paquets de qualité

La qualité d'un logiciel, c'est important !

Comment assurer la qualité de nos paquets ?

9 / 37

Revues de paquets R de rOpenSci 🔍

10 / 37

Revues de paquets R de rOpenSci

Software peer review

11 / 37

Revues de paquets R de rOpenSci

Software peer review

  • Stimule l'adoption des meilleurs pratiques et standards.
11 / 37

Revues de paquets R de rOpenSci

Software peer review

  • Stimule l'adoption des meilleurs pratiques et standards.

  • Construit une communauté de pratique.

11 / 37

Revues de paquets R de rOpenSci

Software peer review

  • Stimule l'adoption des meilleurs pratiques et standards.

  • Construit une communauté de pratique.

  • Partenariats avec le Journal of Open Source Software et Methods in Ecology and Evolution

11 / 37

Passer quoi en revue ?

12 / 37

Passer quoi en revue ?

Jeff Leek https://github.com/jtleek/rpackages

12 / 37

Critères de revue

  • Licence compatible avec l'open-source initiative (OSI)

  • Documentation complète

  • Haut taux de couverture de test

  • Code lisible

  • Utilisabilité

13 / 37

Critères de revue

  • Licence compatible avec l'open-source initiative (OSI)

  • Documentation complète

  • Haut taux de couverture de test

  • Code lisible

  • Utilisabilité

13 / 37

Critères de revue

  • Licence compatible avec l'open-source initiative (OSI)

  • Documentation complète

  • Haut taux de couverture de test

  • Code lisible

  • Utilisabilité

Tout un livre ! https://ropensci.github.io/dev_guide

13 / 37

Comment faire la revue ?

  • Ouverte & non-accusatoire
14 / 37

Comment faire la revue ?

  • Ouverte & non-accusatoire

  • Pas de rejet

14 / 37

Comment faire la revue ?

  • Ouverte & non-accusatoire

  • Pas de rejet

  • Un processus constructif pour tous les acteurs

14 / 37

Comment faire la revue ?

  • Ouverte & non-accusatoire

  • Pas de rejet

  • Un processus constructif pour tous les acteurs

  • En pratique, utilisation de l'infrastructure de GitHub

14 / 37

Dépôt GitHub

15 / 37

Onglet de suivi des "problèmes"

16 / 37

Soumettre un paquet

17 / 37

Soumettre un paquet

18 / 37

Soumettre un paquet

19 / 37

Soumettre un paquet

20 / 37

Pas de rejets mais...

Paquets hors du domaine visé non accueillis. https://ropensci.github.io/dev_guide/policies.html

21 / 37

Pas de rejets mais...

Paquets hors du domaine visé non accueillis. https://ropensci.github.io/dev_guide/policies.html

  • nos catégories: accès à des données, extraction de données, accès à des formats de base de données, manipulation de données, dépôts de données, reproducibilité, données géospatiales, analyse de texte.
21 / 37

Pas de rejets mais...

Paquets hors du domaine visé non accueillis. https://ropensci.github.io/dev_guide/policies.html

  • nos catégories: accès à des données, extraction de données, accès à des formats de base de données, manipulation de données, dépôts de données, reproducibilité, données géospatiales, analyse de texte.

  • application scientifique

21 / 37

Pas de rejets mais...

Paquets hors du domaine visé non accueillis. https://ropensci.github.io/dev_guide/policies.html

  • nos catégories: accès à des données, extraction de données, accès à des formats de base de données, manipulation de données, dépôts de données, reproducibilité, données géospatiales, analyse de texte.

  • application scientifique

  • meilleur que les paquets similaires

21 / 37

Pas de rejets mais...

Paquets hors du domaine visé non accueillis. https://ropensci.github.io/dev_guide/policies.html

  • nos catégories: accès à des données, extraction de données, accès à des formats de base de données, manipulation de données, dépôts de données, reproducibilité, données géospatiales, analyse de texte.

  • application scientifique

  • meilleur que les paquets similaires

En cas de doute, demande de pré-soumission !

21 / 37

Le procédé de révision

22 / 37

Vérifications par l'éditeur·rice

23 / 37

Le procédé de revue

Deux réviseur·se·s.

Discussion continue jusqu'au transfert du paquet.

24 / 37

Le procédé de revue

Deux réviseur·se·s.

Discussion continue jusqu'au transfert du paquet.

Souvent, un article de blog https://ropensci.org/tags/software-peer-review/

24 / 37

Revue de code scientifique 🔍

25 / 37

Bénéfices des revues de code

  • Découverte d'erreur

  • Amélioration (lisibilité, performance)

  • Apprentissage de trucs et astuces

  • Créer la culture pour changer les pratiques des journaux ?

26 / 37

Code de tout travail scientifique ?

Inspiration: rOpenSci Community Call, Code Review in the Lab, or ... How do you review code that accompanies a research project or paper?

Vidéo 🎥 et ressources 🗒: https://ropensci.org/commcalls/2018-10-16/

27 / 37

Élargir le système de rOpenSci ?

  • Standards de code

  • Liste de critères de revue

  • Automatisation

  • Culture, communauté

28 / 37

Standards de code

Notamment la structure de projet: rOpenSci révise des paquets R.

Pour tout projet avec du code R,

En tout cas, conventions dans l'équipe.

29 / 37

Liste de critères de revue

Que doit regarder le·a collègue qui lit le code ?

Priorité à quoi ?

30 / 37

Automatisation

Libérer du temps et de l'énergie pour ce qui compte : la science, et la créativité !

Automatiser la revue ?

  • Automatisation via la structure de paquet (R CMD check, goodpractice)

  • pkgreviewr par l'éditrice de rOpenSci Anna Krystalli

31 / 37

Automatisation

Libérer du temps et de l'énergie pour ce qui compte : la science, et la créativité !

32 / 37

Automatisation

Libérer du temps et de l'énergie pour ce qui compte : la science, et la créativité !

Automatiser la création de projet ?

32 / 37

Culture, communauté

33 / 37

Culture, communauté

  • Donner de la valeur à la revue de code (temps non perdu).
    • Et dans une équipe, qui fait le travail de création des outils ? Quel poste pour cela, quelle reconnaissance ?
33 / 37

Culture, communauté

  • Donner de la valeur à la revue de code (temps non perdu).

    • Et dans une équipe, qui fait le travail de création des outils ? Quel poste pour cela, quelle reconnaissance ?
  • Confiance pour ouvrir son code, et faire des remarques. blameless post-mortem. Hilary Parker's "Opiniated Analysis Development", also.

33 / 37

Culture, communauté

  • Donner de la valeur à la revue de code (temps non perdu).

    • Et dans une équipe, qui fait le travail de création des outils ? Quel poste pour cela, quelle reconnaissance ?
  • Confiance pour ouvrir son code, et faire des remarques. blameless post-mortem. Hilary Parker's "Opiniated Analysis Development", also.

  • Besoin de formation. URFIST, The Carpentries.

33 / 37

Pour finir 💼

34 / 37

Approfondir

35 / 37

Meta

  • Diapos réalisées avec xaringan

  • Captures d'écran avec webshot et magick ropensci/magick

  • Emojis ajouté via emo

  • Icônes ajoutées via icon ropenscilabs/icon

36 / 37

Merci !

https://tiny.cc/urfist-salmon

ma_salmon maelle masalmon.eu

rOpenSci ropensci ropensci.org

via GIPHY

37 / 37

Mes objectifs

2 / 37
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow