HPC & reproducible research in Guix 1.1.0

Ludovic Courtès — April 16, 2020

Version 1.1.0 of Guix was announced yesterday. As the announcement points out, some 200 people contributed more than 14,000 commits since the previous release. This post focuses on important changes for HPC users, admins, and scientists made since version 1.0.1 was released in May 2019.

Reproducible science workflows

Here are some of the key improvements for the use of Guix as a tool for reproducible science:

Container provisioning

guix pack, the declarative and reproducible container provisioning tool, has received noteworthy improvements:

  • When creating Docker or Singularity images, guix pack now record the environment variables needed for the execution of the applications added to the container.
  • Additionally, guix pack has a new --entry-point command-line option to specify the name of the executable to run upon docker run or singularity run.
  • Docker images produced by guix pack now include an empty /tmp directory. Images also have a meaningful “repository name” now (the name shown when running docker images).
  • Images produced by guix pack -f squashfs (for Singularity) are now reproducible bit-for-bit. This makes it possible for anyone to independently verify the authenticity of such an image, and is generally a prerequisite for better security and quality assurance.
  • A bug was fixed that prevented guix pack -f squashfs from running on CentOS 7.

Packages

Here are highlights among the 3,514 packages added and 3,368 packages upgraded since the previous release:

Do not miss the release notes for other goodies. Enjoy the new release!

Unless otherwise stated, blog posts on this site are copyrighted by their respective authors and published under the terms of the CC-BY-SA 4.0 license and those of the GNU Free Documentation License (version 1.3 or later, with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts).

  • MDC
  • Inria
  • UBC
  • UTHSC