Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign up| --- | |
| title: "Devtools dependencies" | |
| author: "Jim Hester, Hadley Wickham" | |
| date: "`r Sys.Date()`" | |
| output: | |
| rmarkdown::html_vignette: | |
| keep_md: true | |
| vignette: > | |
| %\VignetteIndexEntry{Devtools dependencies} | |
| %\VignetteEngine{knitr::rmarkdown} | |
| %\VignetteEncoding{UTF-8} | |
| --- | |
| # Package remotes | |
| Devtools version 1.9 supports package dependency installation for packages not | |
| yet in a standard package repository such as [CRAN](https://cran.r-project.org) | |
| or [Bioconductor](http://bioconductor.org). | |
| 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) | |
| Version: 0.0.0.9000 | |
| Authors@R: | |
| person(given = "First", | |
| family = "Last", | |
| role = c("aut", "cre"), | |
| email = "first.last@example.com") | |
| Description: What the package does (one paragraph). | |
| License: MIT + file LICENSE | |
| Imports: | |
| rlang | |
| Remotes: | |
| r-lib/rlang | |
| ``` | |
| ### GitHub | |
| Because GitHub is the most commonly used unofficial package distribution in R, it's the default: | |
| ```yaml | |
| 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. | |
| ```yaml | |
| Remotes: hadley/httr@v0.4, | |
| klutometis/roxygen#142, | |
| hadley/testthat@c67018fa4970 | |
| ``` | |
| A type of `github` can be specified, but is not required | |
| ```yaml | |
| 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. | |
| ```yaml | |
| # GitLab | |
| Remotes: gitlab::jimhester/covr | |
| # Git | |
| Remotes: git::git@bitbucket.org:djnavarro/lsr.git | |
| # Bitbucket | |
| Remotes: bitbucket::sulab/mygene.r@default, djnavarro/lsr | |
| # Bioconductor | |
| Remotes: bioc::3.3/SummarizedExperiment#117513, bioc::release/Biobase | |
| # SVN | |
| Remotes: svn::https://github.com/hadley/stringr | |
| # URL | |
| Remotes: url::https://github.com/hadley/stringr/archive/master.zip | |
| # 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. |