knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
library(attachment)
When building your package, create a file called "dev_history.R" in a "dev/" directory. You will store all "manual" calls to devtools::xxx
and usethis::xxx
in this script.
Its first line should be :
usethis::use_build_ignore("dev")
You can then call {attachment} in this file to help you build your description file.
Dependencies of your Bookdown can be automatically installed if you use a "DESCRIPTION" file.
Indeed, you can use this procedure to create the DESCRIPTION file for local installation or for Continuous Integration with GitLab Pages or GitHub Actions.
See for instance, the GitLab CI workflows in {gitlabr}: https://github.com/ThinkR-open/gitlabr/tree/main/inst/gitlab-ci
usethis::use_description()
attachment::att_to_desc_from_is()
.
Note that to include it directly in CI (as proposed in {gitlabr} templates), you may need to set att_to_desc_from_is(must.exist = FALSE)
. att_from_rmds()
also works for ".qmd" documents. You can use att_from_qmds()
if you want, although for now there is no difference and it will also parse ".Rmd" documents.# 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 )
# install.packages("remotes") remotes::install_deps()
An interest of using DESCRIPTION to list your bookdown dependencies is to use packages from other sources than CRAN and list them in the 'Remotes' field.
Here comes set_remotes_to_desc()
, which adds packages that were installed from other source than CRAN to Remotes:
field in DESCRIPTION.
You can run it after 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()
You can get the list of packages in your package with att_from_namespace()
att_from_namespace()
pkg::function
or library/requireThis reads all files in directories of R scripts (default to R
directory of a package)
att_from_rscripts()
If you have vignette, you may want to list extra libraries, not listed in your "Depends" list. This function applies to any Rmd file, of course.
att_from_rmds()
Of course, you can also use {attachment} out of a package to list all package dependencies of R scripts using att_from_rscripts()
or Rmd files using att_from_rmds()
.
If you want to run att_from_rmds()
inside a Rmd as for this vignette, you will need to set att_from_rmds(inside_rmd = TRUE)
dummypackage <- system.file("dummypackage", package = "attachment") att_from_rmds(path = file.path(dummypackage, "vignettes"), inside_rmd = TRUE)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.