From 188c23aae0a7888f8ca921fb194cddbaf98379ac Mon Sep 17 00:00:00 2001 From: Wes Harrell Date: Tue, 23 Dec 2025 13:35:44 +1300 Subject: [PATCH 1/3] Created new page outline --- docs/Software/Reproducible_Software.md | 52 ++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 docs/Software/Reproducible_Software.md diff --git a/docs/Software/Reproducible_Software.md b/docs/Software/Reproducible_Software.md new file mode 100644 index 000000000..df4381300 --- /dev/null +++ b/docs/Software/Reproducible_Software.md @@ -0,0 +1,52 @@ +--- +Title: Reproducible Software +tags: + - software + - reproducible + - reproducibility + - environments + - containers +--- + +## Research Software + +According to [this article in Nature](https://www.nature.com/articles/s41597-022-01710-x): + +> Research software is a fundamental and vital part of research, yet significant challenges +> to discoverability, productivity, quality, reproducibility, and sustainability exist. + +So what can we as researchers and technologists do to make our software easier to reproduce and use? +Below are some tips, tricks and best practice to help get you started. + +## Established Software Environment Tools + +### Conda/Mamba Environments + +TODO: find and point to existing conda + +### Python Virtual Environments + +TODO: find and point to venv + +## New Tools for Creating Reproducible Environments + +### UV + +TODO: I think Jen created a page for this + +### pixi + +TODO: new page + +### anything else work mentioning? + + +## Containerisation + +TODO: Point to Apptainer + + +## Compiled Software + +TODO: point to modules and maybe add something about retrieving modules and dependencies alsong with info about + the OS and other pertinent info From 87ceb71d5e6aefbc65767f5d679ffedb4b253494 Mon Sep 17 00:00:00 2001 From: Jen Reeve Date: Mon, 5 Jan 2026 14:18:27 +1300 Subject: [PATCH 2/3] adding some pointers and details --- docs/Software/Reproducible_Software.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/docs/Software/Reproducible_Software.md b/docs/Software/Reproducible_Software.md index df4381300..4e6f91a1d 100644 --- a/docs/Software/Reproducible_Software.md +++ b/docs/Software/Reproducible_Software.md @@ -22,17 +22,17 @@ Below are some tips, tricks and best practice to help get you started. ### Conda/Mamba Environments -TODO: find and point to existing conda +Conda environments are supported via the [Miniforge3](../Software/Available_Applications/Miniforge3.md) module. ### Python Virtual Environments TODO: find and point to venv -## New Tools for Creating Reproducible Environments +## New Tools for Reproducible Environments -### UV +### uv -TODO: I think Jen created a page for this +The [uv](../Software/Available_Applications/uv.md) package manager is available as module. ### pixi @@ -43,10 +43,8 @@ TODO: new page ## Containerisation -TODO: Point to Apptainer - +Containers are supported on Mahuika via [Apptainer](Available_Applications/Apptainer.md). ## Compiled Software -TODO: point to modules and maybe add something about retrieving modules and dependencies alsong with info about - the OS and other pertinent info +In addition to the ability to search available modules using `module spider `, all installed modules and available versions can be found in [this table](Available_Applications/index.md). From d3c89755218fc98339ec3308b339998c632c74c6 Mon Sep 17 00:00:00 2001 From: "callumnmw@gmail.com" Date: Tue, 6 Jan 2026 15:40:16 +1300 Subject: [PATCH 3/3] Added flow chart wheeee --- docs/Software/Reproducible_Software.md | 40 +++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/docs/Software/Reproducible_Software.md b/docs/Software/Reproducible_Software.md index df4381300..4deafee49 100644 --- a/docs/Software/Reproducible_Software.md +++ b/docs/Software/Reproducible_Software.md @@ -1,5 +1,4 @@ --- -Title: Reproducible Software tags: - software - reproducible @@ -18,8 +17,47 @@ According to [this article in Nature](https://www.nature.com/articles/s41597-022 So what can we as researchers and technologists do to make our software easier to reproduce and use? Below are some tips, tricks and best practice to help get you started. +```mermaid +flowchart TD + A{"Do you require a specific operating system?"} + A -- "Yes" ---> CON + A -- "No" ---> B + + B{"What software are you using?"} + B -- "Python" ---> D + B -- "Other" ---> C + + C{"Do you need to match environments with another computer?"} + C -- "Yes" ---> E + C -- "No" ---> ENVM + + D{"How many packages are you using?"} + D -- "Few" ---> ENVM + D -- "Dozens" ---> VENV + D -- "Hundreds" ---> CONDA + + E{"Can you build it yourself?"} + E -- "Yes" ---> BLD + E -- "No" ---> CON + + BLD["Build the software from source"] + ENVM["Use the Environment Module"] + CON["Use a Apptainer container"] + CONDA["Use Conda / Mamba"] + VENV["Use Python Virtual Environment"] +``` + + ## Established Software Environment Tools +### Environment Modules + +The most simple way to access software on the cluster is using [Environment Modules](). + +This will get you access to a specific version of your software, built for the clusters hardware. + +If you want to exactly replicate your local environment this may not be suitable. + ### Conda/Mamba Environments TODO: find and point to existing conda