We are glad to announce the publication of a new research paper entitledSource Code Archiving to the Rescue of ReproducibleDeployment for the ACM Conferenceon Reproducibility and Replicability.The paper presents work that has been done since we started connectingGuix with the Software Heritage (SWH)archivefive years ago:

The ability to verify research results and to experiment withmethodologies are core tenets of science. As research results areincreasingly the outcome of computational processes, software plays acentral role. GNU Guix is a software deployment tool that supportsreproducible software deployment, making it a foundation forcomputational research workflows. To achieve reproducibility, we mustfirst ensure the source code of software packages Guix deploys remainsavailable.

We describe our work connecting Guix with Software Heritage, theuniversal source code archive, making Guix the first free softwaredistribution and tool backed by a stable archive. Our contribution istwofold: we explain the rationale and present the design andimplementation we came up with; second, we report on the archivalcoverage for package source code with data collected over five years anddiscuss remaining challenges.

The ability to retrieve package source code is important for researcherswho need to be able toreplayscientific workflows, but it’s just as important for engineers anddevelopers alike, who may also have good reasons to redeploy or toaudit pastpackage sets.

Support for source code archiving and recovery in Guix has improved alot over the past five years, in particular with:

  • Support for recovering source code tarballs (tar.gz and similarfiles): this is made possible byDisarchive, written byTimothy Sample.

  • The ability to look up data by narhash in theSWH archive (“nar” is the normalized archive format used by Nixand Guix), thanks to fellow SWH hackers. This, in turn, allows Guixto look up any version control checkout by contenthash—Git, Subversion, Mercurial,you name it!

  • The monitoring of archival coverage with Timothy’s Preservation ofGuix reports has allowed usto identify discrepancies in Guix, Disarchive, and/or SWH and toincrease archival coverage.

94% of the packages in a January 2024 snapshot of Guix are known to havetheir source code archived!

Check out the paper to learn moreabout the machinery at play and the current status.