Discover Guix and Org mode and learn how to build a reproducible research study thanks to this association of tools in one afternoon.
Reproducibility of a research study in computer science has always been a complex matter. On one hand, building exactly the same software environment on multiple computing platforms may be long, tedious and sometimes virtually impossible to be done manually. On the other hand, while the experimental method is usually explained in research studies, the instructions required to reproduce the latter from A to Z are often missing or incomplete.
In this edition of Tutotechno, we will introduce the GNU Guix transactional package manager [1] together with the principles of literate programming [2] through Org mode [3, 4] and learn how we can take advantage of the association of these tools to build a reproducible research study. We will use the Guix package manager to ensure the reproducibility of the software environment and Org mode to ensure an exhaustive, clear and accessible description of the experiments, the source code and procedures involved in the construction of the experimental software environment, the execution of benchmarks as well as the gathering and the post-processing of the results.
At the end of the session, participants should have built a standalone Git repository containing a research study entirely reproducible thanks to Guix and the literate description of the experimental environment, source code and methods in Org mode. Finally, participants will learn how to make use of the Software Heritage project [5] to guarantee the availability of their work even in case of migration of their Git repository or shutdown of the hosting platform, e.g. Inria Forge.
You will need a working installation of the GNU Guix package manager on your computer. The latter can be installed on top of your current Linux distribution by following the steps on https://guix.gnu.org/manual/en/html_node/Binary-Installation.html and coexist with your primary package manager.
Note that Guix cannot be installed on macOS.
On Windows, it is theoretically possible using the Linux subsystem integrated in Windows starting from version 10. However, we have never tested this configuration and may not be able to provide help in case of an issue.
Références :
[1] GNU Guix software distribution and transactional package manager (https://guix.gnu.org)
[2] Literate Programming, Donald E. Knuth, 1984 (https://doi.org/10.1093/comjnl/27.2.97)
[3] The Org Mode 9.1 Reference Manual, Dominik Carsten, 2018
[4] GNU Emacs: An extensible, customizable, free/libre text editor ? and more (https://www.gnu.org/software/emacs/)
[5] Software Heritage (https://www.softwareheritage.org/)
Date | June, 14 2022 |
Place | Room A008, Building A, INRIA Nancy |
Author | marek.felsoci@inria.fr |