Skip to content

reconhub/drat

Repository files navigation

Welcome to RECON's drat repository

Guide for users

Why is it useful?

As many other packages, RECON packages have essentially two main versions:

  • a stable version on CRAN, which is updated periodically

  • a devel version on github, which is stable too but incorporates the latest additions, features and bug fixes; by convention, the corresponding branches are tagged as @release for RECON packages

Usually, using the devel versions of RECON packages requires the user to manually install the right version of the package. Moreover, this will usually default to the @master branch, which may not be stable yet. drat is a reliable alternative to install the 'right' devel versions automatically when installing R packages.

How to use it

This drat repository can be used for installing devel versions of RECON packages automatically pointing to the relevant branch, typically @release. You will first need to install drat, which you can do within R using:

install.packages("drat")

Then to install development version of our packages, e.g. the nomad package here, you can type:

drat::addRepo("reconhub")
install.packages("nomad")

As nomad is not on CRAN, the fact that this command line works will indicate that the drat repository has been used whilst installing the package.

Using devel versions by default

If you want to make sure you are always using the latest features of RECON packages, you can register this drat repository by default when starting a new R session by adding the following lines to your .Rprofile file:

if (requireNamespace("drat", quietly = TRUE)) {
  drat::addRepo("reconhub")
  message("registered drat repo; devel versions of RECON packages will be used")
} else {
  message("drat is not installed; CRAN versions of RECON packages will be used")
}

Guide for contributors

Dependencies

We use drat.builder to build the drat infrastructure. This package can be installed using devtools by typing:

devtools::install_github("richfitz/drat.builder")

Adding a package

The prefered mechanism for contributions is via pull requests against the master branch of this repository.

To add a package to the drat archive, edit the file packages.txt, using the syntax [github user/organisation]/[package name]@[branch/commit], where the branch/commit indication is optional; if missing, the master branch will be used. For instance, the following packages.txt:

reconhub/incidence
annecori/EpiEstim@release

indicates that the @master branch of incidence hosted at github.com/reconhub will be installed, and that the @release branch of EpiEstim hosted at github.com/AnneCori will be installed, once the drat repository has been activated in the R sesssion.

Once you saved the new version of packages.txt, open a terminal and execute the script drat.builder by typing: ./drat.builder. Alternatively, open an R session and type:

library(methods)
drat.builder:::main()

Note that dependencies can be a headache when building the drat infrastructure. This can be particularly problematic when compiling vignettes. To disable the compilation of vignettes, you can append {"vignettes": false} to the package name (on the same line) in the packages.txt file; for instance:

## RECON packages

reconhub/outbreaks@release
reconhub/incidence@release
reconhub/epicontacts@release {"vignettes": false}
reconhub/epitrix@release

indicates that vignettes will not be compiled for epicontacts.

Current content

The current versions of packages used in the drat repository are:


## RECON packages

reconhub/outbreaks@release
reconhub/incidence@release
reconhub/epicontacts@release {"vignettes": false}
reconhub/epitrix@release
reconhub/earlyR@release
reconhub/projections@release
reconhub/dibbler@release
reconhub/vimes@release
reconhub/branchr@release
reconhub/nomad@release
reconhub/recontools@release
reconhub/shinyHelpers@release
reconhub/recon.ui@release
reconhub/incidence.ui@release
reconhub/epicontacts.ui@release


## Other packages

richfitz/dde {"vignettes": false}
mrc-ide/odin@development 
mrc-ide/odin.ui@prototype
vimc/orderly
annecori/EpiEstim@release

Releases

No releases published

Packages

No packages published