Software

A breakdown of available software-environment management options and a list of pinned software versions.

Software

Table of contents
  1. Docker Environments
  2. Virtual Environments

Docker Environments

A docker image has been created using Alpine Linux, a bare-bones version of linux optimized for size and efficiency, making it an ideal OS for lightweight Docker images. This image is available on DockerHub here.

docker pull graemeford/pipeline-os:latest

Virtual Environments

Users are encouraged to use Python virtual environments to maintain a clean, project-specific environment. To create one, you can run the python -m venv <folder-to-create> command to create a virtual environment. IDE’s such as Visual Studio Code with the appropriate python language packs enabled will be able to auto-detect this virtual environment and activate it for you. After activation, any python-related commands will install to and reference from this virtual environment.

Pinned package version files for the python package manager, pip, are available to prime this environment with all necessary software. This is maintained via the pip-tools packages pip-compile --generate-hashes command.

Linux:

# IF no venv folder present THEN
# CREATE virtual environment
python3 -m venv venv

# ACTIVATE virtual environment 'venv'
source ./venv/bin/activate

# (venv) INSTALL dependancies
pip install -r requirements.deb.txt

Virtual environments

Users are encouraged to use Python virtual environments to maintain a clean, project-specific environment. To create one, you can run the python -m venv <folder-to-create> command to create a vritual environment. To activate this environment, use the source <path-to<folder-to-create>>/bin/activate. Now, any installation commands will install to this blank environment.

Windows compatability

Virtual environments are supported on windows, however, the source command is linux-specific. Users can use an IDE which is capable of auto-detecting and auto-enabling virtual environments (such as Visual Studio Code) for ease-of-use.

--generate-hashes is used to record an MD5-checksum digest of the files that form part of the packages file download. This allows pip to verify the file composition on download against these records, as a security function.


This work is licensed under a Creative Commons Attribution 4.0 International License.. This project is managed by the Institute for Cellular and Molecular Medicine at the University of Pretoria.