Freeze and prepare the packages needed for a reverse-dependency comparison.
Preparation stops before any old/new checks begin. If a package cannot be
prepared, the call returns normally with actionable entries in problems.
Repeat the same call after resolving external prerequisites to resume the
frozen preparation.
Usage
revdep_prepare(
package,
recursive = FALSE,
max_recursive = NULL,
sample_seed = NULL,
cache = NULL,
repos = NULL,
timeout_seconds = 1800L,
verbose = FALSE
)Arguments
- package
A development package checkout or an existing
revdep_plan()object.- recursive
Include recursive strong reverse dependencies as candidates.
- max_recursive
Optional maximum number of recursive-only targets to select. All direct targets remain selected.
- sample_seed
Optional non-negative integer used to choose a different reproducible recursive sample. It can be supplied only with
max_recursive.- cache
Cache directories to inspect for compatible binaries.
NULLuses the ordinarycrancachedirectory and the current runner-managed binary cache when they exist;character()disables cache inspection. An explicit value replaces default discovery.- repos
Named source repository base URLs.
NULLcombines the configured repositories with the standard Bioconductor repositories. An explicit value is used exactly. When a namedCRANrepository is present, reverse targets come from CRAN while dependencies can come from every configured repository.- timeout_seconds
Positive whole seconds allowed for each preparation subprocess (building, installing, or checking loadability). Increasing this budget retains compatible completed preparation. Defaults to 1800.
- verbose
Show phase, package, and completion progress. Defaults to
FALSE.
Value
A revdep_prepared object with summary, problems, plan, and
evidence. Raw preparation log paths are retained in problems and the
complete private preparation report is available as advanced evidence.
evidence$report is NULL if setup failed before a package report was saved.
Details
The durable data directory defaults to
tools::R_user_dir("revdeprunner", "data"), and disposable run state
defaults to tools::R_user_dir("revdeprunner", "cache"). Set
REVDEP_RUNNER_DATA or REVDEP_RUNNER_RUNS to override them. Supplying a
plan freezes its selected targets; planning arguments cannot also be
supplied. A checkout call reuses its first matching frozen plan. Create and
pass a new revdep_plan() when a refreshed repository snapshot is wanted.
Repository-unavailable Suggests remain visible in the plan but do not
block preparation, matching stock checks with forced Suggests disabled.
Available suggestions are prepared; failures remain checking prerequisites
without blocking installation of their suggestors. Candidate hard dependency
declarations and constraints must still match the plan.
Successful binaries and package checkpoints survive removal of working libraries and historical logs. Readiness includes a fresh-process namespace load check in the current environment; this does not exercise every compiled function or detect every system change.
This workflow currently supports Linux. It installs trusted package code in isolated libraries but is not an operating-system security sandbox.
Examples
if (FALSE) { # \dontrun{
prepared <- revdep_prepare("/path/to/package", verbose = TRUE)
prepared$problems
plan <- revdep_plan(
"/path/to/package",
recursive = TRUE,
max_recursive = 20
)
prepared <- revdep_prepare(plan)
} # }