drake (version 7.13.9)

deps_profile: Find out why a target is out of date. [Stable]

Description

The dependency profile can give you a hint as to why a target is out of date. It can tell you if

  • the command changed (deps_profile() reports the hash of the command, not the command itself)

  • at least one input file changed,

  • at least one output file changed,

  • or a non-file dependency changed. For this last part, the imports need to be up to date in the cache, which you can do with outdated() or make(skip_targets = TRUE).

  • the pseudo-random number generator seed changed. Unfortunately, deps_profile() does not currently get more specific than that.

Usage

deps_profile(target, ..., character_only = FALSE, config = NULL)

Value

A data frame of old and new values for each of the main triggers, along with an indication of which values changed since the last make().

Arguments

target

Name of the target.

...

Arguments to make(), such as plan and targets.

character_only

Logical, whether to assume target is a character string rather than a symbol.

config

Deprecated.

See Also

diagnose(), deps_code(), make(), drake_config()

Examples

Run this code
if (FALSE) {
isolate_example("Quarantine side effects.", {
if (suppressWarnings(require("knitr"))) {
load_mtcars_example() # Load drake's canonical example.
make(my_plan) # Run the project, build the targets.
# Get some example dependency profiles of targets.
deps_profile(small, my_plan)
# Change a dependency.
simulate <- function(x) {}
# Update the in-memory imports in the cache
# so deps_profile can detect changes to them.
# Changes to targets are already cached.
make(my_plan, skip_targets = TRUE)
# The dependency hash changed.
deps_profile(small, my_plan)
}
})
}

Run the code above in your browser using DataLab