Skip to content
Prev 47812 / 63424 Next

[RFC] A case for freezing CRAN

On Wed, Mar 19, 2014 at 6:55 PM, Michael Weylandt
<michael.weylandt at gmail.com> wrote:
I think that separating development from released branches can give us
both reliability/reproducibility (stable branch) as well as new
features (unstable branch). The user gets to pick (and you can pick
both!). The same is true for r-base: when using a 'released' version
you get 'stable' base packages that are up to 12 months old. If you
want to have the latest stuff you download a nightly build of r-devel.
For regular users and reproducible research it is recommended to use
the stable branch. However if you are a developer (e.g. package
author) you might want to develop/test/check your work with the latest
r-devel.

I think that extending the R release cycle to CRAN would result both
in more stable released versions of R, as well as more freedom for
package authors to implement rigorous change in the unstable branch.
When writing a script that is part of a production pipeline, or sweave
paper that should be reproducible 10 years from now, or a book on
using R, you use stable version of R, which is guaranteed to behave
the same over time. However when developing packages that should be
compatible with the upcoming release of R, you use r-devel which has
the latest versions of other CRAN and base packages.
Almost nobody does this because it is cumbersome and impractical. We
can do so much better than this. Note that in order to install old
packages you also need to investigate which versions of dependencies
of those packages were used. On win/osx, users need to manually build
those packages which can be a pain. All in all it makes reproducible
research difficult and expensive and error prone. At the end of the
day most published results obtain with R just won't be reproducible.

Also I believe that keeping it simple is essential for solutions to be
practical. If every script has to be run inside an environment with
custom libraries, it takes away much of its power. Running a bash or
python script in Linux is so easy and reliable that entire
distributions are based on it. I don't understand why we make our
lives so difficult in R.

In my estimation, a system where stable versions of R pull packages
from a stable branch of CRAN will naturally resolve the majority of
the reproducibility and reliability problems with R. And in contrast
to what some people here are suggesting it does not introduce any
limitations. If you want to get the latest stuff, you either grab a
copy of r-devel, or just enable the testing branch and off you go.
Debian 'testing' works in a similar way, see
http://www.debian.org/devel/testing.

Thread (63 messages)

Jeroen Ooms A case for freezing CRAN Mar 18 Joshua Ulrich A case for freezing CRAN Mar 19 Duncan Murdoch A case for freezing CRAN Mar 19 Kasper Daniel Hansen A case for freezing CRAN Mar 19 Dirk Eddelbuettel A case for freezing CRAN Mar 19 Hadley Wickham A case for freezing CRAN Mar 19 Geoff Jentry A case for freezing CRAN Mar 19 Jeroen Ooms A case for freezing CRAN Mar 19 Spencer Graves A case for freezing CRAN Mar 19 Joshua Ulrich A case for freezing CRAN Mar 19 Carl Boettiger A case for freezing CRAN Mar 19 Jeroen Ooms A case for freezing CRAN Mar 19 Hervé Pagès A case for freezing CRAN Mar 19 Jeroen Ooms A case for freezing CRAN Mar 19 Joshua Ulrich A case for freezing CRAN Mar 19 Dan Tenenbaum A case for freezing CRAN Mar 19 Jeroen Ooms A case for freezing CRAN Mar 19 Joshua Ulrich A case for freezing CRAN Mar 19 Hervé Pagès A case for freezing CRAN Mar 19 Romain Francois A case for freezing CRAN Mar 19 Gavin Simpson A case for freezing CRAN Mar 19 Gavin Simpson A case for freezing CRAN Mar 19 R. Michael Weylandt A case for freezing CRAN Mar 19 Gavin Simpson A case for freezing CRAN Mar 19 R. Michael Weylandt A case for freezing CRAN Mar 19 Jeroen Ooms A case for freezing CRAN Mar 19 R. Michael Weylandt A case for freezing CRAN Mar 19 Karl Millar A case for freezing CRAN Mar 19 David Winsemius A case for freezing CRAN Mar 19 Dan Tenenbaum A case for freezing CRAN Mar 19 Rainer M Krug A case for freezing CRAN Mar 20 Rainer M Krug A case for freezing CRAN Mar 20 Duncan Murdoch A case for freezing CRAN Mar 20 Roger Bivand A case for freezing CRAN Mar 20 S Ellison A case for freezing CRAN Mar 20 Jari Oksanen A case for freezing CRAN Mar 20 Hervé Pagès A case for freezing CRAN Mar 20 Ted A case for freezing CRAN Mar 20 Jeroen Ooms A case for freezing CRAN Mar 20 Tim Triche, Jr. A case for freezing CRAN Mar 20 Ted A case for freezing CRAN Mar 20 Ted A case for freezing CRAN Mar 20 Tim Triche, Jr. A case for freezing CRAN Mar 20 Ted A case for freezing CRAN Mar 20 Hervé Pagès A case for freezing CRAN Mar 20 Uwe Ligges A case for freezing CRAN Mar 20 Hervé Pagès A case for freezing CRAN Mar 20 Gábor Csárdi A case for freezing CRAN Mar 20 William Dunlap A case for freezing CRAN Mar 20 Gábor Csárdi A case for freezing CRAN Mar 20 Tim Triche, Jr. A case for freezing CRAN Mar 20 Tim Triche, Jr. A case for freezing CRAN Mar 20 Dan Tenenbaum A case for freezing CRAN Mar 20 Jari Oksanen A case for freezing CRAN Mar 21 Rainer M Krug A case for freezing CRAN Mar 21 Rainer M Krug A case for freezing CRAN Mar 21 Philippe GROSJEAN A case for freezing CRAN Mar 21 Jari Oksanen A case for freezing CRAN Mar 21 Rainer M Krug A case for freezing CRAN Mar 21 Philippe GROSJEAN A case for freezing CRAN Mar 21 Tom Short A case for freezing CRAN Mar 21 Martin Maechler A case for freezing CRAN Mar 24 Gábor Csárdi A case for freezing CRAN Mar 24