new_pkg_deps | R Documentation |
Look up dependencies of R packages from various sources.
new_pkg_deps(refs, ...)
refs |
Package names or references. See 'Package references' for the syntax. |
... |
Additional arguments, passed to
|
new_pkg_deps()
creates a new object from the pkg_deps
class.
The advantage of new_pkg_deps()
compared to using the pkg_deps
constructor directly is that it avoids making pkgdepends a build time
dependency.
The usual steps to query package dependencies are:
Create a pkg_deps
object with new_pkg_deps()
.
Resolve all possible dependencies with
pkg_deps$resolve()
.
Solve the dependencies, to obtain a subset of all possible
dependencies that can be installed together, with
pkg_deps$solve()
.
Call pkg_deps$get_solution()
to list the
result of the dependency solver.
new_pkg_deps()
returns a new pkg_deps
object.
new()
Create a new pkg_deps
object. Consider using new_pkg_deps()
instead of calling the constructor directly.
The returned object can be used to look up (recursive) dependencies
of R packages from various sources. To perform the actual lookup,
you'll need to call the resolve()
method.
pkg_deps$new( refs, config = list(), policy = c("lazy", "upgrade"), remote_types = NULL )
refs
Package names or references. See 'Package references' for the syntax.
config
Configuration options, a named list. See 'Configuration'.
policy
Solution policy. See 'The dependency solver'.
remote_types
Custom remote ref types, this is for advanced use, and experimental currently.
A new pkg_deps
object.
get_refs()
The package refs that were used to create the pkg_deps
object.
pkg_deps$get_refs()
A character vector of package refs that were used to create the
pkg_deps
object.
get_config()
Configuration options for the pkg_deps
object. See
'Configuration' for details.
pkg_deps$get_config()
See 'Configuration' for the configuration entries.
resolve()
Resolve the dependencies of the specified package references. This usually means downloading metadata from CRAN and Bioconductor, unless already cached, and also from GitHub if GitHub refs were included, either directly or indirectly. See 'Dependency resolution' for details.
pkg_deps$resolve()
The pkg_deps
object itself, invisibly.
async_resolve()
The same as resolve()
, but asynchronous.
This method is for advanced use.
pkg_deps$async_resolve()
A deferred value.
get_resolution()
Query the result of the dependency resolution. This method can be
called after resolve()
has completed.
pkg_deps$get_resolution()
A pkg_resolution_result object, which is also a data frame. See 'Dependency resolution' for its columns.
get_solve_policy()
Returns the current policy of the dependency solver. See 'The dependency solver' for details.
pkg_deps$get_solve_policy()
A character vector of length one.
set_solve_policy()
Set the current policy of the dependency solver. If the object already contains a solution and the new policy is different than the old policy, then the solution is deleted. See 'The dependency solver' for details.
pkg_deps$set_solve_policy(policy = c("lazy", "upgrade"))
policy
Policy to set.
solve()
Solve the package dependencies. Out of the resolved dependencies, it works out a set of packages, that can be installed together to create a functional installation. The set includes all directly specified packages, and all required (or suggested, depending on the configuration) packages as well. It includes every package at most once. See 'The dependency solver' for details.
solve()
calls resolve()
automatically, if it
hasn't been called yet.
pkg_deps$solve()
The pkg_deps
object itself, invisibly.
get_solution()
Returns the solution of the package dependencies.
pkg_deps$get_solution()
A pkg_solution_result object, which is a list. See pkg_solution_result for details.
stop_for_solution_error()
Error if the dependency solver failed to find a consistent set of packages that can be installed together.
pkg_deps$stop_for_solution_error()
draw()
Draw a tree of package dependencies. It returns a tree
object, see
cli::tree()
. Printing this object prints the dependency tree to the
screen.
pkg_deps$draw()
A tree
object from the cli package, see cli::tree()
.
format()
Format a pkg_deps
object, typically for printing.
pkg_deps$format(...)
...
Not used currently.
A character vector, each element should be a line in the printout.
print()
Prints a pkg_deps
object to the screen. The printout includes:
The package refs.
Whether the object has the resolved dependencies.
Whether the resolution had errors.
Whether the object has the solved dependencies.
Whether the solution had errors.
Advice on which methods to call next.
See the example below.
pkg_deps$print(...)
...
not used currently.
The pkg_deps
object itself, invisibly.
clone()
The objects of this class are cloneable with this method.
pkg_deps$clone(deep = FALSE)
deep
Whether to make a deep clone.
# Method initialize()
pd <- pkg_deps$new("r-lib/pkgdepends")
pd
# Method get_refs()
pd <- new_pkg_deps(c("pak", "jsonlite"))
pd$get_refs()
# Method get_config()
pd <- new_pkg_deps("pak")
pd$get_config()
# Method resolve()
pd <- new_pkg_deps("pak")
pd$resolve()
pd$get_resolution()
# Method get_resolution()
pd <- new_pkg_deps("r-lib/pkgdepends")
pd$resolve()
pd$get_resolution()
# Method get_solve_policy()
pdi <- new_pkg_deps("r-lib/pkgdepends")
pdi$get_solve_policy()
pdi$set_solve_policy("upgrade")
pdi$get_solve_policy()
# Method set_solve_policy()
pdi <- new_pkg_deps("r-lib/pkgdepends")
pdi$get_solve_policy()
pdi$set_solve_policy("upgrade")
pdi$get_solve_policy()
# Method solve()
pd <- new_pkg_deps("r-lib/pkgdepends")
pd$resolve()
pd$solve()
pd$get_solution()
# Method get_solution()
pd <- new_pkg_deps("pkgload")
pd$resolve()
pd$solve()
pd$get_solution()
# Method stop_for_solution_error()
# This is an error, because the packages conflict:
pd <- new_pkg_deps(
c("r-lib/pak", "cran::pak"),
config = list(library = tempfile())
)
pd$resolve()
pd$solve()
pd
# This fails:
# pd$stop_for_solution_error()
# Method draw()
pd <- new_pkg_deps("pkgload")
pd$solve()
pd$draw()
# Method print()
pd <- new_pkg_deps("r-lib/pkgdepends")
pd
pd$resolve()
pd
pd$solve()
pd
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.