Skip to content

The MaRDI Packaging System

As the capabilities of computer devices have grown, so have their use as tools in scientific research. It is now possible to do wild and wonderful things by relying on computers computers to generate useful results in the support of both research goals, as well as complex analysis required to reach these goals. This is usually done by the use of bespoke research software developed for the specific use case, or repurposing software already tailor made for research, but in new and innovative ways. However, this also means that computer programs play a more central role in the defense of a thesis. As good science require a peer review of the results, the computer programs so central to new computational results must also be readily available to the reviewers. But quite often, thought is not spent on ensuring proper reproducibility of software research.

A naive approach to making computer software available is to only make the source code available to reviewers. However, this approach poses problems with regards to ease of use, and also with regards to reproducibility. It may not be the easiest thing to get running in the first place. This may just be due to the convoluted way the prerequisites are meant to be installed. Or it may require obscure versions of libraries, which may conflict with existing libraries on a referee’s host system. This can result in unnecessary frustrations, or complete failures, in trying to reproduce software results.

MaRDI, the mathematical consortium of the NFDI, has developed the MaRDI Packaging System (MaPS) [1] to solve this specific problem. This project is heavily inspired by the work done in this direction, for similar motivations in different fields, by Flatpak for generic Linux software, and Valve for PC video games. We co-opt the same basic technology used to run (reproduce) decode old video games on modern systems, and reap similar rewards

MaPS makes packaging, distributing, installing, and running software across computers as easy as possible. This guarantees reproducibility of results which heavily rely on software without the additional burden of trying to setup software while taking special care to retain reproducibility. MaPS has been extensively tested and used across science domains, not just in Mathematics. MaPS has been used in the domain of Biology, for packaging and providing the ViBRANT package for Virus Identification by Iterative Annotation. This is a 6 year old project in python, with dependencies that reached end of life in 2023. With MaPS, the project can still be used on modern computers with little to no difficulty.

For the user, MaPS sets up a software container, which includes the entire software stack required for the project. The boundary of the container enforces a separation between the host computer and the packaged software, and therefore avoids any potential conflicts between software versions installed on a user’s computer v/s the software versions included in the runtime. A two way window into the runtime is available, which can be used to provide variable input, as well as extract output from the runtime. In addition, the changes made in a runtime persist by default, but a runtime can still be instantly reset to the state it was published in. This allows a researcher to become familiar with the packaged software using traditional interactive interfaces without having to care about creating an experimental environment.

For authors, MaPS does not assume familiarity with scripts, manifest files, or complicated declaration systems to define the contents of a runtime. MaPS aims to be maximally friendly by providing an interactive session into the runtime being constructed, so to allow for bespoke and handcrafted environments: to fit exactly the, need and cater to the expertise of the researcher. Using MaPS requires minimal extra training, reducing the data management overhead for scientists, allowing them to spend more time on research, and less time on perceived administrative tasks. Once the researcher is happy with the crafted runtime, it can be published on the official MaPS repository. Optionally, a private repository can be setup for uses like an internal repository for a lab, or a private repository to serve an event, like a conference repository for referees.

MaPS tries to make maximally efficient use of computer resources. All data is transferred in a compressed form. Data deduplication is performed on a file level among and across runtimes. So, holding 6 different runtimes with only slight differences does not use 6 times the storage.

There are several methods for sharing a program for running on another machine ranging from sharing just the source code, to docker containers (via a dockerfile), or a full fat Virtual Machine (VM) disk image. We think MaPS is a superior option to these alternate methods. A MaPS runtime is more complete than just sharing source code, more light weight than sharing a VM, and more streamlined than running docker.

The technology enabling MaPS deeply depends on the features provided by the Linux kernel (isolation via namespaces). Technically, this means that the system and its benefits are limited to the Linux kernel. As a result, the program being packaged into a runtime MUST work on Linux! Packaged runtimes provided by MaPS may still be used on systems powered by other kernels, via virtual machines running Linux, or via other tightly integrated compatibility layers. This is the same strategy used by Docker on non Linux host OSs. The recommended way of using MaPS on Windows is via WSL, and on MacOS via lima. More information is available on the MaPS wiki [2].

MaPS has been extensively tested and used across science domains. In 2025, in collaboration with LMFDB, Computation, and Number Theory (LuCANT) conference, MaPS saw use in archiving software related to conference submissions, and reproduced on reviewer computers. A custom private repository was established for the duration of the conference, and 4 runtimes were created on the default Debian base image, and 4 runtimes were created using a minimal Arch Linux base image. These images were successfully used in reproducing results on an Ubuntu host machine.

MaPS has also been used in the domain of Biology, for packaging and providing the ViBRANT package for Virus Identification by Iterative Annotation. The ViBRANT project was first released in 2020, and last updated in March 2021. The project depends on scikit-learn version 0.21.3 which supports python 3.5 to python 3.7. Python 3.7 was became unsupported in June 2023. However, MaPS makes it possible to still use this software, 5 years after the End-Of-Life of its required dependencies, on modern operating systems.

We are currently providing consultation to researchers working at the intersection of Physics, Chemistry, and Machine Learning, to provide a reproducible package for all software associated with their paper submission. We are also in discussions with NFDIxCS to integrate MaPS as a reproducibility engine into their RDM container concept.

In conclusion, MaPS is a domain agnostic reproducible container toolkit which makes RDM goals with respect to software trivial to achieve, while trying to be as efficient with resources as possible. With no problems found in real world and synthetic testing, and multiple working proof of concepts, some of which successfully run 5 year old programs on modern computers without trouble, MaPS is the final word in long term software archiving for reproducibility.

[1]Kaushik A. Predefined Software Environment Runtimes As A Measure For Reproducibility.
[2]MaRDI Packaging System.
AAR
Aaruni Kaushik
Rheinland-Pfälzische Technische Universität (RPTU) Kaiserslautern-Landau, Germany
CLA
Claus Fieker
Rheinland-Pfälzische Technische Universität (RPTU) Kaiserslautern-Landau, Germany