{attachment} est sur le CRAN

Author : Sébastien Rochette
Tags : astuces, développement, package, thinkrverse
Date :

Yeah ! Notre package {attachment} est maintenant disponible sur CRAN. {attachment} est là pour aider à gérer les dépendances pendant le développement de vos packages. Il fournit également des outils utiles pour installer ou lister les packages manquants utilisés dans des scripts R ou des Rmds.

Gérer les dépendances pendant le développement de packages

Si vous avez déjà eu l’erreur suivante au moment du check de votre package, {attachment} est fait pour vous !

R CMD check results 1 error | 0 warnings | 0 notes checking package dependencies … ERROR Namespace dependency not required: ‘collateral’

Avec cette erreur, Colin vous répondrait :

error-namespace-dependency

Avez-vous listé le package dans le fichier DESCRIPTION et le fichier NAMESPACE ?

En effet, les étapes pour traiter les dépendances dans vos fonctions R lors de la création d’un package sont les suivantes :

  • Utiliser package::fonction directement dans le code ou lister la fonction dans l’en-tête {roxygen2} avec la fonction @importFrom package function
  • Exécutez devtools::document() pour que la fonction apparaisse dans le fichier NAMESPACE
  • Ajouter le {package} dans la liste des Depends du fichier DESCRIPTION

Par ailleurs, lorsque vous créez une vignette et des tests dans votre package, vous devez vous rappeler de lister les packages dans la section Suggests de votre fichier DESCRIPTION

{attachment} est là pour aider

Le package {attachment} realisera toutes les étapes ci-dessus pour vous.
Installez le package depuis CRAN ou Github :

# From CRAN
install.packages("attachment")
# From github
remotes::install_github("ThinkR-open/attachment")

Si vous avez correctement appelé les dépendances du package dans le squelette {roxygen2}, dans vos fonctions, dans vos vignettes Rmarkdown et dans vos tests, il vous suffit de lancer attachment::att_to_description() juste avant devtools::check(). Et c’est tout, il n’y a rien d’autre à retenir !

Utiliser {attachment} hors développement de package

{attachment} analyse le code des scripts R et Rmd. Il liste tous les packages requis pour exécuter ce code. Si vous voulez installer tous les packages avant d’essayer d’exécuter le code de quelqu’un d’autre, vous pouvez utiliser :

attachment::att_from_rmds(path = ".") %>% attachment::install_if_missing()

attachment::att_from_rscripts(path = ".") %>% attachment::install_if_missing()

De plus, si vous créez des packages ou des applications Shiny dans des packages pour vos livraisons à vos clients, ou si vous devez installer votre produit R sur les serveurs de vos clients, vous aurez besoin d’installer tous les packages requis avant l’installation. Un bon début est d’utiliser un script R qui liste tous les paquets requis. Avec la fonctionattachment::create_dependencies_file() vous pouvez construire ce type de script :

# No Remotes ----
# remotes::install_github("ThinkR-open/fcuk")
# Attachments ----
to_install <- c("covr", "desc", "devtools", "glue", "knitr", "magrittr", "rmarkdown", "stats", "stringr", "testthat", "utils")
for (i in to_install) {
  message(paste("looking for ", i))
  if (!requireNamespace(i)) {
    message(paste("     installing", i))
    install.packages(i)
  }
}

Documentation et participation

Pour lire la documentation complète du package {attachment}, vous pouvez suivre ce lien vers le site {pkgodwn}.

Si vous voulez participer au développement, rapporter des bugs ou proposer des requêtes pull, vous trouverez la page github ici.

Retrouvez nos autres contributions à l’open-source et à la communité R ici.


Comments


Also read