Skip to content

Index

drat: Drat R Archive Template

CI License CRAN r-universe Dependencies Downloads Last Commit Documentation Fork

drat

What cute people say when they are pissed off

"Oh Drat, i lost my wallet"

Urban Dictionary

Nota Bene

Do not fork this repo as a quick start towards creating your drat, fork this repo instead. See below for more.

Background

The R package ecosystem is one of the cornerstones of the success seen by R. As of July 2020, over 16000 packages are on CRAN, with about one thousand more at BioConductor.

Support for multiple repositories is built deeply into R; mostly via the (default) package utils. The update.packages function (along with several others from the utils package) can be used with ease for these three default repositories as well as many others. But it seemed that support for simple creation and use of local repositories was missing.

Drat tries to help here and supports two principal modes:

  • GitHub by leveraging gh-pages
  • Other repos by using other storage where you can write and provide html access

Please see the next section about how to get started, the package documentation, the drat package page or the blog section on drat for more.

Getting Started

Do not fork this repo as a quick start towards creating your drat, fork this repo instead. See below for more.

See the vignettes

for the FAQ, two principal uses cases, basic motivation and an overview / introduction. The package documentation provides more details. The drat package page has a longer tutorial, and the blog section on drat has even more.

Package documentation, help pages, vignettes, and more is also available here.

Installation

The preferred approach is to install the released package from CRAN via the standard

install.packages("drat")

command.

Quick Start Towards Your Own Drat

drat comes with its own repo creation helper function initRepo, but an even shorter path may be to fork an existing repo. This has been done numerous times with this original repo. However, over time this repo accumulated code refinements along with more documentation making it a little unwieldy. So we set up dedicated repo just to facilitate drat forking. Clone it, and you will have a ready-to-use drat repository.

Status

The package has been available from CRAN since the Spring of 2015 and starting to get some use. Possible improvements, additions and next steps are listed in the TODO.md file.

A few drat repositories are starting to appear (besides this one). An incomplete list (looking at the direct forks as well as GitHub search):

The rOpenSci project uses drat to distribute their code and has written a nice blog post about it.

Travis Integration

Colin Gillespie integrated Travis CI with drat, see his dratTravis repository for more details, and the contributed vignette Combining Drat and Travis

GitHub Actions

Mike Mahoney uses drat with GitHub Actions in a 'push' setting, while Zhian Kamvar uses drat with GitHub Actions in a 'pull' setting.

Author

Dirk Eddelbuettel, with contributions by Felix Ernst, Neal Fultz, Colin Gillespie, Christoph Stepper, Thomas Leeper, Mark van der Loo, Jan Gorecki, and others.

License

GPL (>= 2)