Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time
title: "Devtools dependencies"
author: "Jim Hester, Hadley Wickham"
date: "`r Sys.Date()`"
keep_md: true
vignette: >
%\VignetteIndexEntry{Devtools dependencies}
# Package remotes
Devtools version 1.9 supports package dependency installation for packages not
yet in a standard package repository such as [CRAN](
or [Bioconductor](
You can mark any regular dependency defined in the `Depends`, `Imports`,
`Suggests` or `Enhances` fields as being installed from a remote location by
adding the remote location to `Remotes` in your `DESCRIPTION` file. This will
cause devtools to download and install them prior to installing your package (so they won't be installed from CRAN).
The remote dependencies specified in `Remotes` should be described in the following form.
Remotes: [type::]<Repository>, [type2::]<Repository2>
The `type` is an optional parameter. If the type is missing the default is
to install from GitHub. Additional remote dependencies should be separated by
commas, just like normal dependencies elsewhere in the `DESCRIPTION` file.
It is important to remember that you **must always declare the dependency in the usual way**, i.e. include it in `Depends`, `Imports`, `Suggests` or `Enhances`. The `Remotes` field only provides instructions on where to install the dependency from. In this example `DESCRIPTION` file, note how rlang appears in `Imports` and in `Remotes`:
Package: xyz
Title: What the Package Does (One Line, Title Case)
person(given = "First",
family = "Last",
role = c("aut", "cre"),
email = "")
Description: What the package does (one paragraph).
License: MIT + file LICENSE
### GitHub
Because GitHub is the most commonly used unofficial package distribution in R, it's the default:
Remotes: hadley/testthat
You can also specify a specific hash, tag, or pull request (using the same syntax as `install_github()` if you want a particular commit. Otherwise the latest commit on the master branch is used.
Remotes: hadley/httr@v0.4,
A type of `github` can be specified, but is not required
Remotes: github::hadley/ggplot2
### Other sources
All of the currently supported install sources are available, see the 'See
Also' section in `?install` for a complete list.
# GitLab
Remotes: gitlab::jimhester/covr
# Git
# Bitbucket
Remotes: bitbucket::sulab/mygene.r@default, djnavarro/lsr
# Bioconductor
Remotes: bioc::3.3/SummarizedExperiment#117513, bioc::release/Biobase
Remotes: svn::
Remotes: url::
# Local
Remotes: local::/pkgs/testthat
# Gitorious
Remotes: gitorious::r-mpc-package/r-mpc-package
### CRAN submission
When you submit your package to CRAN, all of its dependencies must also be available on CRAN. For this reason, `release()` will warn you if you try to release a package with a `Remotes` field.