From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Pizzolli Subject: Re: Open Peer-Review Reproducible Publication with Org and GRASS Date: Mon, 06 Jun 2016 22:12:19 +0200 Message-ID: <87a8iyzzzzqdp8@me.localhost.invalid> References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:34490) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bA0tC-0000j5-56 for emacs-orgmode@gnu.org; Mon, 06 Jun 2016 16:12:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bA0t8-0008SB-Ay for emacs-orgmode@gnu.org; Mon, 06 Jun 2016 16:12:45 -0400 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:55973) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bA0t8-0008Ru-3r for emacs-orgmode@gnu.org; Mon, 06 Jun 2016 16:12:42 -0400 Received: from mfilter21-d.gandi.net (mfilter21-d.gandi.net [217.70.178.149]) by relay5-d.mail.gandi.net (Postfix) with ESMTP id 581DA41C090 for ; Mon, 6 Jun 2016 22:12:41 +0200 (CEST) Received: from relay5-d.mail.gandi.net ([IPv6:::ffff:217.70.183.197]) by mfilter21-d.gandi.net (mfilter21-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id GCuiFypRWZVP for ; Mon, 6 Jun 2016 22:12:21 +0200 (CEST) Received: from localhost.invalid (host36-211-static.0-79-b.business.telecomitalia.it [79.0.211.36]) (Authenticated sender: me@toel.it) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id A7AF141C092 for ; Mon, 6 Jun 2016 22:12:20 +0200 (CEST) In-Reply-To: (Brett Viren's message of "Fri, 03 Jun 2016 10:57:55 -0400") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Org Mode On Fri, Jun 03 2016, Brett Viren wrote: > Thanks for your example. > > A few ideas: > > - When you begin developing your paper, or sometime before submission, > make a break from your personal ~/.emacs.d/ environment and begin > processing the .org in an explicitly configured Emacs session. Submit > the needed, minimal, paper-specific Emacs setup as part of the > supplementary material. > > - Bundle the document building into a shell script which calls Emacs so > that you can assure that personal ~/.emacs.d/ is excluded and only the > paper-specific Emacs setup is used. It also helps users to rebuild > the paper, especially if they may not yet be Emacs aficionados. Hello, nice, but I suggest to start from scratch in a Virtual Machine. I am currently trying to develop a generic extensible template for this. Right now I did only custom tailored installation. When I have something interesting I will share it. In the meantime I will follow thread related to this topic closely! > - Instead of multi-GB VM image, provide a few kB Dockerfile which can be > used to build a Linux container with base OS and all required > applications needed to run the Babel code blocks. > > - The Dockerfile could go so far as to create a user account, get the > supplementary material from a repository or the publisher's web page, > unpack and run the shell script which calls Emacs to build the > document. If you go this far then in principle just this Dockerfile > is enough to reproduce the paper - but this will rely on some binaries > to remain available (Docker base OS images and OS packages). > > The reliance on long-term availability of the Docker base OS image and > binary packages is problematic for long term automated reproducibility. > However, even after those bits disappear from the 'net the Dockerfile > serves as a concise and explicit recipe for future humans to follow. I think that using debian only packages and the debian archive you will be able to reproduce the environment with few effort in the future, but I did not ever tried hard. I will suggest to use are Vagrant rather than Docker (because it is simpler to star, expressive enough, supports free software only provider (like libvirt)) and some shell scripts or ansible playbooks. I do not know the licence of the data, but I suggest to make at least one private mirror and use a variable to switch between the two. You may also want to verify sha256sum and/or gpg signatures on the data and on the code (that should be hosted using a source code management system). Best, Daniele