As part of extending our CLI, we have been migrating to a plugin-based system.
This release removes the anaconda
entrypoint from anaconda-client
, which is now located instead in anaconda-cli-base
.
When these changes are installed, we don't intend any breaking behavior for the user.
Any changes are generally dependent on the presence of other Anaconda CLI plugins.
In the case that another plugin is installed (like anaconda-cloud-auth
), the following changes may be observed:
- All existing
anaconda-client
subcommands are available - All existing
anaconda-client
subcommands are ALSO available with theorg
prefix, e.g.anaconda org upload
. It is recommended to adopt this format, as it is more explicit. - The help text will be modified (i.e. type
anaconda
). Not allanaconda-client
subcommands will be shown. - The
anaconda notebooks
subcommand will explicitly be listed as deprecated in the CLI help.
In order to maintain backwards compatibility for all subcommands, we include logic to mount all existing subcommands from anaconda-client
as top-level subcommands.
anaconda-client
subcommands continue to work until overridden by new plugins, but may not be displayed in the global help output.
We also include all subcommands under the namespace anaconda org
, e.g. anaconda org upload
.
The help for all nested subcommands can be accessed with anaconda org --help
.
Users may disable the new plugin system by setting the environment variable ANACONDA_CLIENT_FORCE_STANDALONE=1
.
In addition to automated testing, this release has undergone an extensive internal QA process. However, if any unintended regressions do occur, please file a bug in our issue tracker.
- PR 717 - Drop dependency on
six
- PR 718 - Fix local development setup via
make init
- PR 719 - Migrate
anaconda-client
to become a plugin ofanaconda-cli-base
- PR 711 - Remove duplicate import
- PR 714 - Updated links in upload help text
- PR 724 - Use conda package streaming to fix bug in upload of packages with bad permissions
- AC-207 - Accessing entry_points by index no longer supported in Python 3.12
- AC-208 - Fix uploads of existing packages
- PR 708 - AC-208: fix uploads of existing packages
- PR 705 - AC-207: add importlib.metadata python3.12 compatibility
- PR 701 - Restore default user config search path on Linux
- PR 700 - ci: Use GITHUB_OUTPUT envvar instead of set-output command
- PR 698 - AC-197: python 3.12 support
- PR 696 - Make arch and platform inside index.json optional
- AC-192 - SPIKE: Remove unnecessary /user calls
- AC-194 - Check token before calling /user endpoint
- AC-200 - Replacing vendored appdirs with platformdirs
- PR 693 - AC-200: replace appdirs with platformdirs
- PR 691 - Support Python 3.12
- PR 688 - AC-194: check token before making /user call
- PR 680 - use conda.gateways.anaconda_client for tokens possible
- AC-191 - Add dependency for anaconda-anon-usage to anaconda-client
- PR 684 - AC-191: anaconda-anon-usage dependency added
- AC-155 - Package upload improvements
- AC-163 - Do not use 'none' as a package type
- AC-164 - Allow main entrypoint plugin
- AC-165 - Remove dependency on deprecated urllib3 function
- AC-167 - Address reported anaconda-client issues
- PR 672 - AC-164: anaconda cli entrypoints support
- PR 670 - AC-167: fixes for some issues
- PR 669 - AC-165: compatibility with urllib3
- PR 664 - feat: Allow main entrypoint plugin
- PR 663 - AC-163: fix default package types
- PR 659 - AC-155: package upload improvements
- AC-156 - Add creationflags to prevent spawning of redundant terminal windows
- PR 653 - AC-156: use creationflags to prevent spawning redundant terminal windows
- PR 652 - update references to Anaconda.org
- Option to force the package metadata update when uploading package.
- Make it possible to use a conda-safe package name (underscores) for python wheels.
- Fix upload of large package files.
- AC-149 - Add option to use package metadata on upload
- AC-150 - Fix upload of large files
- AS-758 - Anaconda client doesn't allow pypi whl to use conda package names
- PR 647 - AS-796: linters update
- PR 646 - AC-150: fix multipart files upload
- PR 641 - AC-149: Use package metadata on upload
- PR 640 - AS-758: Allow path to upload whl with conda package name
- yaml files are now supported by
anaconda update
command
- Linters toolset updated
- Code style fixes implemented
- AC-137 - Refresh linting config
- AC-148 - [QA] Traceback appears on viewing the metadata of a file
- PR 634 - AC-148: improvements in logging stability
- PR 628 - AC-145: exception classes fixed
- PR 625 - AC-144: base repository scripts refresh
- PR 617 - AC-138: additional cleanup of the project
- PR 615 - AC-138: Dev tools refresh
- Client generates sha256 package checksum during upload process.
- PR 613 - AS-523: Remove requests.Session usage on file upload
- PR 612 - AS-523: Remove redundant logic
- PR 608 - AC-135: Use hexdigets sha256 checksum
- PR 605 - AC-133: Include sha256 value on file upload
- Support for .conda packages for upload and download
- Labels for "Standard Python" and "Standard R" package types (instead of "pypi" and "r")
- R packages should now download correctly
- Issues related to the invalid configuration paths should now be mitigated
- PR 604 - AC-131: Fix deprecated methods and modules, remove not worked covarage
- PR 603 - AC-132: additional tests for packages with dash in name
- PR 600 - AC-126: Add better error handling and logging for AC config file
- PR 596 - AC-121: Pattern matching in upload command
- PR 595 - AC-116: better support for standard r packages
- PR 594 - NAV-649: possible fix for permission denied issue
- PR 593 - AS-120: Refactor package_type usage
- PR 591 - AC-119: Add conda v2 format support
- Added update command
- Fixed upload command for
pypi
andconda
packages of the same name - Fixed string formatting on interactive input
- PR 588 - AC-114: Add update command to autotest
- PR 585 - AC-108: automated tests added to the repo
- PR 584 - AC-43: Fix upload of packages with same name but different type
- PR 579 - fix string formatting on interactive input
- PR 573 - AC-92: Add update command
- Added
--update
and--replace
options for copy command
- CI provider changed from Circle CI to GitHub Actions
- Uncaught exceptions are now displayed
- Fixed
--summary
and--description
arguments for upload command - Usage of deprecated base64 functions
- Downloading multiple packages using the download command
- PR 575 - AC-87: Fixes and version bump to 1.8.0
- PR 572 - AC-87: fix for anaconda-project requirement
- PR 571 - AC-87: Bump version to 1.8.0rc1
- PR 570 - AC-96: CI migration to GitHub Actions
- PR 566 - AC-93: Fix summary and description arguments
- PR 565 - PR: Fix #555 - Upload - Fix of deprecated base64 functions usage
- PR 559 - AC-88: Add --update and --replace options for copy command
- PR 551 - fix: AttributeError: module 'base64' has no attribute 'encodestring'
- PR 539 - Don't hide all uncaught exceptions
- PR 534 - Adding Travis-Ci Support For Arm64
- PR 528 - Corrected links to documentation
- Wheels upload doesn't work with wheel==0.31.0
- Add
--skip-existing
flag for uploading large batches of packages
- Fix files download and add more output information
- Fix typos in the help text
- Add move command for label handling
- Add copy subcommand for label handling
- Add option to download specific package type
- Fix text mentions of Anaconda Cloud
- Clear in-line help for "package type" option in "upload" command
- Fixed get_server_api call on get_binstar
- Fixed get_server_api call on get_binstar
- Re-added get_binstar function
- Fixed behavior of the url config setting
- Fixed upload command help
- Upload now reads Jupyter notebooks metadata
- Fixed loading of tagged config files under Python 3
- Added support for setting a default upload user
- Show warnings when lock down and read-only headers are present
- Fixed upload message when package_types is empty
- Revert to using PyYAML instead of ruamel.yaml
- Fixed ruamel.yaml dependency.
- Refactored logging.
- Replaced PyYAML with ruamel.yaml.
- Fixed logging of error messages.
- Deprecated verify_ssl in favor of ssl_verify
- Validation to prevent uploading package with more than one type
- Using seconds on environment version
- Sending package_type field on upload
- Display correct file type when uploading
- Refactor of
data_dir
/data_path
function - Fixed token generation when server uses Kerberos authentication
- Using session to upload packages when the storage is in the same server as the API
- Fixed file uploads with special characters
- Fixed problems with pretty printing
- Removed from-channel and to-channel options from copy command
- Raise exception after logging error message when package upload fails
- Fixed installer detection
- Fixes to allow conda 3 to build
- Removed unused dependency
- Add
https://
to domain URL when is missing - Added
--platform
filter - Displaying build information on packages table
- Notebook validation on upload
- Warning message when token is about to expire
- Issue 398 - Trouble build 1.6.2 on Windows
- PR 390 - Send more package metadata when uploading a file
- PR 394 - Send metadata attributes when uploading a new release
- PR 395 - Switch from conda-kapsel to anaconda-project
- PR 402 - Allows to upload private packages
- PR 405 - Put some JSON in test notebook foo.ipynb
- PR 407 - Trying with conda.bat if conda.exe doesn't exists
- Issue 336 - anaconda download generates an error for notebook files
- Issue 153 - binstar package --list-collaborators option broken
In this release 2 issues were closed.
- PR 389 - Better error message for the server not found exception
- PR 386 - Fix/download non notebook files
In this release 2 pull requests were closed.
- Support reading package information from
about.json
instead ofrecipe.json
(@jjhelmus)
- Add trial license generation endpoint for registered users
- fix reading of conda root prefix on a detached environment in Python 3
anaconda config
should expand paths before reading them
anaconda config --set
should useBINSTAR_CONFIG_DIR
- Save
<host>.token
to the old directory, soconda
can read them
anaconda upload
will extract icons from conda packages- Added explicit license file
- Added some clarity on help file for -u switch (PR#360)
- Removed workaround for old requests versions
anaconda upload
would raise an exception if a file was interactively not overwritten (#364)
anaconda-client
will load configuration files with the extension.yaml
from the directories~/.continuum/anaconda-client
,/etc/anaconda-client
and$PREFIX/etc/anaconda-client
.
anaconda upload
learned to include whetherinfo/has_prefix
exists in a conda package as metadata (as true/false).anaconda upload
can upload projects with a kapsel.yml (for conda kapsel)
anaconda groups
subcommand had several bugs, and was difficult to use (#312)anaconda upload
will do the minimal amount of work to parse a conda package (@brentp) (#311)anaconda upload
had Unicode errors when dealing with Jupyter notebooks (#306)
BinstarClient.user_packages
learned argumentsplatform
,package_type
,type_
, andaccess
- Fix pip 8.1 issue with py27. #303
- Fix
anaconda copy
problem with labels. #304
notebook
subcommand is going to be deprecated. Showing deprecation warnings for now. #300anaconda upload
can upload notebooks with thumbnails. #300anaconda upload
can upload environments. #301- Fix/netrc auth. #298
- Fix OpenSSL issue. #297
- Improve performance when dealing with tar files. #293 (@brentp)
anaconda login
supports kerberos. #278- Typos. #284 (@barentsen) and #276
- Error when failing to delete data. #273
- Docs cleanup. #272
- Learned the
anaconda label
command and--label
arguments to replace the--channel
options andanaconda channel
command (#262) anaconda auth --remove
learned the--organization
argument to remove a token for an organization (#260)anaconda upload
can be told not to create packages automatically by setting the newauto_register
configuration option tono
(#270)- Learned to read an API token from the environment variable
ANACONDA_API_TOKEN
(#269) - Additional bug fixes (#204 #268 anaconda-graveyard/docs.anaconda.org#63)
- Produce warning about broken version of Requests with PyOpenSSL
- Fix issue with
anaconda download
when server uses file storage
- Fix issue with big packages #126
anaconda download
new subcommandanaconda upload
can upload notebooks- notebooks versions compatible with conda
- Pillow is no longer a hard dependency
- Support Jupyter
- Rename into anaconda-client #193
- Executable renamed into anaconda #193
- Remove duplicated changelog
- full rename into conda-server #187
- Replace error messages into warnings #188
- New entry point #186
- conda-server notebook include thumbnail
- versioneer
- renamed into conda-server
- binstar notebook upload/download
- Fix bug in collaborators list
- Fix unicode issues
- Fix remove token file from Windows environments
- Replace api.binstar.org for api.anaconda.org
- Added ability to upload ipython notebooks (*.ipynb files)
- Added ability to upload cas installers (*.sh files)
- Fixed issue with binstar-build - need to output to stdout at least every minute even with -q/--quiet option
- Misc fixes: typos, better error messages, etc.
- Use conda info attribute 'subdir' in preperation for noarch support