Awesome
drat: Drat R Archive Template
drat
What cute people say when they are pissed off
"Oh Drat, i lost my wallet"
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
- Drat FAQ,
- Drat for Package Authors,
- Drat for Package Users
- Drat Step by Step
- Why Drat?
- Combining Drat and Travis
- Drat Lightning Talk at useR!2015
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):
- yutannihilation
- gschofl
- csgillespie
- shabbychef
- RcppCore
- arilamstein
- piccolbo
- ghrr
- cloudyr
- dmlc
- thospfuller
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)