renvWrite package dependencies to a script file
(by default, named _targets_packages.R in the root project directory).
Each package is written to a separate line
as a standard library() call (e.g. library(package)) so
renv can identify them automatically.
tar_renv(
extras = c("bs4Dash", "clustermq", "future", "gt", "markdown", "pingr", "rstudioapi",
"shiny", "shinybusy", "shinyWidgets", "visNetwork"),
path = "_targets_packages.R",
callr_function = callr::r,
callr_arguments = targets::callr_args_default(callr_function)
)Character vector of additional packages to declare as project dependencies.
Character of length 1, path to the script file to
populate with library() calls.
A function from callr to start a fresh clean R
process to do the work. Set to NULL to run in the current session
instead of an external process (but restart your R session just before
you do in order to clear debris out of the global environment).
callr_function needs to be NULL for interactive debugging,
e.g. tar_option_set(debug = "your_target").
However, callr_function should not be NULL for serious
reproducible work.
A list of arguments to callr_function.
Nothing, invisibly.
This function gets called for its side-effect, which writes
package dependencies to a script for compatibility with renv.
The generated file should not be edited by hand and will be
overwritten each time tar_renv() is called.
The behavior of renv is to create and manage a project-local R library
and keep a record of project dependencies in a file called renv.lock.
To identify dependencies, renv crawls through code to find packages
explicitly mentioned using library(), require(), or ::.
However, targets manages packages in a way that hides dependencies
from renv. tar_renv() finds package dependencies that would be
otherwise hidden to renv because they are declared using the targets
API. Thus, calling tar_renv this is only necessary if using
tar_option_set() or tar_target() to use specialized storage
formats or manage packages.
With the script written by tar_renv(), renv is able to crawl the
file to identify package dependencies (with renv::dependencies()).
tar_renv() only serves to make your targets project compatible with
renv, it is still the users responsibility to call renv::init() and
renv::snapshot() directly to initialize and manage a
project-local R library. This allows your targets pipeline to have
its own self-contained R library separate from your standard R
library. See https://rstudio.github.io/renv/index.html for
more information.
https://rstudio.github.io/renv/articles/renv.html
Other scripts:
tar_edit(),
tar_github_actions(),
tar_helper_raw(),
tar_helper(),
tar_script()
# NOT RUN {
tar_dir({ # tar_dir() runs code from a temporary directory.
tar_script({
tar_option_set(packages = c("tibble", "qs"))
list()
}, ask = FALSE)
tar_renv()
writeLines(readLines("_targets_packages.R"))
})
tar_option_reset()
# }
Run the code above in your browser using DataLab