Resources¶
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¶
- semantic versioning Creative Commons - CC BY 3.0 
Materials in the “how this will help you/why this is useful” section¶
- A. Brinckman, et al., Computing environments for reproducibility: Capturing the “Whole Tale”, Future Generation Computer Systems (2018), https://doi.org/10.1016/j.future.2017.12.029 Attribution 4.0 International (CC BY 4.0) 
- Paper presenting singularity CC0 1.0 Universal (CC0 1.0) 
Materials in the summary of ways to capture computational environments section¶
- Paper presenting singularity CC0 1.0 Universal (CC0 1.0) 
Materials in the package management systems section¶
- Package Managers Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) 
- Talk by Will Furnass on Conda Attribution-NonCommercial-ShareAlike 4.0 International 
Materials in the YAML files section¶
Materials in the Binder section¶
- Binder illustration Permission to use granted by Juliette Taka, Logilab and the OpenDreamKit project. 
Materials in the virtual machines section¶
Materials in the containers section¶
- What is docker? CC BY-SA 4.0 
- What are containers? CC BY-SA 4.0 
- Docker carpentry Creative Commons Attribution 4.0 
- Geohackweek tutorial Creative Commons Attribution 3.0 Unported 
- Nüst, D., Sochat, V., Marwick, B., Eglen, S., Head, T., & Hirst, T. (2020, April 17). Ten Simple Rules for Writing Dockerfiles for Reproducible Data Science, https://doi.org/10.31219/osf.io/fsd7t Creative Commons Attribution 4.0 International 
