Skip to contents

Get the topologically sorted list of QMDs that need to be re-rendered

Usage

get_render_plan(
  all_objects,
  only_stale = TRUE,
  from = NULL,
  to = NULL,
  dry_run = FALSE,
  stale_by = c("mtime", "hash"),
  hash_file = NULL
)

Arguments

all_objects

The full list of FilePath, FileUses, and FileOutputs objects.

only_stale

Logical. When `TRUE` (default), plans only documents that are out of date or affected by upstream changes. When `FALSE`, plans all renderable nodes in topological dependency order (for full pipeline reruns).

from

Optional node name or 1-based integer index in the topological plan to start execution from.

to

Optional node name or 1-based integer index in the topological plan to end execution at.

dry_run

Logical. When `TRUE`, prints the ordered plan to console without executing and returns the planned objects invisibly.

stale_by

Staleness strategy: `"mtime"` (default; compares modification times) or `"hash"` (compares SHA-256 content hashes stored in `pipeline_hashes.json`).

hash_file

Optional path to `pipeline_hashes.json` when `stale_by = "hash"`.

Value

A list of FileOutputs objects (the QMDs) in the correct render order.

Details

The graph's identity is the node name, not the file path: a file declared under two names is two nodes, so a report that reads it under one name is not planned when the report that writes it under the other is. This is reported with a warning, as is one name used for two files, and so are two producers that declare the same output file. Two objects of all_objects with the same name are an error. See as_igraph.