La nouvelle version de {attachment} stocke vos paramètres dans un fichier de configuration pour une utilisation plus facile pendant le développement de votre package : lancez att_amend_desc()
de n’importe où, il réutilisera votre dernier jeu de paramètres. Ceci s’accompagne de quelques changements pour une meilleure expérience.
Le but de {attachment} est d’aider à gérer les dépendances des paquets pendant leur développement. Il fournit également des outils utiles pour installer ou lister les paquets manquants utilisés dans les scripts R, Rmds ou qmd. Il lit votre NAMESPACE, vos fonctions dans le répertoire R et vos vignettes, puis met à jour le fichier DESCRIPTION en conséquence. Êtes-vous prêt à devenir paresseux.ses ? Laissez {attachment} vous aider !
Installation
Table des matières
{attachment} est disponible sur CRAN et développé sur GitHub. Vous pouvez accéder à la documentation complète sur cette page : https://thinkr-open.github.io/attachment. Il apparaît également sur la page ThinkR r-universe si vous souhaitez installer la version de développement sans les contraintes de l’API GitHub.
Installer la version CRAN
install.packages("attachment")
Installer la version de développement
install.packages('attachment', repos = c('https://thinkr-open.r-universe.dev', 'https://cloud.r-project.org'))
Déclarer toutes les dépendances dans DESCRIPTION au cours du développement du package
Ce que vous voulez vraiment, c’est remplir et mettre à jour votre fichier de description au fur et à mesure des modifications de votre documentation. En effet, seule la fonction suivante sera réellement appelée. A user et abuser pendant le développement de votre paquet !
attachment::att_amend_desc()
{attachment} détecte tous les appels à library(pkg)
, @importFrom pkg fun
, pkg::fun()
dans les différents répertoires classiques de votre package R, puis les liste dans la bonne catégorie « Imports » ou « Suggests » dans le fichier DESCRIPTION, en fonction de leur position dans le package.
Déclarer des dépendances supplémentaires pour des utilisations supplémentaires
Si vous voulez ajouter des paquets supplémentaires comme {pkgdown} ou {covr} qui ne sont listés dans aucun script de votre paquet, un appel pour vos paquets de développement serait :
attachment::att_amend_desc(extra.suggests = c("pkgdown", "covr"), update.config = TRUE)
Notez le paramètre update.config = TRUE
qui enregistrera les paramètres utilisés dans l’appel de att_amend_desc()
dans le fichier de configuration du package : « dev/config_attachment.yaml ».
Si vous lancez att_amend_desc()
une deuxième fois par la suite, directement depuis la console, il utilisera le dernier set de paramètres extrait du fichier de configuration.
En effet, nous recommandons de stocker la ligne de commande complète dans un fichier « dev/dev_history.R » afin de la mettre à jour et de l’exécuter en cas de besoin. Si les paramètres ne changent pas, vous pouvez exécuter attachment::att_amend_desc()
directement dans la console, où que vous soyez, il utilisera le fichier de configuration.
Remplir automatiquement le champ « Remotes »
Si vous souhaitez détecter les sources de vos installations afin d’ajouter des dépendances dans le champ « Remotes » de votre fichier DESCRIPTION, pour imiter votre installation locale, vous utiliserez :
attachment::set_remotes_to_desc()
Combinaison de {attachment} avec {fusen}
Le fichier de configuration de {attachment} a été développé à l’origine pour une meilleure intégration avec {fusen}. En effet, lorsque vous inflate()
votre fichier notebook en un package R entièrement documenté, {fusen} exécute automatiquement attachment::att_amend_desc()
pour mettre à jour votre documentation et la liste des dépendances de votre package. Cependant, jusqu’à présent, il n’était pas possible d’utiliser des paramètres supplémentaires dans la fonctioninflate()
à utiliser par {attachment}, et vous deviez arrêter la détection automatique avec document = FALSE
, puis exécuter votre code {attachment} spécifique à partir d’un autre endroit.
Comme nous sommes tous paresseux, nous ne voulons pas changer de fichier à chaque fois que nous devons introduire une nouvelle modification dans notre paquetage. Avec le fichier de configuration de {attachement}, vous pouvez laisser votrefusen::inflate()
tel quel, et il utilisera la dernière version de attachment::att_amend_desc()
en fonction de ce qui est dans le fichier de configuration. Si vous souhaitez modifier les paramètres par défaut, en ajoutant des dépendances supplémentaires par exemple, vous n’aurez à modifier le fichier de configuration qu’une seule fois. Pour ce faire, vous voudrez sûrement mettre à jour votre fichier « dev/0-dev_history.Rmd » avec ce code à exécuter une seule fois :
attachment::att_amend_desc(extra.suggests = c("pkgdown", "covr"), update.config = TRUE)
Contenu du NEWS
Changements de ruptures
- Lors de l’utilisation de
att_amend_desc()
sans les paramètres par défaut, commepkg_ignore = "x"
nécessitera maintenantatt_amend_desc(pkg_ignore = "x", update.config = TRUE)
, sinon, il échouera. Cela permet d’utiliser les paramètres stockés dans le fichier de configuration lors de l’exécution deatt_amend_desc()
directement dans la console.
Recommandation : Exécutezatt_amend_desc(pkg_ignore = "x", update.config = TRUE)
si vous devez mettre à jour votre configuration, exécutezatt_amend_desc()
quotidiennement car vous voudrez utiliser ce qui est stocké dans le fichier de configuration. create_dependencies_file()
obtient le paramètreinstall_only_if_missing = FALSE
par défaut pour compléter les instructions d’installation des packages uniquement s’ils sont manquants. (@MurielleDelmotte)
Nouvelles fonctionnalités
att_amend_desc()
peut s’exécuter avec le dernier jeu de paramètres stocké dans un fichier de configuration, sans avoir à les appeler tous à chaque fois. Voir les vignettes et la documentation des paramètresupdate.config = FALSE
,use.config = FALSE
etpath.c = "dev/config_attachment.yaml"
. (@dagousket)create_dependencies_file()
prend maintenant en compte les autres sources (git, gitlab, github, bioc, local). (@MurielleDelmotte)- Utiliser
create_dependencies_file(to = NULL)
pour obtenir la sortie sous forme de chaîne de caractères et ne pas créer de fichier.