Learn R Programming

drat: Drat R Archive Template

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)

Copy Link

Version

Install

install.packages('drat')

Monthly Downloads

3,241

Version

0.2.5

License

GPL (>= 2)

Issues

Pull Requests

Stars

Forks

Last Published

October 21st, 2024

Functions in drat (0.2.5)

initRepo

Intialize a git repo for drat
insertPackage

Insert a package source or binary file into a drat repository
drat-package

Easy-to-use package repository creation and access
identifyPackageType

Identifies the package type from a filename
archivePackages

Move older copies of packages to an archive
getPackageInfo

Get information from a binary package
pruneRepo

Prune repository from older copies of packages
addRepo

Add a (drat) repository to the current session