-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathissue_reprex.qmd
55 lines (34 loc) · 2.27 KB
/
issue_reprex.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
---
title: "Partager un exemple reproductible dans une issue GitHub"
lang: fr
format: html
toc: true
author:
- Julie Aubert
---
## Objectif
L'objectif de ce billet est de présenter des conseils pour écrire une issue pour demander des améliorations ou soumettre des bugs dans un code déposé sur GitHub.
## Recommandations
Les recommandations proposées sur les dépôts des packages du tidyverse :
- Inclure un exemple minimal reproductible, dit `reprex`.
Lire [What is a reprex](https://github.com/tidyverse/reprex#what-is-a-reprex) pour plus de détails.
- Si les données sont confidentielles, utiliser des données disponibles dans [modeldata](https://modeldata.tidymodels.org/reference/index.html), simuler des données ou anonymiser les données.
- Utiliser des graines `set.seed()`
- Vérifier sur les blogs ou forums que le problème n'a pas déjà été signalé ou réglé.
D'autres recommandations sont proposées dans le cas d'utilisation de calculs parallèles.
## Structure de l'issue
1. Présenter en premier le problème (_"I'm having trouble with ..."_)
2. Donner un exemple reproductible dans un format adapté.
Un bon exemple de report de bug [#46](https://github.com/tidymodels/tune/issues/46).
## Exemple reproductible avec le package {reprex}
Il est possible de créer un exemple reproductible avec le package {reprex} qui produit une sortie bien formatée notamment pour GitHub, et que l'on peut ensuite faciler copier/coller.
Si le code est un peu long, faire un script, par exemple `mon_probleme.R`
Il suffit ensuite d'utiliser la fonction `reprex` du package du même nom avec les options de son choix. Par exemple `reprex(input = 'mon_probleme.R', session_info = TRUE)`.
L'option `session_info = TRUE` permet de récuperer les informations sur notre session R.
La fonction génère un fichier markdown (`mon_probleme.md`) dans le cas de l'utilisation d'un script directement intégrable dans l'issue et ouvre également par défaut le rendu dans le viewer de RStudio ou un navigateur (peut se modifier avec l'argument `html_preview = FALSE`).
Petit exemple plus court (sans utilisation de script extérieur) issu du package {reprex} :
```{r}
#| warning: false
library(reprex)
reprex(rbinom(3, size = 10, prob = 0.5), session_info = TRUE, html_preview = FALSE)
```