Releases: conda/conda
24.7.1
24.7.0
Enhancements
- Add a new
reporters
setting for configuring output. (#13736) - Report traceback of plugin loading errors with verbosity 2 or higher (
-vv
or more). (#13742 via #13846) - Skip checking for
.pyc
and.pyo
files in theconda doctor
"missing files" health check. (#13370 via #13931) - Breaking change
conda list --explicit
will not print authentication details by default. A new flag--auth
has been added so folks can opt-in to this behaviour. (#13936) - Print transaction report for
@EXPLICIT
lockfile installs too. (#13940) - Do not require
-n/--name
or-p/--prefix
ifconda create
is invoked with--dry-run
. (#13941) - Add an
envvars_force_uppercase
setting which defaults toTrue
, uppercasing all environment variables (thereby justifyingconda
's current behaviour); whenenvvars_force_uppercase
is set toFalse
, conda will only save preserved-case variable names. (#13713 via #13943) - Alias
conda env list
command toconda info --envs
. (#13972)
Bug fixes
- Improve treatment of logger levels. (#13735)
- Mask authentication details in
conda-meta/*.json
metadata. (#13937) - Mask Anaconda.org tokens in verbose logs. (#13939, #13987)
- Fix parsing error when history file only contains a single commented line. (#13960)
- Add missing
emscripten
andwasi
entries to the recognized platforms, andwasm32
to the recognized architectures. (#13095) - Fix checksum comparisons in
conda.gateways.connection.download.download()
to be case insensitive. (#13969) - Disallow some more characters in Windows for prefix names (
^
,%
,!
,=
,(
,)
,\
). These characters complicate or prevent environment activation if present. (#12558 via #13975) - Fix caching when
repodata.json
contains\r\n
line endings. (#14002 via #14003) - Fix
conda.core.portability.binary_replace
not matching chunks that end with\n
. (#14043 via #14044)
Deprecations
- Mark
conda.gateways.logging.initialize_root_logger
as pending deprecation. (#13735, #14046) - Mark
conda.cli.main_env_list.execute
as pending deprecation. Useconda.cli.main_info.execute
instead. (#13972) - Revert
--all
deprecation inconda info
. (#14004) - Mark
conda.exports.iteritems
as pending deprecation. Use builtindict.items()
instead. (#14034) - Mark
conda.exports.Completer
as pending deprecation. (#14034) - Mark
conda.exports.InstalledPackages
as pending deprecation. (#14034) - Mark
conda.exports.KEYS
as pending deprecation. (#14034) - Mark
conda.exports.KEYS_DIR
as pending deprecation. (#14034) - Mark
conda.exports.hash_file
as pending deprecation. (#14034) - Mark
conda.exports.verify
as pending deprecation. (#14034) - Mark
conda.exports.symlink_conda
as pending deprecation. Useconda.activate
instead. (#14034) - Mark
conda.exports._symlink_conda_hlp
as pending deprecation. Useconda.activate
instead. (#14034) - Mark
conda.exports.win_conda_bat_redirect
as pending deprecation. Useconda.activate
instead. (#14034) - Mark
conda.utils.win_path_to_cygwin
as pending deprecation. Useconda.common.path.win_path_to_unix
instead. (#14034) - Mark
conda.utils.cygwin_path_to_win
as pending deprecation. Useconda.utils.unix_path_to_win
instead. (#14034) - Mark
conda.utils.translate_stream
as pending deprecation. (#14034) - Mark
conda.utils.unix_shell_base
as pending deprecation. Useconda.activate
instead. (#14034) - Mark
conda.utils.msys2_shell_base
as pending deprecation. Useconda.activate
instead. (#14034) - Mark
conda.utils.shells
as pending deprecation. Useconda.activate
instead. (#14034)
Docs
- Clarify proxy server configuration in documentation. (#12856)
- Add type hints and doc strings to
conda.core.envs_manager
. (#13817) - Add logging overview as deep-dive. (#13735)
- Update conda cheatsheet text and add it directly to cheatsheet page. (#13889)
- Add cheatsheet PDF download to cheatsheet page. (#13909)
- Add
ssl_verify: truststore
to the user guide. (#13935) - Fix the help text of the
satisfied-skip-solve
flag. (#13946) - Add a section explaining how to correctly raise exceptions from a plugin. (#13741 via #13950)
- Add new article for configuring
envs_dirs
andpkgs_dirs
. (#13954)
Other
- Replace calls to
logger.warn
withlogger.warning
. (#13963)
Contributors
- @beeankha
- @conda-bot
- @erik-whiting made their first contribution in #13877
- @ifitchet
- @jaimergp
- @jezdez
- @kathatherine
- @kelvinou01 made their first contribution in #14044
- @kenodegard
- @zklaus
- @ForgottenProgramme
- @Nathann03
- @zeehio
- @skupr-anaconda made their first contribution in #13946
- @tl-hbk
- @DerThorsten made their first contribution in #13962
- @travishathaway
- @dependabot[bot]
- @padeoe made their first contribution in #12856
- @pre-commit-ci[bot]
Full Changelog: 24.5.0...24.7.0
24.5.0
Enhancements
- Report which
MatchSpec
item causedInvalid*Spec
exceptions for more informative error messages. (#11203 via #13598) - MSYS2 packages can now use the upstream installation prefixes. (#13649)
- Add support for CEP-15
base_url
field inrepodata.json
. (#13137 via #13744) - In custom channel settings, allow specification of channel URLs using a glob-like wildcard pattern, e.g. for user with auth handler plugins. (#13778 via #13779)
Bug fixes
- Fix
conda notices --json
to correctly output JSON. (#13561) - Fix prefix replacement for Windows
subdir
on Unix. (#13689)
Deprecations
- Mark
conda.plan._get_best_prec_match
as pending deprecation. Useconda.misc._get_best_prec_match
instead. (#12421) - Mark
conda.plan._handle_menuinst
as pending deprecation. (#12421) - Mark
conda.plan._inject_UNLINKLINKTRANSACTION
as pending deprecation. (#12421) - Mark
conda.plan._plan_from_actions
as pending deprecation. (#12421) - Mark
conda.plan.add_defaults_to_specs
as pending deprecation. (#12421) - Mark
conda.plan.add_unlink
as pending deprecation. (#12421) - Mark
conda.plan.display_actions
as pending deprecation. (#12421) - Mark
conda.plan.execute_actions
as pending deprecation. (#12421) - Mark
conda.plan.get_blank_actions
as pending deprecation. (#12421) - Mark
conda.plan.install_actions
as pending deprecation. (#12421) - Mark
conda.plan.print_dists
as pending deprecation. (#12421) - Mark
conda.plan.revert_actions
as pending deprecation. Useconda.cli.install.revert_actions
instead. (#12421) - Mark
conda.plan
as an entrypoint as pending deprecation. (#12421) - Mark
conda.activate._Activator.add_export_unset_vars
as pending deprecation. Useconda.activate._Activator.get_export_unset_vars
instead. (#13720) - Mark
conda.activate._Activator.get_scripts_export_unset_vars
as pending deprecation. Useget_scripts_export_unset_vars
helper function intest_activate.py
instead. (#13720) - Mark
conda.activate._Activator._get_path_dirs(extra_library_bin)
as pending deprecation. (#13720) - Mark
conda.activate.JSONFormatMixin.get_scripts_export_unset_vars
as pending deprecation. Useconda.activate._Activator.get_export_unset_vars
instead. (#13720) - Mark
conda.gateways.logging.trace
as pending deprecation. UseLogger.log(conda.common.constants.TRACE, msg)
instead. (#13732) - Mark
conda create --mkdir
as pending deprecation. The argument is redundant and unnecessary. (#13751) - Mark
conda install --mkdir
as pending deprecation. Useconda create
instead. (#13751) - Mark
conda._vendor.frozendict
as pending deprecation. Usefrozendict
instead. (#13767 via #13766) - Mark
conda.auxlib.collection.make_immutable
as pending deprecation. Usefrozendict.deepfreeze
instead. (#13801) - Mark
conda.plan.execute_plan
as pending deprecation. (#13869) - Mark
conda.plan.execute_instructions
as pending deprecation. (#13869) - Mark
conda.plan._update_old_plan
as pending deprecation. (#13869)
Docs
- Add type hints and doc strings to
conda.core.index
. (#13816)
Other
- Remove
setuptools
remainings (MANIFEST.in
,wheel
build dependency) not required since the move tohatch
in #12509. (#13684) - Remove and update any imports inside conda that is importing from
conda/exports.py
. (#13869)
Contributors
- @beeankha
- @conda-bot
- @dbast
- @ifitchet made their first contribution in #13649
- @isuruf
- @jaimergp
- @jezdez
- @kenodegard
- @zklaus
- @ForgottenProgramme
- @mattkram
- @Nathann03 made their first contribution in #13816
- @dwr-psandhu made their first contribution in #13770
- @travishathaway
- @dependabot[bot]
- @pre-commit-ci[bot]
Full Changelog: 24.4.0...24.5.0
24.4.0
24.3.0
Enhancements
- Show first few characters of undecodeable response if
repodata.json
raises
JSONDecodeError
. (#11804) - Update
conda.gateways.subprocess.subprocess_call
to usetext=True
to avoid manual encoding/decoding. (#13240) - Add a new plugin hook giving plugin authors the ability to define new settings. (#13554)
- Optimize module imports to speed up
conda activate
. (#13567 via #13568) - Move
conda env export
toconda export
and alias the old command to the new command. (#13577) - Report progress while running
conda install --revision <idx>
. (#13611) - Add
conda.testing.tmp_channel
pytest fixture to create a temporary local channel for testing. (#13634)
Bug fixes
- Print traceback on
KeyboardInterrupt
instead of raising anotherAttributeError
exception, when conda debugging logs are enabled. (#13531) - Parse integer channel notice IDs as
str
instead of raising an exception. (#13543) - Add direct runtime dependency on
zstandard
for use when downloadingrepodata.json.zst
. (#13551) - Fallback to
repodata.json
ifrepodata.json.zst
cannot be decompressed aszstandard
. (#13558) conda rename
command no longer throws an error when conda is not active. (#13565)- Fallback to
repodata.json
fromrepodata.json.zst
on most 4xx error codes. (#13573) - Fix excess resource usage by log handling when fetching repodata. (#13541 via #13628)
- Re-enable
--subdir
and--platform
flags to be available forconda env create
command. (#13632) - Fix
__archspec
virtual package on Windows to return microarchitecture instead of the defaultx86_64
. (#13641) - Check
Content-Length
is nonzero before calculating progress, avoiding a possibleZeroDivisionError
. (#13653, #13671)
Deprecations
- Discontinue custom docker images. Use images provided by Anaconda Inc. or conda-forge instead. (#13162)
- Mark
conda.common.compat.encode_arguments
as pending deprecation. (#13240) - Remove
conda.export.handle_proxy_407
. (#13629) - Mark
conda.testing.integration.make_temp_channel
as pending deprecation. Useconda.testing.tmp_channel
fixture instead. (#13634) - Mark
conda.testing.integration.running_a_python_capable_of_unicode_subprocessing
as pending deprecation. (#13634) - Mark
conda.testing.integration.set_tmpdir
as pending deprecation. Usetmp_path
,conda.testing.path_factory
, orconda.testing.tmp_env
instead. (#13634) - Mark
conda.testing.integration._get_temp_prefix
as pending deprecation. Usetmp_path
,conda.testing.path_factory
, orconda.testing.tmp_env
instead. (#13634) - Mark
conda.testing.integration.make_temp_prefix
as pending deprecation. Usetmp_path
,conda.testing.path_factory
, orconda.testing.tmp_env
instead. (#13634) - Mark
conda.testing.integration.FORCE_temp_prefix
as pending deprecation. Usetmp_path
,conda.testing.path_factory
, orconda.testing.tmp_env
instead. (#13634) - Mark
conda.testing.integration.create_temp_location
as pending deprecation. Usetmp_path
orconda.testing.path_factory
instead. (#13634) - Mark
conda.testing.integration.tempdir
as pending deprecation. Usetmp_path
orconda.testing.path_factory
instead. (#13634) - Mark
conda.testing.integration.reload_config
as pending deprecation. Useconda.base.context.reset_context
instead. (#13634) - Postpone
conda.base.context.Context.conda_exe
deprecation toconda 24.9
. (#13634) - Postpone
conda.testing.integration.run_command
deprecation toconda 25.3
. (#13634) - Postpone loading subcommands from executables deprecation to
conda 25.3
. (#13634) - Remove vendored
conda._vendor.boltons
. Useboltons
package instead. (#12681 via #13634) - Remove
conda.auxlib.packaging
. Use a modern build system instead; see https://packaging.python.org/en/latest/tutorials/packaging-projects#creating-pyproject-toml for more details. (#12681 via #13634) - Remove
conda env create --force
. Useconda env create --yes
instead. (#12681 via #13634) - Remove
conda info PACKAGE
. Useconda search PACKAGE --info
instead. (#12681 via #13634) - Remove
conda.core.subdir_data.fetch_repodata_remote_request
. Useconda.core.subdir_data.SubdirData.repo_fetch.fetch_latest_parsed
instead." (#12681 via #13634) - Remove
conda.exports.memoized
. Usefunctools.lru_cache
instead. (#12681 via #13634) - Remove
conda.gateways.disk.read._digest_path
. Useconda.gateways.disk.read.compute_sum
instead. (#12681 via #13634) - Remove
conda.gateways.disk.read.compute_md5sum
. Useconda.gateways.disk.read.compute_sum(path, "md5")
instead. (#12681 via #13634) - Remove
conda.gateways.disk.read.compute_sha256sum
. Useconda.gateways.disk.read.compute_sum(path, "sha256")
instead. (#12681 via #13634) - Remove
conda.instructions.PREFIX
. (#12681 via #13634) - Remove
conda.instructions.PREFIX_CMD
. (#12681 via #13634) - Remove
conda.testing.encode_for_env_var
. (#12681 via #13634) - Remove
conda.testing.conda_check_versions_aligned
. (#12681 via #13634) - Remove
conda.testing.helpers.run_inprocess_conda_command
. Useconda.testing.tmp_env
instead. (#12681 via #13634) - Remove
conda.testing.helpers.capture_json_with_argv
. (#12681 via #13634) - Remove
conda.testing.integration.get_conda_list_tuple
. Useconda.core.prefix_data.PrefixData.get
instead. (#12681 via #13634) - Remove
conda.utils.md5_file
. Useconda.gateways.disk.read.compute_sum(path, "md5")
instead. (#12681 via #13634) - Remove
conda.utils.hashsum_file
. Useconda.gateways.disk.read.compute_sum
instead. (#12681 via #13634) - Remove
conda.utils.safe_open
. Useopen
instead. (#12681 via #13634) - Remove
python -m conda_env
. Useconda env
orpython -m conda env
instead. (#12681 via #13634) - Remove
conda_env.env.load_from_directory
. (#12681 via #13634) - Remove
conda_env.pip_util.get_pip_version
. (#12681 via #13634) - Remove
conda_env.pip_util.PipPackage
. (#12681 via #13634) - Remove
conda_env.pip_util.installed
. (#12681 via #13634) - Remove
conda_env.pip_util._canonicalize_name
. (#12681 via #13634) - Remove
conda_env.pip_util.add_pip_installed
. (#12681 via #13634)
Docs
- Update the navigation links for Miniconda. (#13572)
Other
- Remove
dev/*
scripts in favor ofconda-incubator/setup-miniconda
GitHub Action in.github/workflows/tests.yml
. (#13162) - Stop chaining commands for steps in
.github/workflows/tests.yml
. (#12418 via #13162) - Modernize tests. (#13547, #13292)
- Run GitHub tests workflow also on
osx-arm64
(aka Apple Silicon) runners. Enableosx-arm64
canary builds. Fix or disable broken tests. (#13617) - Upload stable release artifacts to GitHub releases during releases. (#13399)
Contributors
- @beeankha
- @conda-bot
- @dbast
- @dholth
- @FFY00
- @isuruf
- @jaimergp
- @jezdez
- @jjhelmus
- @kenodegard
- @zklaus made their first contribution in #13579
- @ForgottenProgramme
- @mbargull
- @travishathaway
- @pre-commit-ci[bot]
Full Changelog: 24.1.2...24.3.0
24.1.2
Bug fixes
- Fix deprecated
fetch_repodata_remote_request
whenrepodata_use_zst
is enabled. (#13595)
Contributors
Full Changelog: 24.1.1...24.1.2
24.1.1
Bug fixes
- Fallback to
repodata.json
ifrepodata.json.zst
cannot be decompressed as zstandard. (#13558) - Fallback to
repodata.json
fromrepodata.json.zst
on most 4xx error codes. (#13573)
Contributors
Full Changelog: 24.1.0...24.1.1
24.1.0
Special announcement
♻️ The conda_env.*
modules have been merged into the conda
package!
To improve the integration of the conda env
subcommand (previously standalone), we've moved its code into the conda
package, while allowing old conda env
commands to still work via Python import redirects. This is a first step of many to improving the user experience of the conda command line interface related to environment management. (#13168)
Enhancements
- Verify signatures on to-be-installed packages instead of on all packages. (#11545, #13053)
- Add new
pre-solves
andpost-solves
plugin hooks. (#13053) - Add support for Python 3.12. (#13072)
- Check
repodata.json.zst
for faster repodata downloads. (#13256) - Add
--skip-flexible-search
option inconda search
to skip flexible search. (#13315) - Provide a more useful warning when attempting to rename a non-existent prefix. (#13387)
- Add a new flag
--keep-env
to be used withconda remove --all
. It allows users to delete all packages in the environment while retaining the environment itself. (#13419) - Add a Y/N prompt warning users that
conda env remove
andconda remove --all
deletes not only the conda packages but the entirety of the specified environment. (#13440) - Add
--repodata-use-zst/--no-repodata-use-zst
flag to controlrepodata.json.zst
check; correspondingrepodata_use_zst: true/false
for.condarc
. Default is to check forrepodata.json.zst
. Disable if remote returns unparseablerepodata.json.zst
instead of correct data or 404. (#13504)
Bug fixes
- Create the
~/.conda
directory before trying to write to theenvironments.txt
file. (#13338) - Ensure
PackageRecord.timestamp
is dumped in milliseconds. (#13483) - Fix error when setting a non-default repodata filename via
CONDA_REPODATA_FNS
. (#13490) - Fix the config file location where the integrated Anaconda client gateway loads user configuration from. This is a regression introduced in conda 23.11.0 when the
platformdirs
library was adopted. (#13517 via #13520) - Interpret missing
Cache-Control
header asmax-age=0
instead of exception. (#13522)
Deprecations
- Mark
conda_env/cli/common
as pending deprecation. Useconda.cli.common
instead. (#13168) - Mark
conda_env/cli/main_config
as pending deprecation. Useconda.cli.main_env_config
instead. (#13168) - Mark
conda_env/cli/main_create
as pending deprecation. Useconda.cli.main_env_create
instead. (#13168) - Mark
conda_env/cli/main_export
as pending deprecation. Useconda.cli.main_env_export
instead. (#13168) - Mark
conda_env/cli/main_list
as pending deprecation. Useconda.cli.main_env_list
instead. (#13168) - Mark
conda_env/cli/main_remove
as pending deprecation. Useconda.cli.main_env_remove
instead. (#13168) - Mark
conda_env/cli/main_update
as pending deprecation. Useconda.cli.main_env_update
instead. (#13168) - Mark
conda_env/cli/main_vars
as pending deprecation. Useconda.cli.main_env_vars
instead. (#13168) - Mark
conda_env/env
as pending deprecation. Useconda.env.env
instead. (#13168) - Mark
conda_env/installers/base
as pending deprecation. Useconda.env.installers.base
instead. (#13168) - Mark
conda_env/installers/conda
as pending deprecation. Useconda.env.installers.conda
instead. (#13168) - Mark
conda_env/installers/pip
as pending deprecation. Useconda.env.installers.pip
instead. (#13168) - Mark
conda_env/pip_util
as pending deprecation. Useconda.env.pip_util
instead. (#13168) - Mark
conda_env/specs
as pending deprecation. Useconda.env.specs
instead. (#13168) - Mark
conda_env/specs/binstar
as pending deprecation. Useconda.env.specs.binstar
instead. (#13168) - Mark
conda_env/specs/requirements
as pending deprecation. Useconda.env.specs.requirements
instead. (#13168) - Mark
conda_env/specs/yaml_file
as pending deprecation. Useconda.env.specs.yaml_file
instead. (#13168) - Mark
conda.testing.integration.make_temp_package_cache
as pending deprecation. (#13511)
Docs
- Update Getting Started documentation in User Guide. (#13190)
- Add GoatCounter (https://www.goatcounter.com/) as an analytics tool. (#13384)
- Add type hints and doc strings to
conda.cli.main_info
. (#13445) - Add type hints and doc strings to
conda.cli.main_search
. (#13465)
Other
- Add type hinting for
VersionOrder
class. (#13380) - Re-enable and apply
pyupgrade
viaruff
. (#13272, #13433) - Start tracking performance in continuous integration and automatically report about it in pull requests. (#13460)
- Add
tmp_pkgs_dir
fixture to replacemake_temp_package_cache
. (#13511) - Improve lock API for the repodata cache. (#13455)
Contributors
- @beeankha
- @conda-bot
- @dbast
- @dholth
- @jaimergp
- @jezdez
- @johnnynunez
- @kathatherine
- @kenodegard
- @ForgottenProgramme
- @marcoesters
- @mfansler
- @schuylermartin45 made their first contribution in #13385
- @travishathaway
- @pre-commit-ci[bot]
- @samhaese made their first contribution in #13465
Full Changelog: 23.11.0...24.1.0
23.11.0
Special announcement
New menuinst
v2 support!
conda
has supported Start menu items on Windows for a long time. This is what allows users to open up their Miniconda prompt on CMD (Command Prompt) with an initialized conda
session. This menu item (or shortcut) creation logic is provided by the menuinst
package.
With the release of 23.11.0, conda
now supports menuinst
v2, which enables the same experience across Windows, Linux, and macOS. This means package builders will be able to provide desktop icons across all operating systems, which can be especially useful for GUI applications. See the documentation for more details.
If you don't want conda
to create shortcuts, you can disable it via:
shortcuts: false
entry in your.condarc
configurationCONDA_SHORTCUTS=false
environment variable--no-shortcuts
command-line flag
Enhancements
- Add support for
menuinst
v2, enabling shortcuts across all platforms (Windows, Linux, macOS) using a new JSON schema (see CEP-11). Retain support for old v1-style JSON menus. (#11882) - Stop using vendored
chardet
package byrequests
/pip
; explicitly depend oncharset_normalizer
. (#13171) - Introduce a new plugin hook,
CondaHealthCheck
, as part ofconda doctor
. (#13186) - Include
activate
anddeactivate
in the--help
command list. (#13191) - Prioritize download of larger packages to prevent smaller ones from waiting. (#13248)
- Display the used solver in
conda info
output for debugging purposes. (#13265) - Add
__conda
virtual package. (#13266) - Switch from
appdirs
toplatformdirs
. (#13306) - Implement resume capability for interrupted package downloads. (#8695)
Bug fixes
- Log expected JLAP range-request errors at
info
level, occurring when the remote file has rolled over. (#12913) - Fix a bug causing an error when options like
--debug
are used without specifying a command. (#13232) - Improve CTRL-C (cancellation) handling for parallel download threads. (#13234)
- Allow overriding of
CONDA_FETCH_THREADS
/fetch_threads
to set parallel package downloads beyond the default5
. (#13263) - Require
requests >=2.28
for enhancedresponse.json()
exception handling. (#13346) - Apply
callback=reset_context
inconda.plan
to resolveconda-build
+conda-libmamba-solver
incompatibilities. (conda-libmamba-solver#393 and conda-libmamba-solver#386 via #13357)
Deprecations
- Deprecate
conda.plugins.subcommands.doctor.health_checks.display_health_checks
function. (#13186) - Deprecate
conda.plugins.subcommands.doctor.health_checks.display_report_heading
function. (#13186) - Remove
ruamel_yaml
fallback; useruamel.yaml
exclusively. (#13218) - Deprecate
conda.gateways.anaconda_client.EnvAppDirs
in favor ofplatformdirs
. (#13306) - Mark
conda._vendor.cpuinfo
for pending deprecation. (#13313) - Deprecate
conda._vendor.distro
in favor of thedistro
package. (#13317)
Docs
- Add the
conda-sphinx-theme
to the conda documentation. (#13298) - Update specific pages to remove redundant TOC entries. (#13298)
- Include instructions on updating
conda
in the mainREADME.md
. (#13343)
Other
- Add a lighter weight s3 test; update embedded test package index. (#13085)
- Refactor code to use lazy imports for all relative imports in
conda.cli.main_*
, and separate argparse configuration functions fromconda.cli.conda_argparse
to their respectiveconda.cli.main_*
modules. (#13173) - Move custom
argparse.Actions
toconda.cli.actions
(e.g.,NullCountAction
), and relocate helper argparse functions toconda.cli.helpers
(e.g.,add_parser_prefix
). (#13173) - Update upper bound for
ruamel.yaml
to<0.19
following the release of0.18
. (#13258) - Replace
black
withruff format
in pre-commit. (#13272)
Contributors
- @AniketP04 made their first contribution in #13224
- @beeankha
- @13rac1 made their first contribution in #13191
- @conda-bot
- @dholth
- @eltociear
- @jaimergp
- @jezdez
- @kathatherine
- @kenodegard
- @kennethlaskoski made their first contribution in #13322
- @ForgottenProgramme
- @marcoesters
- @opoplawski
- @scruel made their first contribution in #13274
- @travishathaway
- @gfggithubleet made their first contribution in #13270
- @pre-commit-ci[bot]
Full Changelog: 23.10.0...23.11.0
23.10.0
✨ Special announcement ✨
With this 23.10.0 release we are changing the default solver of conda to conda-libmamba-solver
! 🥳 🚀
The previously "classic" solver is based on pycosat/Picosat and will remain part of conda for the foreseeable future, a fallback is possible and available.
Why are we switching the solver?
In short: to make conda faster and more accurate.
A "solver" is the core component of most package managers; it calculates which dependencies (and which version of those dependencies) to install when a user requests to install a package from a package repository. To address growth-related challenges within the conda ecosystem, the conda maintainers, alongside partners Anaconda, Quansight and QuantStack, introduced a new conda dependency solver based on the Mamba project in December 2022.
Since July 2023, the conda-libmamba-solver
plugin has been included in all major conda ecosystem installers (miniforge, miniconda, mambaforge and Anaconda Distribution), but was disabled by default. As soon as these installers are updated to contain conda 23.10.0 or later, they will automatically default to using the conda-libmamba-solver plugin.
What can I do if this update doesn't work for me?
If the new solver is not working as you expect:
- Check if the behavior you are observing is a known issue or a deliberate change.
- If that's not the case, please consider submitting a bug report or feature request in the conda-libmamba-solver repository.
- If necessary, you can go back to using the
classic
solver without modifying your conda installation:- When possible, pass the command line option
--solver=classic
to yourconda
calls. - Otherwise (e.g. for
conda build ...
orconstructor ...
), set the environment variableCONDA_SOLVER=classic
. - For permanent changes, use the conda configuration system:
conda config --set solver classic
.
- When possible, pass the command line option
Where can I learn more about conda-libmamba-solver?
The documentation of the conda-libmamba-solver
plugin can be found on conda.github.io/conda-libmamba-solver.
For more information about the conda-libmamba-solver
rollout plan, please also see our blog post from earlier this year.
Changelog
Enhancements
- Provide
--platform
and--subdir
flags to create environments for non-native platforms, remembering that choice in future operations. (#11505 via #11794) - IMPORTANT: Set
solver: libmamba
as the new default solver. (#12984)
Bug fixes
- Check name of symlink, not its target against valid configuration file names (
condarc
,.condarc
, or*.yml/yaml
). (#12956) - Have
conda doctor
ignore blank lines in~/.conda/environments.txt
. (#12984)
Deprecations
- Mark
conda.cli.main.generate_parser
as pending deprecation. Useconda.cli.conda_argparse.generate_parser
instead. (#13144) - Mark
conda.auxlib.collection.firstitem
as pending deprecation. (#13144) - Mark
conda.auxlib.collection.call_each
as pending deprecation. (#13144) - Mark
conda.auxlib.compat.NoneType
as pending deprecation. (#13144) - Mark
conda.auxlib.compat.primative_types
as pending deprecation. (#13144) - Mark
conda.auxlib.compat.utf8_writer
as pending deprecation. (#13144) - Mark
conda.auxlib.exceptions.AuthenticationError
as pending deprecation. (#13144) - Mark
conda.auxlib.exceptions.NotFoundError
as pending deprecation. (#13144) - Mark
conda.auxlib.exceptions.InitializationError
as pending deprecation. (#13144) - Mark
conda.auxlib.exceptions.SenderError
as pending deprecation. (#13144) - Mark
conda.auxlib.exceptions.AssignmentError
as pending deprecation. (#13144) - Mark
conda.auxlib.type_coercion.boolify_truthy_string_ok
as pending deprecation. (#13144) - Mark
conda.auxlib.type_coercion.listify
as pending deprecation. (#13144) - Mark
conda.models.dist.IndexRecord
as pending deprecation for removal in 24.9. (#13193) - Mark
conda.exports.fetch_index
as pending deprecation for removal in 24.9. Useconda.core.index.fetch_index
instead. (#13194)
Other
- Constrain minimum conda-build version to
>=3.27
. (#13177)