orderly_pull_dependencies {orderly} | R Documentation |
Download dependent reports
Description
Download dependent reports from an orderly remote. This can only
be used if the orderly_config.yml
lists a remote. This
allows for a centralised workflow where a central orderly store
exists and holds the canonical copies of reports, from which
versions can be downloaded into local stores.
Usage
orderly_pull_dependencies(
name = NULL,
root = NULL,
locate = TRUE,
remote = NULL,
parameters = NULL,
recursive = TRUE
)
orderly_pull_archive(
name,
id = "latest",
root = NULL,
locate = TRUE,
remote = NULL,
parameters = NULL,
recursive = TRUE
)
orderly_push_archive(
name,
id = "latest",
root = NULL,
locate = TRUE,
remote = NULL
)
Arguments
name |
Name of the report to download dependencies for.
Alternatively, the default of |
root |
The path to an orderly root directory, or |
locate |
Logical, indicating if the configuration should be
searched for. If |
remote |
Description of the location. Typically this is a
character string indicating a remote specified in the
|
parameters |
Parameters to pass through when doing dependency
resolution. If you are using a query for |
recursive |
Logical, indicating if all dependencies of a
report should also be pulled. Setting this to |
id |
The identifier (for |
Details
The orderly_pull_archive
function pulls report directly
(without it being a dependent report).
After setting your username up you can run
orderly_pull_dependencies("reportname")
to pull the
dependencies of "reportname"
down so that
"reportname"
can be run, or you can run
orderly_pull_archive("reportname")
to pull a copy of
"reportname"
that has been run on the remote server.
Pulling an archive report from a remote also pulls its
dependencies (recursively), and adds all of these to the local
database. This may require migrating old orderly archives
(orderly_migrate()
). Note that this migration will
likely fail for remote orderly versions older than 0.6.8 because
the migration needs to read data files on disk that are not
included in the downloaded archive in order to collect all the
information required for the database. In this case, ask the
administrator of the remote orderly archive to migrate their
archive, and then re-pull.
Pushing an archive is possible only if the remote supports it.
Currently this is supported by orderly_remote_path()
remotes, though not by orderlyweb remotes. There is no control
over what will accept a push at this point, nor any check
that what you've pushed is "good" except that it exists in your
archive. As with pulling an archive, pushes are recursive with
respect to dependencies. The configuration interface here will
likely change a little over time.
Value
No return value, these functions are called only for their side effects
See Also
orderly_remote_path()
, which implements the
remote interface for orderly repositories at a local path. See
also OrderlyWeb for a
system for hosting orderly repositories over an HTTP API.
vignette("remote", package = "orderly")
describes the
remote system in more detail.
Examples
# Suppose we have a "remote" orderly repository at some path.
# This might be read-only for you in practice and available via a
# network filesystem or a dropbox folder synced to your computer.
# We'll populate this with a pair of reports:
path_remote <- orderly::orderly_example("demo")
id <- orderly::orderly_run("other", list(nmin = 0),
root = path_remote, echo = FALSE)
orderly::orderly_commit(id, root = path_remote)
id <- orderly::orderly_run("use_dependency",
root = path_remote, echo = FALSE)
orderly::orderly_commit(id, root = path_remote)
# We'll create a an object to interact with this remote using
# orderly_remote_path.
remote <- orderly::orderly_remote_path(path_remote)
# We can use this object directly
remote$list_reports()
remote$list_versions("other")
# More typically one will interact with the functions
# orderly_pull_archive and orderly_pull_dependencies.
# Now, suppose that you have your "local" copy of this; it shares
# the same source (ordinarily these would both be under version
# control with git):
path_local <- orderly::orderly_example("demo")
# If we wanted to run the report "use_dependency" we need to have
# a copy of the report "other", on which it depends:
try(orderly::orderly_run("use_dependency", root = path_local))
# We can "pull" dependencies of a report before running
orderly::orderly_pull_dependencies("use_dependency", remote = remote,
root = path_local)
# Now we can run the report because we have a local copy of the
# dependency:
orderly::orderly_run("use_dependency", root = path_local)
# We can also directly pull previously run reports:
orderly::orderly_pull_archive("use_dependency", id, remote = remote,
root = path_local)
orderly::orderly_list_archive(root = path_local)