Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: build
on: [ push ]
jobs:
build:
name: Run the pipeline
runs-on: ubuntu-22.04
steps:
- name: Guix cache
uses: actions/cache@v2
with:
path: ~/.cache/guix
# use a key that (almost) never matches
key: guix-cache-${{ github.sha }}
restore-keys: |
guix-cache-
- name: Install Guix
uses: PromyLOPh/guix-install-action@v1
- name: Checkout
uses: actions/checkout@v2
- name: Instantiate specific Guix revision
run: guix time-machine -C sources/channels.scm -- describe
- name: Check
run: guix time-machine -C sources/channels.scm -- describe
- name: Build environment
working-directory: sources
run: guix time-machine -C channels.scm -- shell -C -m manifest.scm -- python3 --version
- name: Rebuild environment for checking
working-directory: sources
run: guix time-machine -C channels.scm -- shell -C -m manifest.scm -- python3 --version
19 changes: 17 additions & 2 deletions GEERTS-reproduction/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,23 @@ These additional modifications were:

## Installation

Install the project by cloning it on your computer or by downloading a compressed version.</br>
Install the required packages using the environment.yml file and the 'conda env create -f environment.yml', followed by the 'conda activate geerts_reproduction' command.
Using [GNU Guix](https://guix.gnu.org), set up the complete software
environment with:

```
$ guix time-machine -C channels.scm \
-- shell -m manifest.scm --container \
--expose=../images=$HOME/path/to/local/clone/images
```

The `channels.scm` file instructs how to [replicate the exact Guix revision
used for
testing](https://guix.gnu.org/manual/en/html_node/Replicating-Guix.html),
while `manifest.scm` defines [the software
environment](https://guix.gnu.org/manual/en/html_node/Writing-Manifests.html)
of this computational experiment.

Alternatively, if you are not using Guix, install the required packages using the environment.yml file and the 'conda env create -f environment.yml', followed by the 'conda activate geerts_reproduction' command.
You can also install the required packages using the requirements.txt file and the 'pip install -r requirements.txt' command

## Usage
Expand Down
11 changes: 11 additions & 0 deletions GEERTS-reproduction/channels.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
(list (channel
(name 'guix)
(url "https://git.savannah.gnu.org/git/guix.git")
(branch "master")
(commit
"14c03807ba4bc81d42cf869f5b827f7da54ff843")
(introduction
(make-channel-introduction
"9edb3f66fd807b096b48283debdcddccfea34bad"
(openpgp-fingerprint
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))))
15 changes: 15 additions & 0 deletions GEERTS-reproduction/manifest.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
(specifications->manifest
(list
"python"
"python-cython"
"python-matplotlib"
"python-networkx"
"python-numpy"
"python-pandas"
Copy link

@suhail-singh suhail-singh Oct 27, 2023

Choose a reason for hiding this comment

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

excuse my ignorance, but if i understand correctly the version of python-pandas that will be installed would be 1.4.4 (i.e., the version corresponding to guix@14c03807ba4bc81d42cf869f5b827f7da54ff843) whereas the version in requirements.txt is 1.4.1. is this difference (and possibly other such differences) intended?

Edit: based on discussion on c-torre/replication-recanatesi-2015#1 it seems that I may have been mistaken: the intent here may not be to reproduce the replicated research, but rather to ensure that the original research is replicable in a reproducible way. Apologies for the noise.

Copy link
Author

Choose a reason for hiding this comment

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

I confirm the intent: ensure that the replication is reproducible. :-)

Moreover, please note that version label as 1.4.4 or 1.4.1 are not enough for having real reproduction. Because they identify only the source and not all the details for producing all the binary artefacts. Where is encoded the GCC version required for compiling CPython in requirements.txt or environment.yml for example?

Therefore, if you see a difference in the results (figures, plots, etc.) with the same 1.4.4 label then what is the source of the difference? An analysis flaw or something with some dependencies of dependencies, as build options or else, etc.

Last, please not that the identification of source code using string label is not enough. We need a content-dependent identifier. String label can be corrupted (e.g., mutable Git tag) when content-dependent identifier cannot (e.g., immutable Git hash)

Choose a reason for hiding this comment

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

I confirm the intent: ensure that the replication is reproducible.

Thank you.

Moreover, please note that version label as 1.4.4 or 1.4.1 are not enough for having real reproduction

Agreed.

Last, please not that the identification of source code using string label is not enough. We need a content-dependent identifier.

I see; yes, agreed.

Thank you!

"python-scipy"
"python-seaborn"
"python-statsmodels"
"python-tqdm"

"gcc-toolchain@11"
))
20 changes: 17 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,23 @@ Take note that the grid-search process require thousands of datapoints (we used

## Installation

Install the project by cloning it on your computer or by downloading a compressed version.</br>
Install the required packages using the environment.yml file and the 'conda env create -f environment.yml', followed by the 'conda activate mixedcoord' command.
You can also install the required packages using the requirements.txt file and the 'pip install -r requirements.txt' command
Using [GNU Guix](https://guix.gnu.org), set up the complete software
environment with:

```
$ guix time-machine -C channels.scm \
-- shell -m manifest.scm --pure
```

The `channels.scm` file instructs how to [replicate the exact Guix revision
used for
testing](https://guix.gnu.org/manual/en/html_node/Replicating-Guix.html),
while `manifest.scm` defines [the software
environment](https://guix.gnu.org/manual/en/html_node/Writing-Manifests.html)
of this computational experiment.

Alternatively, if you are not using Guix, install the required packages using the `environment.yml` file and the `conda env create -f environment.yml`, followed by the `conda activate mixedcoord` command.
You can also install the required packages using the `requirements.txt` file and the `pip install -r requirements.txt` command.

## Usage

Expand Down
11 changes: 11 additions & 0 deletions sources/channels.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
(list (channel
(name 'guix)
(url "https://git.savannah.gnu.org/git/guix.git")
(branch "master")
(commit
"14c03807ba4bc81d42cf869f5b827f7da54ff843")
(introduction
(make-channel-introduction
"9edb3f66fd807b096b48283debdcddccfea34bad"
(openpgp-fingerprint
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))))
14 changes: 14 additions & 0 deletions sources/manifest.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
(specifications->manifest
(list
"python"
"python-ipython"
"python-matplotlib"
"python-numpy"
"python-pandas"
"python-patsy"
"python-scikit-image"
"python-scikit-learn"
"python-scipy"
"python-seaborn"
"python-statsmodels"
))