← ClaudeAtlas

rseng-reproducible-environmentslisted

Covers making research software environments reproducible: pinning a language version and its dependencies in a per-project virtual environment, choosing a package/environment manager, and packaging code and its full stack into a container. Use when the user asks how to set up venv/conda/poetry/uv/renv, lock or pin dependencies, share a runnable environment, escape "dependency hell" or "works on my machine", write a Dockerfile, build an Apptainer/Singularity image for HPC, or decide between a virtual environment and a container. For regenerating a project's results end to end see rseng-reproducibility; for environments of multi-step pipelines see rseng-workflows.
fdiblen/rseng-agent-skills · ★ 20 · DevOps & Infrastructure · score 81
Install: claude install-skill fdiblen/rseng-agent-skills
# Reproducible software environments Use this skill when software must behave the same on another machine, a cluster, a CI runner, or a reviewer's laptop as it does on the author's. Two complementary tools deliver this: a per-project virtual environment that isolates the language interpreter and its libraries, and a container that packages the code together with its entire dependency stack. Reach for the virtual environment when developing or modifying code in one language; reach for the container when the environment must travel across machines, platforms, or pipelines unchanged. ## Pick the right level of isolation Match the tool to how far the software has to travel and what it depends on: - Language-specific virtual environment - isolates one interpreter/compiler version plus library versions for a single project. Default choice while developing, running, or modifying someone's code in one language. - Container (Docker, Apptainer/Singularity, Docker Compose) - packages the whole environment, including non-language system libraries and OS-level config. Choose when the code must run unchanged across collaborators' machines, clusters, or cloud, or plug into CI/CD. - System-level tools (Vagrant, NixOS, Packer) - reproduce a whole machine image or OS configuration as code. Use when the OS itself is part of what must be reproduced. - Workflow environments (Nextflow, Snakemake, Galaxy, CWL/WDL) - manage reproducible environments for multi-step, multi-tool ana