The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Depending on a development version

Sometimes you need your package to depend on a development version of another package that isn’t yet available on CRAN or Bioconductor. The Remotes field in DESCRIPTION lets you specify where to install such a dependency from. Remotes is not a standard DESCRIPTION field. It is not acceptable when releasing a package on CRAN. The Remotes field is understood by devtools, pak, and related tools, and is meant to be a temporary measure during development.

This vignette covers the mechanics of the Remotes field. For more context, see the Nonstandard dependencies section of the R Packages book.

The Remotes field

You can mark any dependency listed in Depends, Imports, Suggests, or Enhances as being installed from a non-standard source by adding a package reference to Remotes in your DESCRIPTION file.

The general form is:

Remotes: [type::]<source>, [type2::]<source2>

Multiple remote dependencies are separated by commas, just like regular dependencies elsewhere in DESCRIPTION.

It is important to remember that you must always declare the dependency in the usual way, i.e. in Depends, Imports, Suggests, or Enhances. The Remotes field only provides instructions about where to install the dependency from. For example, note how rlang appears in both Imports and Remotes:

Package: mypackage
Title: What the Package Does (One Line, Title Case)
Version: 0.0.0.9000
Imports:
    rlang (>= 1.1.0.9000)
Remotes:
    r-lib/rlang

You can use usethis::use_dev_package() to add or update a development dependency. It takes care of modifying both the Imports (or Suggests) and Remotes fields.

GitHub

GitHub is the most commonly used source for development packages, and the default when no type prefix is specified:

Remotes: r-lib/rlang

You can request a specific branch, tag, commit (SHA), or pull request:

Remotes: r-lib/rlang@some-branch,
  r-lib/rlang@v1.0.0,
  r-lib/rlang@84be6207,
  r-lib/rlang#142

A github:: prefix is accepted but not required:

Remotes: github::r-lib/rlang

Other sources

There are many other supported source types:

# GitLab
Remotes: gitlab::user/repo

# Git (any host)
Remotes: git::https://github.com/r-lib/rlang.git

# Bioconductor
Remotes: bioc::SummarizedExperiment

# URL (package archive)
Remotes: url::https://example.com/package-0.1.0.tar.gz

# Local
Remotes: local::/path/to/package

See the pak documentation on package sources for a complete list.

CRAN submission

When you submit your package to CRAN, all of its dependencies must also be available on CRAN or Bioconductor. You need to remove the Remotes field from your DESCRIPTION before submission. This means having a Remotes field is a temporary development state: once the dependency you need is released to CRAN or Bioconductor, you should update your minimum version requirement and drop the Remotes entry.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.