What to learn next

We recommend reading the chapter on testing, and then the chapter on continuous integration. Note that the chapter on version control is a prerequisite for the chapter on continuous integration. The open research chapter also contains further information on sharing research reproducibly.

Further reading

The Docker documentation contains a lot of information about containers in general.

Definitions/glossary

Binder: A web-based service which allows users to upload and share fully-functioning versions of their projects in an environment they define.

Computational environment: Features of a computer which can impact the behaviour of work done on it, such as its operating system, what software it has installed, and what versions of software packages are installed.

Conda: A commonly used package management system.

Container: Lightweight files that can encapsulate and entire computational environment including its operating system, customised settings, software and files.

Dockerfile: A file used for creating Docker images

Image: Files used for generating containers.

Package management system: A tool for installing, managing, and uninstalling software packages including specific versions.

Virtual machine: A simulated computer that can encapsulate and entire computational environment including its operating system, customised settings, software and files.

YAML: A human readable/writable markup language which used by many projects for configuration files.

Bibliography

Materials in the “what is a computational environment” section

Materials in the “how this will help you/why this is useful” section

Materials in the summary of ways to capture computational environments section

Materials in the package management systems section

Materials in the YAML files section

Materials in the Binder section

Materials in the virtual machines section

Materials in the containers section