You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: packaging-guide.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,6 +35,11 @@ Consider one of the following methods to package the software components of thei
35
35
- For raw data, the container/VM contains the data and the analysis scripts.
36
36
- For mechanized proofs, the container/VM contains the right version of the relevant theorem prover
37
37
- For a mobile phone application, the VM has a phone emulator installed
38
+
39
+
Note however that container and virtual machine recipes (such as Dockerfile) might not be by default reproducible.
40
+
In the case of Docker, pay attention to use a tag when using another image (and not the `latest` one) but also be aware that [images can be removed from caches](https://hub.docker.com/r/nvidia/cuda/#cuda-container-support-policy), know that `apt-get update` might yield different package versions every time it is being called.
41
+
One practice is to archive the produced container or VM on long-term storage such as Zenodo, but this is not a substitute to sharing the recipe.
42
+
For producing containers or VMs with more reproducibility guarantees, you can take a look at [Nix](https://nixos.org) or [Guix](https://guix.gnu.org/).
38
43
-**Live instance on the web:**
39
44
This can be a companion to source code as a way to make usage easier, or a replacement for source code for artifacts that cannot be made public.
40
45
It can be a custom site or use public clouds such as the ones mentioned in "tools" below.
@@ -73,6 +78,7 @@ The following tools are commonly used in artifact packaging and distribution:
73
78
-[GitHub](https://github.com) and [GitLab](https://gitlab.com), good options to host a Git repository for your artifact during evaluation, since they allow you to easily push updates in response to reviewer concerns
74
79
-[Zenodo](https://zenodo.org), to provide long-term storage and a DOI, ensuring the final version of your artifact can be archived permanently
75
80
-[Docker](https://docs.docker.com/get-started/overview/), to create a lightweight container with all of your artifact's dependencies, and even write scripts to manage multiple containers locally instead of using a cloud provider
81
+
-[Nix](https://nixos.org/) or [Guix](https://guix.gnu.org/), to create reproducible software environments, containers, virtual machines and system images.
76
82
77
83
Other useful tools include:
78
84
-[Popper](https://getpopper.io/), a container-native system for automating workflows
0 commit comments