Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide reproducible software environment deployment with GNU Guix #1

Open
wants to merge 3 commits into
base: full-replication
Choose a base branch
from

Conversation

civodul
Copy link

@civodul civodul commented Jun 27, 2023

Hello!

As part of a Reproducible Research hackathon, we're looking into taking advantage of Guix to support reproducible deployment for submissions to ReScience C.

This pulls requests adds two files that let us deploy the software environment of this computational experiment in a reproducible fashion. I tested it on a local cluster at my research institute that runs Slurm 22.05; apart from Slurm itself, all the packages are provided by Guix. I also added a GitHub action to build the software environment upon push.

The figures I obtain all look similar to those in the published article, with one exception: Figure 2.A ("attractors"), as shown below.

firing_rates_attractors

I haven't tried to analyze the reason of this discrepancy (I'm not an expert in this field). Any ideas?

Cc: @rougier @khinsen

These two files are all it takes to set up a known-good test environment
with:

  guix time-machine -C channels.scm -- shell -m manifest.scm
@rougier
Copy link

rougier commented Jul 17, 2023

Not sure what could be the reason. Did you try to contact authors?

;;
;; to enter the environment built from this very Guix revision.

(list (channel

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

out of curiosity, shouldn't channel inferiors (that provide packages versions which are as close as possible to the minimal version constraints in requirements.txt) be defined?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is more of a philosophical than a technical question. It depends on the criteria that the authors applied to define those minimal version constraints, and that is hardly ever documented. In practice, judging from my own experience, version constraints are rarely useful for reproducibility. The fundamental assumption that "x.x or higher" yields the same results is simply wrong. Only strict version equality (same commit ID) has practical value.

@suhail-singh
Copy link

suhail-singh commented Oct 28, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants