Detailed program > Thursday 9th November AM

Tutorials session 1: good practices for reproducibility

--------------------------------------------------------------------------------------------------------------------------------------

9h00 - 10h00 Benoît Chauvet (Software Heritage, France)Software Heritage:

Archive your source code for a consistent and durable referencing

Software Heritage, the world largest source code archive, is designed to collect, preserve and
share source code for the long term.
After an overview of the Software Heritage mission and infrastructure, we'll discover how Software
Heritage created a unique and powerful system of source code referencing, using the SWHID standard.
Then a demo/tutorial will show you how to archive and reference your own source code using Software
Heritage tools and infrastructure.

--------------------------------------------------------------------------------------------------------------------

10h15 - 12h45 Tutorials sessions:

Parallel session 1

Alizia Tarayoun (ISTerre, France):

How to get started with Gitlab, an essential tool for research reproducibility

This tutorial, intended for a novice audience, aims you to get started with the gitlab forge and a versioning system (git). We will see what is a forge and why it is today an essential tool for research reproducibility. At the end of this tutorial you will know how to use the main tools offered by the forge as well as the basic git commands to manage one or several project(s). Small demonstrations will be carried out from a simple one to illustrate the git commands to a more advanced example working with several branches on a code development project.

Pierre-Antoine Bouttier (GRICAD, France):

How to easily work with and publish jupyter notebooks

Jupyter notebooks are excellent pedagogical and methodological tools for explaining concepts and reasoning involving the processing of digital data, making it possible to include formatted text, multimedia elements and software code in a single interface.
However, setting up a notebook execution environment can sometimes be tedious and time-consuming. In this tutorial, we'll look at how notebooks can be put to good use and how a GitLab project combined with technologies such as JupyterLite or BinderHub can greatly simplify the provision of Jupyter notebooks.
 
 
Parallel session 2

Franck Pérignon (LJK, France):

Advanced Gitlab - How to setup continuous integration in your Gitlab projects, another step towards software reproducibility

In software engineering, continuous integration (CI) is a practice which consists in  systematically checking the impact of any source code modification on operation, performance, etc. via an automatic execution chain.
Combined with Docker or equivalent tools, Gitlab offers very practical and powerful procedures and tools to implement continuous integration in your projects. In this tutorial, we will describe the CI setup in a software project and show how it someway helps to ensure software reproducibility.

Marek Felsoci (INRIA, France):

How to use Org mode and Guix to build a reproducible experimental study

In computer science in general and in HPC in particular, reproducibility of a
research study has always been a complex matter. On the one hand, rebuilding
exactly the same software environment on various computing platforms and over
extended periods of time 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 should also be provided in a comprehensive manner.

In this tutorial, following a brief presentation of the context and motivations,
we will introduce the principles of literate programming with Org mode and learn
how we can take advantage of it in the association with Guix to build a
reproducible experimental study. Assuming the knowledge of some basics of Guix
(searching for and installing packages, spawning simple environments with the
'guix shell' command), we will use it during the hands-on session to manage the
software environment of the study thanks to the 'guix time-machine' command and
a more advanced usage of the 'guix shell' command including manifests and
package transformations. Then, we will rely on the literate programming paradigm
and use Org mode to not only write the study itself, but also to describe all
the elements and instructions allowing for reproducing it. This includes the
experiments, source code and procedures involved in the construction of
experimental software environments, execution of benchmarks, gathering and
post-processing of results and production of the final publication(s).

For the hands-on session, the participants will need to bring a personal
computer on which they have installed GNU Guix 1.4.0 beforehand (see
instructions at https://guix.gnu.org/manual/en/html_node/Binary-Installation.html).

To store the software environment and the experimental study, the participants should have
around 20 GiB of free space on the '/' (root) partition.

--------------------------------------------------------------------------------------------------------------------

Online user: 3 Privacy
Loading...