Glossary¶
Below is a collection of concepts and terms associated with computational reproducibility that we believe are important to understand. For each of them, you will find the list of cards that refers to them.
- Container
-
A container is an instanciation of an image. It's a lightweight, isolated environment that packages an application together with all its dependencies (libraries, configuration, ...). Unlike a virtual machine, it shares the host operating system's kernel, making it fast to start and efficient in resource usage. See for example Docker documentation.
- Continuous integration, Continuous Deployment
-
A practice of systematically and automatically verifying the impact of every change made to the source code on the functionality, performance, and stability of the software.
By extension: it consists in associating to each source code modification a series of automated operations (e.g., building, testing, produce documentation) ...
Continuous Delivery (CD): A practice of automating the deployment process to deliver applications quickly and reliably to production or staging environments. CD ensures that the software is always in a deployable state, and deployment is triggered automatically as part of the CI pipeline.
- Forge
-
A forge is a platform designed to facilitate collaborative work and the management of development projects (in the broadest sense). Most known examples are Gitlab, Github, Codeberg ...
- Image
-
A container image (often simplified as "image") is a read-only template required to run one or more containers. It includes all of the files, binaries, libraries, and configurations required to start an instance of a container. More : see for example Docker documentation.
- Software
-
What do we mean by "software" ?
We start from the COSO definition: ... Research software can be formalised in different ways (a platform, middleware, workflow or library, module or plug-in for other software) and can therefore interact within an ecosystem or, on the contrary, be more autonomous. In other words, we are talking about code that can range from a shell script of a few lines to a parallel library of several hundred thousand lines.A term is a definition of a word in your glossary.
- Software environment
-
For a given application (e.g. your software/program), a software environment is a collection of programs, libraries, and utilities needed for your application to work properly.