From josh.m.ulrich at gmail.com  Wed Mar 19 22:59:53 2014
From: josh.m.ulrich at gmail.com (Joshua Ulrich)
Date: Wed, 19 Mar 2014 16:59:53 -0500
Subject: [Rd] [RFC] A case for freezing CRAN
In-Reply-To: <CABFfbXtmFyoyaRSU6LyWrUzyXvvkSV14yD3vc0c2fzRcHbtNzQ@mail.gmail.com>
References: <CABFfbXt0PjHEw-4=VfeWeeosm_wOBH-fVsj85j9LMe81Lx0gWQ@mail.gmail.com>
	<53299314.6080608@gmail.com>
	<CABFfbXuTvefJ0Nmc25JJEwhmUQge+K1Fi=oaTwoO_jfK75mUZg@mail.gmail.com>
	<CAPPM_gRP4xKEE1bFiR8Aaeo1XOX0kpu4p=EyOm2z+6fkVkJaag@mail.gmail.com>
	<CABFfbXtmFyoyaRSU6LyWrUzyXvvkSV14yD3vc0c2fzRcHbtNzQ@mail.gmail.com>
Message-ID: <CAPPM_gR7pP7eq2Gg3nT4osSw1S69hvEW=yCx3-Q7T1V0fb19Vg@mail.gmail.com>

On Wed, Mar 19, 2014 at 4:28 PM, Jeroen Ooms <jeroen.ooms at stat.ucla.edu> wrote:
> On Wed, Mar 19, 2014 at 11:50 AM, Joshua Ulrich <josh.m.ulrich at gmail.com>
> wrote:
>>
>> The suggested solution is not described in the referenced article.  It
>> was not suggested that it be the operating system's responsibility to
>> distribute snapshots, nor was it suggested to create binary
>> repositories for specific operating systems, nor was it suggested to
>> freeze only a subset of CRAN packages.
>
>
> IMO this is an implementation detail. If we could all agree on a particular
> set of cran packages to be used with a certain release of R, then it doesn't
> matter how the 'snapshotting' gets implemented. It could be a separate
> repository, or a directory on cran with symbolic links, or a page somewhere
> with hyperlinks to the respective source packages. Or you can put all
> packages in a big zip file, or include it in your OS distribution. You can
> even distribute your entire repo on cdroms (debian style!) or do all of the
> above.
>
> The hard problem is not implementation. The hard part is that for
> reproducibility to work, we need community wide conventions on which
> versions of cran packages are used by a particular release of R. Local
> downstream solutions are impractical, because this results in
> scripts/packages that only work within your niche using this particular
> snapshot. I expect that requiring every script be executed in the context of
> dependencies from some particular third party repository will make
> reproducibility even less common. Therefore I am trying to make a case for a
> solution that would naturally improve reliability/reproducibility of R code
> without any effort by the end-user.
>
So implementation isn't a problem.  The problem is that you need a way
to force people not to be able to use different package versions than
what existed at the time of each R release.  I said this in my
previous email, but you removed and did not address it: "However, you
would need to find a way to actively _prevent_ people from installing
newer versions of packages with the stable R releases."  Frankly, I
would stop using CRAN if this policy were adopted.

I suggest you go build this yourself.  You have all the code available
on CRAN, and the dates at which each package was published.  If others
who care about reproducible research find what you've built useful,
you will create the very community you want.  And you won't have to
force one single person to change their workflow.

Best,
--
Joshua Ulrich  |  about.me/joshuaulrich
FOSS Trading  |  www.fosstrading.com



[Rd] [RFC] A case for freezing CRAN
Joshua Ulrich