A friendly package manager for R
:fire: A friendly package manager for R
Inspired by Yarn, Bundler, and Pipenv
Install Jetpack
install.packages("jetpack")
Jetpack uses the
DESCRIPTIONfile 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
DESCRIPTIONfile directly, but Jetpack provides functions to help with this.
Open a project and run:
jetpack::init()
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.
Be sure to prefix commands with
jetpack::. Jetpack isn’t installed in your virtual environment, solibrary(jetpack)won’t work.
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 a package
jetpack::update("randomForest")
For local packages, run this anytime the package code is changed
Update multiple packages
jetpack::update(c("randomForest", "DBI"))
Update all packages
jetpack::update()
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 that all dependencies are installed
jetpack::check()
Show outdated packages
jetpack::outdated()
Be sure to commit the files Jetpack generates to source control.
For Bioconductor, add the Bioconductor repos to the
Repos:section in
packrat.lock:
Repos: CRAN=https://cloud.r-project.org/, BioCsoft=https://bioconductor.org/packages/3.10/bioc, BioCann=https://bioconductor.org/packages/3.10/data/annotation, BioCexp=https://bioconductor.org/packages/3.10/data/experiment, BioCworkflows=https://bioconductor.org/packages/3.10/workflows
Install Jetpack on the server and run:
jetpack::install(deployment=TRUE)
Create
init.Rwith:
install.packages("jetpack") jetpack::install(deployment=TRUE)
And add it into your
Dockerfile:
FROM r-baseRUN apt-get update && apt-get install -qq -y --no-install-recommends
libxml2-dev libssl-dev libcurl4-openssl-dev libssh2-1-devRUN mkdir -p /app WORKDIR /app
COPY init.R DESCRIPTION packrat.lock ./ RUN Rscript init.R
COPY . .
CMD Rscript app.R
For the R buildpack, create
init.Rwith:
install.packages("jetpack") jetpack::install(deployment=TRUE)
Alternatively, you can use Docker Deploys on Heroku.
Jetpack can also be run from the command line. To install the CLI, run:
jetpack::cli()
On Windows, add
C:\ProgramData\jetpack\binto 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 jetpack outdated
You can also use it to manage global packages
jetpack global add randomForest jetpack global update DBI jetpack global update jetpack global remove plyr jetpack global list jetpack global outdated
You can even use it to update itself
jetpack global update jetpack
For the full list of commands, use:
jetpack help
To upgrade, rerun the installation instructions.
Jetpack 0.4.0 greatly reduces the number of dependencies. As part of this, the
infoand
searchcommands have been removed.
Jetpack 0.3.0 greatly reduces the number of files in your projects. To upgrade a project:
packrat/packrat.lockto
packrat.lock
packratdirectory
.Rbuildignoreand
.gitignoreif they only contain Packrat references
.Rprofilewith:
if (requireNamespace("jetpack", quietly=TRUE)) { jetpack::load() } else { message("Install Jetpack to use a virtual environment for this project") }
jetpack::install()
View the changelog
Everyone is encouraged to help improve this project. Here are a few ways you can help:
To get started with development and testing:
git clone https://github.com/ankane/jetpack.git cd jetpack
In R, do:
install.packages("devtools") devtools::install_deps(dependencies=TRUE) devtools::test()