-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Document runtimes more comprehensively and centrally
Trying to provide a more useful resource to point people to than a smattering of scattered doc snippets. There's still some places this could be better cross-referenced (e.g. in --help output) and more that could be said about runtimes in general and each runtime specifically… but that can all come in due time. I needed to find a stopping point for this work _somewhere_. A big gain here is that now there's clear places to attach additional documentation in the future. Like the recent switch from dynamically- to statically-generated rST for command documentation, it may also sooner-than-later make sense to ditch the "automodule" directive and do something static instead. Resolves <#288>.
- Loading branch information
Showing
18 changed files
with
366 additions
and
167 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,10 +18,10 @@ email to <[email protected]>. | |
|
||
[Augur]: https://docs.nextstrain.org/projects/augur/ | ||
[Auspice]: https://docs.nextstrain.org/projects/auspice/ | ||
[Docker]: https://docs.nextstrain.org/projects/cli/en/stable/installation/#docker | ||
[Conda]: https://docs.nextstrain.org/projects/cli/en/stable/installation/#conda | ||
[Singularity]: https://docs.nextstrain.org/projects/cli/en/stable/installation/#singularity | ||
[AWS Batch]: https://docs.nextstrain.org/projects/cli/en/stable/installation/#aws-batch | ||
[Docker]: https://docs.nextstrain.org/projects/cli/page/runtimes/docker/ | ||
[Conda]: https://docs.nextstrain.org/projects/cli/page/runtimes/conda/ | ||
[Singularity]: https://docs.nextstrain.org/projects/cli/page/runtimes/singularity/ | ||
[AWS Batch]: https://docs.nextstrain.org/projects/cli/page/runtimes/aws-batch/ | ||
[documentation]: https://docs.nextstrain.org/projects/cli/ | ||
[development docs]: https://docs.nextstrain.org/projects/cli/page/development/ | ||
[open an issue]: https://github.com/nextstrain/cli/issues/new |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
=============== | ||
Ambient runtime | ||
=============== | ||
|
||
.. automodule:: nextstrain.cli.runner.ambient | ||
:noindex: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
================= | ||
AWS Batch runtime | ||
================= | ||
|
||
.. automodule:: nextstrain.cli.runner.aws_batch | ||
:noindex: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
,Isolation level,Containerized?,Locality,External dependencies | ||
Docker,great (3),yes,local or remote,``docker`` command | ||
Conda,some (1),no,local,none | ||
Singularity,good (2),yes,local,``singularity`` command | ||
Ambient,none (0),no,local,many | ||
AWS Batch,great (3),yes,remote,AWS account with Batch set up |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
============= | ||
Conda runtime | ||
============= | ||
|
||
.. automodule:: nextstrain.cli.runner.conda | ||
:noindex: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
============== | ||
Docker runtime | ||
============== | ||
|
||
.. automodule:: nextstrain.cli.runner.docker | ||
:noindex: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
======== | ||
Runtimes | ||
======== | ||
|
||
Nextstrain's runtimes are specific :term:`computing environments <computing | ||
environment>` in which Nextstrain CLI expects to find and run other Nextstrain | ||
programs, like :doc:`Augur <augur:index>` and :doc:`Auspice <auspice:index>`. | ||
In turn, Nextstrain CLI provides a consistent set of commands to run and | ||
visualize Nextstrain pathogen builds regardless of the underlying runtime in | ||
use. Together, this allows Nextstrain to be used across many different | ||
computing platforms and operating systems. | ||
|
||
The :doc:`/commands/build`, :doc:`/commands/view`, and :doc:`/commands/shell` | ||
commands all require a runtime, as they require access to other Nextstrain | ||
software. | ||
|
||
The :doc:`/commands/setup`, :doc:`/commands/check-setup`, and | ||
:doc:`/commands/update` commands manage the runtimes available for use by the | ||
commands above. The :doc:`/commands/version` command's :option:`--verbose | ||
<nextstrain version --verbose>` option reports detailed version information | ||
about all available runtimes. | ||
|
||
Other Nextstrain CLI commands, such as the :doc:`/commands/remote/index` family | ||
of commands and the related :doc:`/commands/login` and :doc:`/commands/logout` | ||
commands, do not require a runtime. They may be used without any prior set up | ||
of a runtime. | ||
|
||
The runtimes currently available are the: | ||
|
||
- :doc:`/runtimes/docker` | ||
- :doc:`/runtimes/singularity` | ||
- :doc:`/runtimes/conda` | ||
- :doc:`/runtimes/ambient` | ||
- :doc:`/runtimes/aws-batch` | ||
|
||
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 (that is, it's managed by the user). | ||
|
||
You can set up and use multiple runtimes on the same computer, for example if | ||
you want to use them in different contexts. Runtime-using commands let you | ||
select a different runtime than your default with command-line options (e.g. | ||
``--docker``, ``--conda``, and so on). For example, you might use the Docker | ||
runtime to run small builds locally and then use the AWS Batch runtime to run | ||
large scale builds with more computing power. | ||
|
||
If you pick one runtime and later realize you want to switch, you can go back | ||
and set up the other. | ||
|
||
|
||
Comparison | ||
========== | ||
|
||
.. csv-table:: | ||
:file: comparison.csv | ||
:header-rows: 1 | ||
:stub-columns: 1 | ||
|
||
Isolation level | ||
A relative ranking from least isolated (*none*, 0) to most isolated | ||
(*great*, 3) from the underlying computer system. | ||
|
||
Containerized? | ||
A containerized :term:`computing platform` provides a higher degree of | ||
isolation, which in turn usually means a higher degree of portabililty and | ||
reproducibility across different computers and users. | ||
|
||
Locality | ||
*Local* means "on the same computer where ``nextstrain`` is being run". | ||
*Remote* means "on a different computer". | ||
|
||
Docker is most often used to run containers locally, but can also be used | ||
to run them remotely. | ||
|
||
External dependencies | ||
Third-party programs or configuration which are required to use a runtime | ||
but not managed by :doc:`/commands/setup` and :doc:`/commands/update`. | ||
|
||
|
||
Compatibility | ||
============= | ||
|
||
Switching runtimes or updating the version of a runtime may result in different | ||
versions of Nextstrain components like Augur and Auspice as well as other | ||
programs, and thus different behaviour. | ||
|
||
Exact behavioural compatibility is not guaranteed between different runtimes | ||
(e.g. between the Docker vs. Conda runtimes) or between versions of the same | ||
runtime (e.g. between Docker runtime images | ||
``nextstrain/base:build-20230714T205715Z`` and | ||
``nextstrain/base:build-20230720T001758Z``). However, the containerized | ||
runtimes (Docker, Singularity, AWS Batch; see comparison_ above) will usually | ||
have identical behaviour given the same runtime version (e.g. ``build-…``) as | ||
they are all based the same runtime image (``nextstrain/base``). Any variance | ||
is typically due to use of external resources (intentional or otherwise) from | ||
outside the container. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
=================== | ||
Singularity runtime | ||
=================== | ||
|
||
.. automodule:: nextstrain.cli.runner.singularity | ||
:noindex: |
Oops, something went wrong.