_These release notes are automatically extracted from the full [changelog][]._
[changelog]: https://github.com/nextstrain/cli/blob/master/CHANGES.md#readme
This release drops support for Python versions 3.6 and 3.7 and adds support for 3.11. ([325](https://github.com/nextstrain/cli/pull/325), [#327](https://github.com/nextstrain/cli/pull/327))
Note that this Python version support only matters if you're installing Nextstrain CLI from PyPI or Bioconda ([c.f.](https://docs.nextstrain.org/projects/cli/en/8.0.0/installation/)). It does not apply if you're installing Nextstrain CLI using the standalone installation method we recommend in the [Nextstrain installation documentation](https://docs.nextstrain.org/page/install.html). In that case, a supported Python version is always bundled with `nextstrain`.
Improvements
* The `nextstrain remote` family of commands now support alternative nextstrain.org-like remotes such as internal Nextstrain Groups Server instances and development instances of nextstrain.org. Authentication with these remotes is supported via `nextstrain login` and related commands. Remotes maintain their authentication alongside each other, e.g. you can be logged into nextstrain.org as well as an alternative nextstrain.org-like instance.
As an example, a Nextstrain Groups Server instance accessible at nextstrain.example.com could now be logged into and interacted with like so:
nextstrain login nextstrain.example.com
nextstrain whoami nextstrain.example.com
nextstrain remote ls nextstrain.example.com/groups/bedford-lab/
The default remote is still nextstrain.org. ([333](https://github.com/nextstrain/cli/pull/333))
* `nextstrain login` now performs authentication via a web browser by default (using OpenID Connect 1.0 and OAuth 2.0). The previously method of direct password entry is still used when a username is provided (e.g. with `--username` or `-u`). See `nextstrain login --help` for more information. ([333](https://github.com/nextstrain/cli/pull/333))
* With the new support for being logged into multiple remotes, `nextstrain logout` now also supports an `--all` flag to remove all locally-saved credentials without having to logout of each remote separately. ([333](https://github.com/nextstrain/cli/pull/333))
* `nextstrain remote upload` now skips gzip compression when uploading zstandard-compressed (`.zst`) files, matching its behaviour for other types
of compressed files. ([330](https://github.com/nextstrain/cli/pull/330))
* Commands that may automatically open a web browser, e.g. `nextstrain view` or `nextstrain login`, now respect the semi-conventional `NOBROWSER` environment variable to disable opening a browser. Set `NOBROWSER` to a non-empty value to disable automatic opening. When disabled, the URL to manually open will be shown. ([332](https://github.com/nextstrain/cli/pull/332))
* The error message emitted by the `nextstrain remote` family of commands when they're unable to access an S3 bucket now lists a few possible reasons for the failure. ([341](https://github.com/nextstrain/cli/pull/341))
* `nextstrain remote download` now supports downloading core datasets which are only visible on the web by direct access via their URL. For example, the following now work (where in previous versions they did not):
nextstrain remote download https://nextstrain.org/nextclade/sars-cov-2/21L
nextstrain remote download https://nextstrain.org/enterovirus/d68/vp1/2020-01-23
This support also covers [past snapshots of datasets](https://docs.nextstrain.org/en/latest/guides/versions.html), which is a recently-added feature to nextstrain.org. For example:
nextstrain remote download https://nextstrain.org/flu/seasonal/h3n2/ha/6y2023-07-01
nextstrain remote download https://nextstrain.org/ncov/gisaid/21L/global/6m2024-01-09
([345](https://github.com/nextstrain/cli/pull/345))
Bug fixes
* Commands making use of user authentication (e.g. `nextstrain login`, `nextstrain whoami`, some invocations of `nextstrain remote`, etc.) no longer fail if the logged in user is a member of no groups. ([323](https://github.com/nextstrain/cli/pull/323))
* On Linux and macOS, the standalone installer's final instructions now correctly suggest modifying `~/.profile` instead of, incorrectly, `~/.shrc` when the default shell is sh. ([321](https://github.com/nextstrain/cli/pull/321))
* The Singularity runtime once again supports Apptainer's `singularity` executable. The minimum version checking added in 7.0.0 broke usage of the Singularity runtime with Apptainer (compared with SingularityCE). Our intent is to support both lineages of Singularity. Thanks to osageorange for raising this issue and testing the fix! ([343](https://github.com/nextstrain/cli/pull/343))