Terms used by Nextstrain CLI. Primarily intended for developers new to the codebase, though some terms are also used in user-facing messages and documentation.
- computing environment
A general term for any given set of software, configuration, and other resources available for running programs. Computing environments are often nested, with inner environments inheriting to varying degrees from the outer environments. The isolation and reproducibility of different computing environments varies widely.
Nextstrain runtimes <runtime>
are examples of specific computing environments.- computing platform
The foundation of a
computing environment
(or part of it), such as Docker, Conda, AWS Batch, etc.- runner
The code (i.e. Python module, e.g.
nextstrain/cli/runner/docker.py
) which arranges to execute things inside aruntime
.Used by commands like
nextstrain build
andnextstrain view
, for example, to executesnakemake
orauspice
(respectively).Runners have a 1:1 mapping to runtimes.
- runtime
A specific
computing environment
(e.g. container image or Conda environment) in which Nextstrain CLI expects to find and execute other Nextstrain programs.Current runtimes:
- Docker with the nextstrain/base image
- Conda with the nextstrain-base meta-package
- Ambient
- AWS Batch with the nextstrain/base image
Each runtime provides specific versions of Nextstrain's software components, like Augur and Auspice.
Runtimes are managed (maintained, tested, versioned, released) by the Nextstrain team, except for the ambient runtime. The ambient runtime is special in that it's whatever computing environment in which Nextstrain CLI itself is running (i.e. managed by the user).