Product Update: Anaconda CLI
Team Anaconda
Team Anaconda
Today Anaconda announces the transformation of the Anaconda CLI from a monolithic codebase into a plugin architecture. This will allow us to more easily maintain anaconda-client, providing stable community package management on anaconda.org, and allow a path for rapid innovation and access to a number of new and exciting features of our platform.
Anaconda-client has been the backbone of the Anaconda Command Line Interface (CLI) since its initial creation in 2013. It is the workhorse responsible for uploading and managing packages on community channels hosted on anaconda.org, such as conda-forge, bioconda
, and many others. After more than a decade of development, some of the early features and technical decisions have become technical debt.
With this change, anaconda-client will evolve to become the anaconda.org-specific plugin into a larger Anaconda CLI ecosystem.
Summary of Changes in Upcoming Release
The first phase of this change was released in anaconda-client 1.13.0. This release, while providing a fundamental architectural shift, is intended to have minimal impact on user experience, particularly in automated CI/CD scenarios. Only minor changes to interactive login flows are changed, and only in certain cases.
Some highlights:
- While the
anaconda
CLI entrypoint will be moved to a new package calledanaconda-cli-base
, the user experience will be nearly 100% backwards compatible- The exception is triggered if another plugin such as
anaconda-cloud-auth
is also installed in the user’s conda environment, in which case the interactivelogin
andlogout
commands will add an additional prompt to ask which domain to use - Notably, non-interactive usage via the
--token
CLI option remains as-is
- The exception is triggered if another plugin such as
- Library usage as
binstar_client
has not been modified - All existing subcommands will remain available (e.g.
anaconda upload
). If additional plugins are installed, all anaconda-client commands will be treated as aliases to nested commands likeanaconda org upload
.
What you can expect in the future
We will continue evolving anaconda-client to remove legacy features, all while maintaining active support for the package management workflows currently used across the ecosystem. All future deprecations will take place by raising DeprecationWarnings, in a similar way to conda itself.
As a part of this modernization, users can expect to see a more modern CLI interface. Additionally, we will continue to release plugins with features tailored to users across our entire subscription portfolio. (e.g. Anaconda Environment Manager).
Example usage of anaconda-audit
CLI plugin:
How to upgrade
Users can upgrade via:
conda update anaconda-client
To downgrade or prevent update, users may pin the version:
conda install anaconda-client=1.12.3
Get in touch
This release has been subject to Anaconda’s thorough QA process and we do not expect any major bugs or regressions. However, in case any unintended regressions or bugs occur in this release, users can revert to `anaconda-client=1.12.3.`
Users are welcome to file any feature requests or bug issues at our issue tracker at https://github.com/anaconda/anaconda-client
Talk to an Expert
Talk to one of our experts to find solutions for your AI journey.