- This release fixes a regression in the
view
command which caused "connection reset" or "empty response" errors. The regression only affected versions 1.11.0 and 1.11.1 of the Nextstrain CLI when used with Auspice 1.38.0 via thenextstrain/base:build-20190828T223744Z
image. Thanks to Thomas Adams for the excellent bug report!
- The
check-setup
command no longer errors when Docker isn't installed.
-
The
view
command now supports--native
flag to run in the native ambient environment. -
The
check-setup
command now supports a--set-default
flag to save the first supported environment to the Nextstrain CLI's config file. This means that you don't have to specify--native
(or--aws-batch
) every time if you don't have/want Docker support.
- The
--verbose
flag to theversion
command will no longer cause the Docker image to be downloaded when it isn't available locally.
- Describe the somewhat annoying process of how to increase the disk space available to AWS Batch jobs in the AWS Web Console.
- The environment variables used by Augur are now passed through to --docker and --aws-batch builds.
- The
view
command now sports a--port
option to use an alternate port for the viewer.
- Add ability to specify vCPU and memory when running AWS Batch jobs via
--aws-batch-cpus
and--aws-batch-memory
or via specification in~/.nextstrain/config
or via environment variablesNEXTSTRAIN_AWS_BATCH_CPUS
andNEXTSTRAIN_AWS_BATCH_MEMORY
. This requires corresponding proper setup of compute environment in AWS Batch console.
- Restore the modification times of files when unzipping results from an AWS Batch run. This allows Snakemake's dependency resolution to properly determine file staleness, which in turn allows local builds to continue where AWS Batch builds leave off (e.g. running the bulk of the computation on AWS Batch and then iterating on subsequent trivial steps locally).
- Builds run on AWS Batch no longer delete the build dir zip file from S3 or the job log stream from CloudWatch, making it easier to debug and troubleshoot Batch builds. The Batch setup documentation is updated to note that the previously suggested retention policies are now the only thing preventing runaway data storage costs (and thus a must).
- Declare missing dep on setuptools, used via
pkg_resources
by thecheck-setup
andupdate
commands. setuptools nearly always exists already on Python installs, especially when nextstrain-cli is installed using pip, but nearly always is not always.
- Static type checking now passes again thanks to a work around for a mypy bug related to namespace packages.
- The
check-setup
command now tests if the local Docker image is new enough for this version of the CLI.
-
Docker images between
build-20190115T232255Z
andbuild-20190116T000613Z
(inclusive) broke thenextstrain view
command. It is fixed in this version of the CLI, 1.8.0, in tandem with new images, starting withbuild-20190119T045444Z
. If yourview
command is broken, runningnextstrain update
and following the instructions to upgrade to version 1.8.0 of the CLI should resolve the issue. -
AWS Batch builds now avoid uploading files matching
environment*
in the build directory, as such files are commonly used for storing sensitive environment values.
- The automatic check for newer versions of the CLI, which happens on the
update
andcheck-setup
commands, now produces a better, more-likely-to-work suggested invocation of pip to perform the upgrade.
- The
build
command now runssnakemake
with the--printshellcmds
option for improved log output.
-
User-provided paths are now resolved strictly—they must exist—on both Python 3.5 and ≥3.6, not just 3.5. This discrepancy was unlikely to result in any noticeable problems because of other existence checks which were performed. Nevertheless, the change is good housekeeping and helps ensure robustness.
-
The
update
command no longer errors on Python 3.6.0 and 3.6.1 when the~/.nextstrain/
does not exist (for example, when upgrading from CLI versions before 1.7.0). #37
-
Continuous integration testing now includes a much fuller range of Python versions in order to more quickly catch bugs like the one affecting
update
above. -
Continuous integration testing switched to running the zika-tutorial, a simplified build more suitable for our needs.
- The
shell
command no longer throws an unexpected exception about a missingwarn()
function when a non-existent build directory is given. The user-friendly error is printed instead, as expected.
-
Builds can now be run remotely on AWS Batch by passing the
--aws-batch
flag to thebuild
command. Seenextstrain build --help
for more information. Setup required to support this is documented indoc/aws-batch.md
. -
The
update
command now pulls down new images by theirbuild-*
tag instead of tracking the mutablelatest
tag. Our build tags are, most importantly, not updated after creation and thus are suitable references for reproducible runs. The output ofnextstrain version --verbose
now includes the specific build tag. -
The
check-setup
command now tests the amount of memory available to containers and warns if it less than 2GB. This is particularly important on Windows and macOS where Linux containers are run inside a VM on the host. The VM may have limited memory allocated to it, leading to out-of-memory errors in builds.
-
Installation instructions in the README are now more detailed.
-
A big picture overview of where the CLI fits into the Nextstrain ecosystem is included in the README for situating newcomers.
-
The README now refers to Docker Desktop, the new name for Docker Community Edition.
- The
shell
command announces you're entering the build environment, prints information about mapped volumes, and describes how to leave the environment.
- On Windows, fix an issue where the
build
andshell
commands spawn thedocker run
process but also immediately return the user to the command-line. Forshell
, the situation was weirder still because the user ended up with two command prompts (cmd.exe and bash) but only one appeared to win when reading from the shared stdin.
-
The
build
command now supports a--native
flag to run the build outside of any container image, that is, within the ambient environment. That environment might be provided by conda or a cluster module system or custom installs or some other thing. Docker remains the default, although it may be explicitly specified with--docker
. Other runners are planned for the future. The idea is that the cli as a user-facing tool for Nextstrain is separate from a containerized Nextstrain environment (although the two work well together). -
The
build
,view
, andshell
commands now show an abbreviated set of common options when passed--help
. The full set of options is available using--help-all
. The idea is to make the initial output more approachable.
-
The README now describes how to annotate the type of variable and use other typing features in a way that's compatible with Python 3.5
-
Package metadata for PyPi is slightly improved.
- Minor updates to README and command help strings
- A new
shell
command launches an interactive shell (bash) inside the build environment, which is useful for running ad-hoc commands and debugging.
-
The
update
command now prunes old Docker images after downloading new ones. This functionality relies on our new, labeled images. Older images will have to be manually pruned as a one-time step. Seedocker image prune
for more information. Note that locally built images which are tagged nextstrain/base:latest will be pruned whenupdate
is run. Protect such images by giving them an additional tag. -
The versions of the Docker image and individual Nextstrain components in the image are shown when the
version
command is run with the--verbose
flag.
-
A new
deploy
command supports uploading data files to S3, allowing the complete pathogen build lifecycle to happen using this package. -
The
check-setup
andupdate
commands now check if the CLI itself is out of date and could be updated.
- Brief descriptions of the changes in each release are now kept in the
CHANGES.md
file. You're reading it!
-
Describe basic development practices for this package in the README.
-
Commit to semantic versioning, which I'd been neglecting previously when bumping versions.
-
Static type checking is now supported for a small fraction of the source code and runs clean under mypy. This is included in Travis CI testing. The goal is to add more type annotations going forward.