-
Notifications
You must be signed in to change notification settings - Fork 155
/
Copy pathdependencies.Rmd
95 lines (69 loc) · 2.74 KB
/
dependencies.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
---
title: "Dependency resolution for R package development"
author: "Jim Hester, Hadley Wickham, Gábor Csárdi"
date: "`r Sys.Date()`"
output:
rmarkdown::html_vignette:
keep_md: true
vignette: >
%\VignetteIndexEntry{Dependency resolution for R package development}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
# Package remotes
Remotes, just like devtools, supports package dependency installation for packages not
yet in a standard package repository such as [CRAN](https://cran.r-project.org)
or [Bioconductor](https://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 remotes to download and install them from the specified location,
instead of 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.
### GitHub
Because GitHub is the most commonly used unofficial package distribution in R, it's the default:
```yaml
Remotes: r-lib/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 default branch is used.
```yaml
Remotes: r-lib/[email protected],
klutometis/roxygen#142,
r-lib/testthat@c67018fa4970
```
The special `@*release` syntax will install the latest release:
```yaml
Remotes: r-lib/testthat@*release
```
A type of 'github' can be specified, but is not required
```yaml
Remotes: github::tidyverse/ggplot2
```
### Other sources
All of the currently supported install sources are available, see the 'See
Also' section in `?install_github` for a complete list.
```yaml
# GitLab
Remotes: gitlab::jimhester/covr
# Git
Remotes: git::[email protected]:djnavarro/lsr.git,
git::https://github.com/igraph/rigraph.git@main
# 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/tidyverse/stringr
# URL
Remotes: url::https://github.com/tidyverse/stringr/archive/HEAD.zip
# Local
Remotes: local::/pkgs/testthat
```
### CRAN submission
When you submit your package to CRAN, all of its dependencies must also be available on CRAN. For this reason, `devtools::release()` will warn you if you try to release a package with a `Remotes` field.