A Friendly Package Manager

Manage project dependencies from your DESCRIPTION file. Create a reproducible virtual environment with minimal additional files in your project. Provides tools to add, remove, and update dependencies as well as install existing dependencies with a single function.


ūüĒ• A friendly package manager for R

  • Designed for reproducibility (thanks to Packrat, no more global installs!)
  • Lightweight (adds just three files to your project)
  • Secure by default
  • Works from both R and the command line

Screenshot

Inspired by Yarn, Bundler, and Pipenv

Build Status CRAN status

Installation

Install Jetpack

install.packages("jetpack")

How It Works

Jetpack creates a DESCRIPTION file to store your project dependencies. It stores the specific version of each package in packrat.lock. This makes it possible to have a reproducible environment. You can edit dependencies in the DESCRIPTION file directly, but Jetpack provides functions to help with this.

Getting Started

Open a project and run:

jetpack::init()

Commands

Install

Install packages for a project

jetpack::install()

This ensures all the right versions are installed locally. As dependencies change, collaborators should run this command to stay synced.

Add

Add a package

jetpack::add("randomForest")

Add multiple packages

jetpack::add(c("randomForest", "DBI"))

Add a specific version

jetpack::add("[email protected]")

Add from GitHub or another remote source

jetpack::add("plyr", remote="hadley/plyr")

Supports these remotes

Add from a specific tag, branch, or commit

jetpack::add("plyr",¬†remote="hadley/[email protected]")

Add from a local source

jetpack::add("plyr", remote="local::/path/to/plyr")

The local directory must have the same name as the package

Update

Update a package

jetpack::update("randomForest")

For local packages, run this anytime the package code is changed

Update multiple packages

jetpack::update(c("randomForest", "DBI"))

Remove

Remove a package

jetpack::remove("randomForest")

Remove multiple packages

jetpack::remove(c("randomForest", "DBI"))

Remove remotes as well

jetpack::remove("plyr", remote="hadley/plyr")

Check

Check that all dependencies are installed

jetpack::check()

Source Control

Be sure to commit the files Jetpack generates to source control.

Deployment

Server

Install Jetpack on the server and run:

jetpack::install(deployment=TRUE)

Docker

Create an init.R with:

install.packages("jetpack")
jetpack::install(deployment=TRUE)

And add it into your Dockerfile:

FROM r-base
 
RUN apt-get update && apt-get install -qq -y --no-install-recommends \
  libxml2-dev libssl-dev libcurl4-openssl-dev libssh2-1-dev
 
RUN mkdir -p /app
WORKDIR /app
 
COPY init.R DESCRIPTION packrat.lock ./
RUN Rscript init.R
 
COPY . .
 
CMD Rscript app.R

Heroku

There’s ongoing work to get Packrat working with the R buildpack.

In the meantime, you can use Docker Deploys on Heroku.

Command Line

Jetpack can also be run from the command line. To install the CLI, run:

jetpack::cli()

On Windows, add C:\ProgramData\jetpack\bin to your PATH. See instructions for how to do this.

All the Jetpack commands are now available

jetpack init
jetpack install
jetpack add randomForest
jetpack¬†add¬†[email protected]
jetpack add plyr --remote=hadley/plyr
jetpack update randomForest
jetpack remove DBI
jetpack check

You can also use it to manage global packages

jetpack global add randomForest
jetpack global update DBI
jetpack global remove plyr
jetpack global list

For the full list of commands, use:

jetpack help

Upgrading

To upgrade, rerun the installation instructions.

0.4.0

Jetpack 0.4.0 reduces the number of dependencies from 42 to 9. As part of this, the info and search commands have been removed.

0.3.0

Jetpack 0.3.0 greatly reduces the number of files in your projects. To upgrade a project:

  1. Move packrat/packrat.lock to packrat.lock
  2. Delete the packrat directory
  3. Delete .Rbuildignore and .gitignore if they only contain Packrat references
  4. Replace all Jetpack and Packrat code in your .Rprofile with:
if (requireNamespace("jetpack", quietly=TRUE)) {
  jetpack::load()
} else {
  message("Install Jetpack to use a virtual environment for this project")
}
  1. Open R and run:
jetpack::install()

History

View the changelog

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

News

0.4.0

  • Reduced the number of dependencies from 42 to 9
  • Added support for Bioconductor remotes

Breaking changes

  • Removed info and search commands to reduce dependencies

0.3.1

  • First CRAN release

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("jetpack")

0.4.1 by Andrew Kane, a month ago


https://github.com/ankane/jetpack


Report a bug at https://github.com/ankane/jetpack/issues


Browse source code at https://github.com/cran/jetpack


Authors: Andrew Kane [aut, cre]


Documentation:   PDF Manual  


MIT + file LICENSE license


Imports packrat, remotes, crayon, desc, docopt

Suggests testthat, withr


See at CRAN