Une nouvelle version de {attachment} est disponible sur CRAN. Découvrez vos dépendances installées à partir de GitHub, GitLab, … et ajoutez les au champ ‘Remotes’ dans le fichier DESCRIPTION de votre package.
install.packages("attachment")
En attendant la sortie sur le CRAN, vous pouvez installer depuis GitHub : remotes::install_github("ThinkR-open/[email protected]")
{attachment} vous aide à gérer les dépendances pendant le développement de votre package.
Tous les paquets utilisés dans votre code doivent être déclarés dans le fichier DESCRIPTION, afin que les autres utilisateurs puissent installer votre package avec les dépendances requises. {attachment} extrait les paquets déclarés dans vos codes et les liste au bon endroit (‘Imports’, ‘Suggests’ et maintenant ‘Remotes’) dans votre fichier DESCRIPTION.
Notez que {attachment} peut être utilisé en dehors du développement d’un package si vous souhaitez extraire la liste des dépendances utilisées dans vos scripts R ou vos fichiers Rmarkdown, où qu’ils soient stockés.
Pas l’temps de tout lire – NEWS
Table des matières
Changements cassants
- (cassé dans 0.2.3) –
att_to_desc_from_is()
peut maintenant être exécuté avecmust.exist = FALSE
pour être utilisé pour remplir le fichier DESCRIPTION pendant le processus de bookdown CI. Les fichiers CI YAML, comme ceux provenant degitlabr::use_gitlab_ci()
pour les sorties bookdown doivent être mis à jour avec ce paramètre.
Changements majeurs
- Permet d’ajouter le champ Remotes à DESCRIPTION avec
set_remotes_to_desc()
. - Diviser la vignette en deux : développement du paquet et gestion des autres dépendances.
Changements mineurs
- Vérification des noms de paquets mal orthographiés avant de remplir DESCRIPTION.
- Autorise un vecteur des fichiers R dans
att_from_rscripts()
. - Déplacement de la branche git par défaut de master à main.
- Permet de nettoyer la liste des Remotes avant la mise à jour avec
set_remotes_to_desc(clean = TRUE)
.
Correction de bogues
- Ajout de NAMESPACE si manquant avec
att_amend_desc(document = TRUE)
. - Ajout de DESCRIPTION avec un squelette vide si manquant avec
att_amend_desc()
. - Suppression par défaut du NAMESPACE avant la mise à jour pour se débarrasser de ceux qui sont corrompus dans
att_from_namespace()
. - Correction de la détection des sorties multiples de ‘render’ dans un YAML de Rmd avec
att_from_rmd()
.
Rappel : pendant le développement d’un package
La fonction star de {attachment} est attachment::att_amend_desc()
à lancer à chaque fois avant devtools::check()
. Cela vous évitera quelques warnings et erreurs !
att_amend_desc()
Nouveautés dans la v0.2.4
Propose content for the “Remotes” field in DESCRIPTION
set_remotes_to_desc()
ajoute les paquets qui ont été installés sur votre ordinateur depuis d’autres sources que le CRAN dans le champ Remotes:
de DESCRIPTION, selon la liste de ‘Imports’ et ‘Suggests’.
Par exemple :
- Pour GitHub :
Remotes : thinkr-open/attachment
- Pour GitLab :
Remotes : gitlab::jimhester/covr
.
Vous pouvez le lancer après att_amend_desc()
dans le développement de votre paquet.
att_amend_desc(dummypackage) %>%
set_remotes_to_desc()
Créons un petit fichier DESCRIPTION
desc_file <- tempfile(pattern = "desc")
cat("
Imports:
attachment,
glue
Suggests:
desc
", file = desc_file)
J’installe {attachment} depuis GitHub et j’exécute set_remotes_to_desc()
sur le fichier exemple.
# install from GitHub
remotes::install_github("ThinkR-open/attachment",
upgrade = "never", quiet = TRUE)
# Add 'Remotes' field
set_remotes_to_desc(desc_file)
## Remotes for attachment were added to DESCRIPTION.
# Read the DESCRIPTION file
cat(readLines(desc_file), sep = "\n")
## Imports:
## attachment,
## glue
## Suggests:
## desc
## Remotes:
## thinkr-open/attachment
Le champ ‘Remotes’ a été correctement ajouté !
Trouver les installations hors CRAN sur votre ordinateur
Si vous voulez seulement savoir si des paquets ont été installés à partir d’une autre source que CRAN, sans modifier DESCRIPTION, vous pouvez utiliser find_remotes()
.
Vous pouvez l’utiliser sur un vecteur de noms de paquets.
# install from GitHub
remotes::install_github("ThinkR-open/attachment",
upgrade = "never", quiet = TRUE)
find_remotes(pkg = c("attachment", "desc", "glue"))
## $attachment
## [1] "thinkr-open/attachment"
# install from CRAN
remotes::install_cran("attachment",
upgrade = "never", quiet = TRUE)
find_remotes(pkg = c("attachment", "desc", "glue"))
## NULL
Vous pouvez aussi avoir envie de le combiner avec att_from_description()
ou n’importe quel autre att_from_*()
att_from_description() %>%
find_remotes()
att_from_rscripts(path = "R/") %>%
find_remotes()
att_from_rmds(path = "vignettes/") %>%
find_remotes()
Remplir un fichier de description bookdown
Vous pouvez utiliser une approche similaire pour un fichier de description {bookdown} en utilisant attachment::att_to_desc_from_is()
.
En effet, vous pouvez l’utiliser dans votre CI pour construire automatiquement vos pages HTML tout en analysant les dépendances requises. Notez que pour l’inclure directement dans le CI (comme proposé dans les modèles {gitlabr}), vous devrez peut-être définir att_to_desc_from_is(must.exist = FALSE)
.
# bookdown Imports are in Rmds
imports <- c("bookdown", attachment::att_from_rmds("."))
attachment::att_to_desc_from_is(
path.d = "DESCRIPTION",
imports = imports, suggests = NULL,
must.exist = FALSE
)
Ensuite, vous pouvez installer les dépendances à partir du fichier DESCRIPTION.
remotes::install_local()
Proposer un contenu pour le champ “Remotes”
Un intérêt d’utiliser DESCRIPTION pour lister vos dépendances bookdown est d’utiliser des paquets provenant d’autres sources que le CRAN et de les lister dans le champ “Remotes”.
Voici set_remotes_to_desc()
, qui ajoute les paquets qui ont été installés depuis une autre source que le CRAN dans le champ Remotes:
de DESCRIPTION.
Vous pouvez le lancer après att_to_desc_from_is()
.
attachment::att_to_desc_from_is(
path.d = "DESCRIPTION",
imports = imports, suggests = NULL,
must.exist = FALSE
) %>%
set_remotes_to_desc()
Pour aller plus loin
- La documentation complète est disponible sur le site {pkgdown} : https://thinkr-open.github.io/attachment/
- Si vous voulez participer, la version de développement de {attachment} est sur GitHub : https://github.com/ThinkR-open/attachment
Notez que {attachment} est utilisé dans {fusen}, un package qui réduit le développement de package à un simple fichier Rmarkdown. Pour en savoir plus, consultez la documentation dédiée : https://thinkr-open.github.io/fusen/