From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: persistent reproducibility ? Date: Tue, 21 Mar 2017 17:19:33 +0100 Message-ID: <87shm6wqju.fsf@gnu.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:51535) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cqMVY-0005R7-RK for help-guix@gnu.org; Tue, 21 Mar 2017 12:19:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cqMVV-0005Jt-N4 for help-guix@gnu.org; Tue, 21 Mar 2017 12:19:40 -0400 In-Reply-To: (zimoun's message of "Tue, 21 Mar 2017 12:15:25 +0100") List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: zimoun Cc: help-guix@gnu.org Hello! zimoun skribis: > The typical research workflow is: > > - Alice proposes new method and/or algorithm, publishes a paper and > illustrates that by the software `foo'. Let the best case: Alice > provides a Guix "recipe", and all the material is stored in Github > (let say). This software `foo' depends on both `bar' and `baz', one > also in Github and the other one included in the Guix package tree. > > - It is easy for Bob to check out and experiment. Guix allows him to > straightforwardly build the bit identical `foo' (all dependencies > included). Nice!! Repeatability is there for free. > > - New features are added to `foo', `bar' and `baz'. All the codes > evolve, especially the research ones. > > - Now, Joe is implementing the Alice's method; science means > reproducible. And Joe would like to compare his implementation to the > Alice one provided by `foo'. However, how ? The `foo' "ecosystem" has > changed with the new features. Therefore, Joe has to navigate in the > Git tree of the Guix "recipe" of `foo', `bar', `baz' to be able to > produce the bit-identical `foo' used in the initial paper. I mean, it > is what I understand to do, and it does not seem reasonable. > > > My question is: does Guix provide any mechanism to build reproducible > software over the time ? To add to what Alex wrote, yes it=E2=80=99s possible, though there are UI g= aps that we=E2=80=99ll be filling. If you do a checkout of the Guix commit that Alice mentioned in the paper, you can build the exact same software as Alice. =E2=80=98guix pull=E2=80=99 allows you to specify the Guix commit y= ou=E2=80=99d like to use, but it=E2=80=99s not that convenient that it=E2=80=99s something we=E2= =80=99d like to improve. Ricardo and I wrote about the kind of workflows you describe in . I hope you=E2=80=99ll find it interest= ing! > Last, `foo' and `bar' are stored in two Github repositories. And they > should disappear. > ( I am not talking if it is good or not to use github, right now, it > just is used by many teams of researchers ) > > Could we used the Software Heritage initiative to maintain a kind of > persistency ? > https://www.softwareheritage.org Definitely! Software Heritage does not expose it yet, but when it does, we can add it as a fallback mirror in our (guix git-download) module. (I=E2=80=99ve discussed our use case with the Software Heritage folks a few times, so they=E2=80=99re aware of it. ;-)) I think the big picture is (where each arrow means =E2=80=9Cdepends on=E2= =80=9D): repro science -> repro software environments -> stable archive Things like ReScience can do the first step, Guix can do the second one, and Software Heritage does the third one. Thanks for sharing your use case! Ludo=E2=80=99.