Skip to contents

Show which targets are outdated.

Usage

tar_git_status_targets(
  script = targets::tar_config_get("script"),
  store = targets::tar_config_get("store"),
  reporter = targets::tar_config_get("reporter_outdated"),
  envir = parent.frame(),
  callr_function = callr::r,
  callr_arguments = NULL
)

Arguments

script

Character of length 1, path to the target script file. Defaults to tar_config_get("script"), which in turn defaults to _targets.R. When you set this argument, the value of tar_config_get("script") is temporarily changed for the current function call. See tar_script(), tar_config_get(), and tar_config_set() for details about the target script file and how to set it persistently for a project.

store

Character of length 1, path to the targets data store. Defaults to tar_config_get("store"), which in turn defaults to _targets/. When you set this argument, the value of tar_config_get("store") is temporarily changed for the current function call. See tar_config_get() and tar_config_set() for details about how to set the data store path persistently for a project.

reporter

Character of length 1, name of the reporter to user. Controls how messages are printed as targets are checked. Choices:

  • "silent": print nothing.

  • "forecast": print running totals of the checked and outdated targets found so far.

envir

An environment, where to run the target R script (default: _targets.R) if callr_function is NULL. Ignored if callr_function is anything other than NULL. callr_function should only be NULL for debugging and testing purposes, not for serious runs of a pipeline, etc.

The envir argument of tar_make() and related functions always overrides the current value of tar_option_get("envir") in the current R session just before running the target script file, so whenever you need to set an alternative envir, you should always set it with tar_option_set() from within the target script file. In other words, if you call tar_option_set(envir = envir1) in an interactive session and then tar_make(envir = envir2, callr_function = NULL), then envir2 will be used.

callr_function

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.

callr_arguments

A list of arguments to callr_function.

Value

A tibble with the names of outdated targets.

Details

This function has prettier output than targets::tar_outdated(), and it mainly serves tar_git_status().

Examples

targets::tar_dir({ # Containing code does not modify the user's file space.
targets::tar_script(tar_target(data, 1))
targets::tar_make()
list.files("_targets", all.files = TRUE)
tar_git_status_targets()
})
#> ✖ empty pipeline [0.046 seconds]
#> Warning message:
#> package ‘targets’ was built under R version 4.4.2 
#> 
#> 
#> ── Debugging ───────────────────────────────────────────────────────────────────
#> 
#> ── How to ──────────────────────────────────────────────────────────────────────
#> 
#> ── Last error message ──────────────────────────────────────────────────────────
#> 
#> ── Last error traceback ────────────────────────────────────────────────────────
#> Error: targets::tar_make() error
#>      tar_errored()
#>      tar_meta(fields = any_of("error"), complete_only = TRUE)
#>      tar_workspace()
#>      tar_workspaces()
#>      Debug: https://books.ropensci.org/targets/debugging.html
#>      Help: https://books.ropensci.org/targets/help.html
#>     there is no package called ‘autometric’
#>     base::tryCatch(base::withCallingHandlers({ NULL base::saveRDS(base::do.c...
#>     tryCatchList(expr, classes, parentenv, handlers)
#>     tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), na...
#>     doTryCatch(return(expr), name, parentenv, handler)
#>     tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
#>     tryCatchOne(expr, names, parentenv, handlers[[1L]])
#>     doTryCatch(return(expr), name, parentenv, handler)
#>     base::withCallingHandlers({ NULL base::saveRDS(base::do.call(base::do.ca...
#>     base::saveRDS(base::do.call(base::do.call, base::c(base::readRDS("/tmp/R...
#>     base::do.call(base::do.call, base::c(base::readRDS("/tmp/RtmpG8JSfU/call...
#>     (function (what, args, quote = FALSE, envir = parent.frame()) { if (!is....
#>     (function (targets_function, targets_arguments, options, envir = NULL, s...
#>     tryCatch(out <- withCallingHandlers(targets::tar_callr_inner_try(targets...
#>     tryCatchList(expr, classes, parentenv, handlers)
#>     tryCatchOne(expr, names, parentenv, handlers[[1L]])
#>     doTryCatch(return(expr), name, parentenv, handler)
#>     withCallingHandlers(targets::tar_callr_inner_try(targets_function = targ...
#>     targets::tar_callr_inner_try(targets_function = targets_function, target...
#>     do.call(targets_function, targets_arguments)
#>     (function (pipeline, path_store, names_quosure, shortcut, reporter, seco...
#>     local_init(pipeline = pipeline, meta = meta_init(path_store = path_store...
#>     self$process_next()
#>     self$process_target(self$scheduler$queue$dequeue())
#>     self$run_target(target)
#>     target_prepare(target, self$pipeline, self$scheduler, self$meta)
#>     target_prepare.tar_builder(target, self$pipeline, self$scheduler, self$m...
#>     loadNamespace(x)
#>     withRestarts(stop(cond), retry_loadNamespace = function() NULL)
#>     withOneRestart(expr, restarts[[1L]])
#>     doWithOneRestart(return(expr), restart)