[codeface] Re: Packrat - Reproducible package management for R

  • From: Wolfgang Mauerer <wm@xxxxxxxxxxxxxxxx>
  • To: hunsen@xxxxxxxxxxxxxxxxx
  • Date: Wed, 06 Aug 2014 01:30:58 +0200

Hi Claus,

Am 05/08/2014 12:48, schrieb Claus Hunsen:

I remember discussing the matter of package and dependency management
for codeface while Mitchell was here in Passau. The mailing list
analysis broke due to a new version of the tm package, as I remember
right, and we discussed that it would be great to deploy only working
packages to the users of codeface.
Coincidentally, I found a possible (partial) solution for this
management on the RStudio blog [1] just yesterday evening: Packrat from
http://rstudio.github.io/packrat/.

Packrat is a dependency management system for R.

R package dependencies can be frustrating. Have you ever had to use
trial-and-error to figure out what R packages you need to install to make
someone else’s code work–and then been left with those packages globally
installed forever, because now you’re not sure whether you need them?
Have you
ever updated a package to get code in one of your projects to work,
only to
find that the updated package makes code in another project stop working?

We built packrat to solve these problems. Use packrat to make your R
projects more:
# Isolated: Installing a new or updated package for one project won’t
break your other projects, and vice versa. That’s because packrat gives
each project its own private package library.
# Portable: Easily transport your projects from one computer to
another, even across different platforms. Packrat makes it easy to
install the packages your project depends on.
# Reproducible: Packrat records the exact package versions you depend
on, and ensures those exact versions are the ones that get installed
wherever you go.

Just to sketch my idea:
The maintainers of codeface provide a Packrat dependency configuration
though the GitHub repository that is automatically used by all users of
codeface. This way, everybody uses a working package installation of R
in order to run codeface.
If and when package updates are tested by a maintainer, the
configuration can be updated and pushed to the repository, so that any
user is able to update safely and in a managed way.

I don't really know if this fully works out with Packrat due to its
limitations [2], but it's certainly worth a shot. Can anybody who is
more familiar to codeface and R have a look on this, if Packrat is
useful for the project?

thanks for the link -- I was not aware of packrat until now, but
it seems to provide some means for tackling the installation complexity
of codeface. After a first look, packrat seems suitable for us (even
for setting up vagrant installations; we do also need to track
dependencies there), but I need to try it in practise to see how well
the non-R dependencies (i.e., dependencies on development packages of
C-level libraries that an R package depends on) are handled. This is one
of the main sources of trouble when it comes to installing
codeface on a new distribution currently -- once all low-level
dependencies are satisfied, it's "just" a matter of following the
howto...

Thanks & best regards, Wolfgang

Thanks in advance and kind regards,
Claus


[1] http://blog.rstudio.org/2014/07/22/announcing-packrat-v0-4/
[2] http://rstudio.github.io/packrat/limitations.html


Other related posts: