10.0.0
These release notes are automatically extracted from the full changelog.
This release is the first to include initial support for setting up and running pathogen workflows without the co-mingling of our workflow source code with your inputs and outputs (e.g. your config.yaml, data/, and results/) and without needing to download source code or use Git yourself. Pathogens are first set up with nextstrain setup and their workflows may then be run using nextstrain run, a new command in this release. These features are part of our broader "workflows as programs" endeavor.
Features
-
A new command,
nextstrain run, for running pathogen workflows in a more managed way as part of our broader "workflows as programs" endeavor.Workflows (e.g.
ingest,phylogenetic) for a pathogen are run in a Nextstrain runtime with config and input (e.g.config.yaml,data/) from an analysis directory you provide and outputs (e.g.results/) written to that same directory.Pathogens (e.g.
measles) are initially set up usingnextstrain setupand can be updated over time as desired usingnextstrain update. Multiple versions of a pathogen may be set up and run independently without conflict, allowing for comparisons of output across versions. The same pathogen workflow may also be concurrently run multiple times with separate analysis directories (i.e. different configs, input data, etc.) without conflict, allowing for independent outputs and analyses. Set up pathogens and their versions are listed bynextstrain version --pathogens.Compared to
nextstrain build, this newnextstrain runcommand is a higher-level interface to running pathogen workflows that does not require knowledge of Git or management of pathogen repositories and source code. For now, thenextstrain buildcommand remains more suitable for active authorship and development of workflows. (#407)
Improvements
-
The results of setup checks performed by
nextstrain setupandnextstrain check-setupare now shown individually as they complete instead of waiting for all checks to complete before showing results. This makes it more clear that work is being done when checks take a second or two. (#418) -
Commands which make web requests on your behalf (e.g.
nextstrain remote,nextstrain login,nextstrain setup,nextstrain update) now include an appropriate and informative User-Agent header, e.g.Nextstrain-CLI/10.0.0 (https://nextstrain.org/cli) Python/3.10.9 python-requests/2.32.3 platform/Linux-x86_64 installer/standalone tty/yesinstead of the previous generic User-Agent, e.g.
python-requests/2.32.3The new User-Agent includes the Nextstrain CLI version as well as basic information on several important software components. This information is non-identifying and useful for our troubleshooting and aggregation of usage metrics. You may opt to omit it, however, by setting the
NEXTSTRAIN_CLI_USER_AGENT_MINIMALenvironment variable to1(or another truthy value). In that case, the User-Agent only includes the CLI version, e.g.:Nextstrain-CLI/10.0.0 (https://nextstrain.org/cli)We recommend leaving the default User-Agent enabled unless the minimal variant is necessary for your circumstances. (#432)
- When checking for upgrades for Nextstrain CLI itself during
nextstrain check-setupandnextstrain update, the latest version is now fetched from nextstrain.org instead of pypi.org. This gives us insights into usage and also more flexibility to shift how we're releasing and distributing this project. (#434)