Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: conda/conda

25.9.1

10 Oct 13:52
ed17a44

Choose a tag to compare

Bug fixes

  • Require conda-libmamba-solver >=25.4.0. (#15289)
  • Fix conda.models.environment.Environment.from_cli's spec grouping to correctly categorize @EXPLICIT URLs. (#15306 via #15309)

Contributors

Full Changelog: 25.9.0...25.9.1

25.9.0

30 Sep 07:44
0c9e27d

Choose a tag to compare

✨ Special Announcement ✨

Following feedback from conda users last year about the pre-configuration of the conda code base to favor channels from Anaconda Inc, we've finished removing hardcoding Anaconda's channels as the default set of channels in the conda source code.

It is now up to providers of the conda distributions, such as miniforge or Anaconda (including miniconda), to pre-configure their preferred channels, e.g. by running the necessary conda config --set channels command.

Enhancements

  • Add conda doctor check for if the pinned file is ill-formatted. (#7978 via #15022)
  • If an HTTP error response includes a field named detail, relay that as the error message. Stop uppercasing the error message. (#15021 via #15037)
  • Raise exceptions to prevent renaming or removing the environment specified by default_activation_env. (#15061)
  • Make conda list REGEX raise an exception with exit code 1 when the regular expression does not match any packages in the target environment. (#15074 via #15075)
  • Add a bytes cache to support sharded repodata. (#15083)
  • Add a "file locking" health check to conda doctor. (#13921 & #14948 via #15114)
  • Add a new environment spec plugin, called cep-24, that implements the environment.yml specification in CEP 24. This is enabled by default. (#15120)
  • Change the environment.yml plugin to be disabled by default. Users can explicitly use it by setting the --environment-specifier flag. (#15120)
  • Add conda.models.environment.Environment.extrapolate to extrapolate the environment for a different platform. (#15157 via #15183)
  • Add CondaEnvironmentExporter.multiplatform_export to support export formats with multiple platforms. (#15159 via #15253, #15261)
  • Update dev/start/dev\start.bat scripts to allow choosing between miniconda and miniforge installers via -i/--installer flag, installer_type in ~/.condarc configuration, or interactive prompt when not specified. (#15084 via #15163)
  • Report environments marked as frozen (CEP 22) with + in conda info --envs and conda env list. (#15213)

Bug fixes

  • Slash-normalize PrefixRecord.files entries on Windows to emit correct output for conda list in environments created by (micro)mamba. (#14523)
  • Silence error in fish when undefined environment variables are unset. (#14659 via #14660, #15102)
  • Fix validate_subdir_config cli validation -- only search config file context sources for subdir configuration. (#15020 via #15038)
  • Fix conda install/create/update commands to not ignore CLI arguments if an explicit package is specified to install. (#15028)
  • Override create_default_packages setting for specs originating from files. (#15041)
  • Don't install explicit packages if invoked with conda update. (#15044)
  • Update conda create --clone to disallow users to specify a --file CLI argument. (#15702 via #15073)
  • Ignore explicit packages specified in create_default_packages setting and provide a helpful warning message for the setting. (#15115)
  • Avoid triple-equals string exports when the MatchSpec.version field starts with a single equals. (#15123 via #15141)
  • Respect CONDA_PROTECT_FROZEN_ENVS environment variable in the absence of --override-frozen. (#15162)
  • Indicate that a dry run was performed and no changes were made when running conda init --dry-run. (#15097 via #15211)
  • Don't load the environment.yml environment as part of its can_handle function. Just verify if the plugin will be able to interpret the provided file. For the environment.yml plugin, it can read any .yml/.yaml file. (#15237)

Deprecations

  • Mark conda.cli.common.specs_from_url keyword argument json as pending deprecation, to be removed in 26.9. (#15028)
  • Mark re-exports from conda.plugins.types in conda.plugins as pending deprecation, to be removed in 26.9. Import from conda.plugins.types instead:
    • conda.plugins.CondaAuthHandlerconda.plugins.types.CondaAuthHandler
    • conda.plugins.CondaEnvironmentSpecifierconda.plugins.types.CondaEnvironmentSpecifier
    • conda.plugins.CondaHealthCheckconda.plugins.types.CondaHealthCheck
    • conda.plugins.CondaPostCommandconda.plugins.types.CondaPostCommand
    • conda.plugins.CondaPostSolveconda.plugins.types.CondaPostSolve
    • conda.plugins.CondaPostTransactionActionconda.plugins.types.CondaPostTransactionAction
    • conda.plugins.CondaPreCommandconda.plugins.types.CondaPreCommand
    • conda.plugins.CondaPrefixDataLoaderconda.plugins.types.CondaPrefixDataLoader
    • conda.plugins.CondaPreSolveconda.plugins.types.CondaPreSolve
    • conda.plugins.CondaPreTransactionActionconda.plugins.types.CondaPreTransactionAction
    • conda.plugins.CondaReporterBackendconda.plugins.types.CondaReporterBackend
    • conda.plugins.CondaRequestHeaderconda.plugins.types.CondaRequestHeader
    • conda.plugins.CondaSettingconda.plugins.types.CondaSetting
    • conda.plugins.CondaSolverconda.plugins.types.CondaSolver
    • conda.plugins.CondaSubcommandconda.plugins.types.CondaSubcommand
    • conda.plugins.CondaVirtualPackageconda.plugins.types.CondaVirtualPackage
  • Add deprecation warnings for invalid fields in environment.yml files. (#15120)
  • Mark conda.core.index.calculate_channel_urls as pending deprecation, to be removed in 26.9. Use conda.models.channel.all_channel_urls(conda.base.context.context.channels) instead. (#15173)
  • Stop implicitly adding the defaults channel to the channel list. (#15196)
  • Mark conda.core.index._supplement_index_with_system as pending deprecation, to be removed in 26.3.
  • Postpone conda.utils.unix_path_to_win deprecation to 26.3. Use conda.common.path.unix_path_to_win instead. (#15230)
  • Constrain minimum compatible conda-build version as >= 25.9 (#15235)
  • Mark conda.auxlib.compat.isiterable as pending deprecation, to be removed in 26.9. Use conda.common.compat.isiterable instead. (#15252)
  • Remove conda.activate._Activator.commands. Use conda commands instead. (#15179)
  • Remove conda.activate._Activator._parse_and_set_arts argument arguments. (#15179)
  • Remove conda.activate.ensure_binary. Use conda.common.compat.ensure_binary instead. (#15179)
  • Remove conda.activate.ensure_fs_path_encoding. (#15179)
  • Remove constants conda.activate._cygpath, conda.activate.native_path_to_unix, conda.activate.unix_path_to_native, conda.activate.path_identity. (#15179)
  • Remove conda.cli.common.confirm. Use conda.reporters.confirm_yn instead. (#15180)
  • Remove conda.cli.common.confirm_yn. Use conda.reporters.confirm_yn instead. (#15180)
  • Remove conda.cli.common.print_envs_list. Use conda.reporters.render(style='env_list') instead. (#15180)
  • Remove conda env create remote_definition argument. (#15181)
  • Remove conda env update remote_definition argument. (#15181)
  • Remove conda.env.specs.binstar.BinstarSpec class. (#15181)
  • Remove experimental Binstar environment spec plugin. (#15181)
  • Remove conda.cli.main_env_remove.execute.Use conda.cli.main_remove.execute instead. (#15182)
  • Remove conda.cli.install.validate_new_prefix. Use conda.cli.install.validate_new_prefix instead. (#15182)
  • Remove constant conda.exports.win_path_to_unix. (#15184)
  • Remove constant conda.exports.unix_path_to_win. (#15184)
  • Remove conda.exports.iteritems. Use builtin dict.items() instead. (#15184)
  • Remove unused class conda.exports.Completer. (#15184)
  • Remove unused class conda.exports.InstalledPackages. (#15184)
  • Remove constant conda.exports.move_to_trash. (#15184)
  • Remove constant conda.exports.KEYS. (#15184)
  • Remove constant conda.exports.KEYS_DIR. (#15184)
  • Remove unused method conda.exports.verify. (#15184)
  • Remove conda.exports.symlink_conda. Use conda.activate instead. (#15184)
  • Remove conda.exports._symlink_conda_help. Use conda.activate instead. (#15184)
  • Remove conda.exports.win_conda_bat_redirect. Use conda.activate instead. (#15184)
  • Remove constants conda.testing.CondaCLIFixture, conda.testing.conda_cli, conda.testing.PathFactoryFixture, conda.testing.path_factory, conda.testing.TmpEnvFixture, conda.testing.tmp_env, conda.testing.TmpChannelFixture, conda.testing.tmp_channel, conda.testing.context_aware_monkeypatch, conda.testing.tmp_pkgs_dir, conda.testing.tmp_envs_dir. (#15185)
  • Remove constant conda.testing.integration.BIN_DIRECTORY. (#15185)
  • Remove conda.misc.rel_path. (#15190)
  • Remove argument index_args conda.misc.explicit. (#15190)
  • Remove constant conda.utils.path_identity. Use conda.common.path.path_identity instead. (#15191)
  • Remove conda.utils.win_path_to_cygwin. Use conda.common.path.win_path_to_cygwin instead. (#15191)
  • Remove conda.utils.translate_stream. (#15191)
  • Remove constant conda.utils._UNIX_SHELL_BASE. Use conda.activate instead. (#15191)
  • Remove constant conda.utils._MSYS2_SHELL_BASE. Use conda.activate instead. (#15191)
  • Remove constant conda.utils._SHELLS. Use conda.activate instead. (#15191)
  • Remove free channel from channel configuration. (#15195)
  • Remove deprecated property conda.base.context.restore_free_channel. (#15195)
  • Remove field conda.base.context._restore_free_channel. (#15195)
  • Remove deprecation warning conda.base.context._warn_defaults_deprecation. (#15196)
  • Remove deprecated module conda.cli.python_api. (#15219)
  • Remove deprecated module conda.common.disk. (#15219)
  • Remove deprecated constant FILESYSTEM_ENCODING from conda.common.compat. (#15220)
  • Remove deprecated function open from conda.common.compat. Use conda.common.compat.open_utf8 instead. (#15220)
  • Remove deprecated function six_with_metaclass...
Read more

25.7.0

04 Aug 14:05
6614653

Choose a tag to compare

25.7.0 (2025-08-01)

Enhancements

  • Ensure conda does not allow for mixing input file types. (#14684 via #14725)
  • Add "environment consistency" health check to conda doctor. (#14715 via #14799)
  • Add support for explicit environment specification files as a supported environment spec according to CEP-23, bringing parity between conda env and conda create/install/update. (#14820)
  • Add an experimental data model to represent an environment. (#14870)
  • Add config option environment_specifier and CLI argument (--environment-specifier, --env-spec) to allow users to select which environment specifier plugin to use. (#14877)
  • Enhance conda export command now supports plugin-based architecture with multiple output formats:
    • environment-yaml (cross-platform YAML, default format)
    • environment-json (cross-platform JSON for programmatic use)
    • explicit (CEP 23 compliant explicit URLs for exact reproduction)
    • requirements (MatchSpec-based requirements format) (#14886)
  • Add automatic export format detection based on filename patterns (e.g., environment.yaml, explicit.txt, requirements.txt) (#14886)
  • Add export format aliases for convenience (yaml, yml, json, reqs, txt) (#14886)
  • Introduce new dataclass conda.models.environment.EnvironmentConfig to represent Environment settings, a subset of context settings that impact environment creation and management. (#14913, #15026)
  • Allow env spec plugins to opt-out of auto detection. (#14914)
  • Handle exceptions coming from environment spec plugins can_handle functions. (#14916)
  • The conda package is included when cloning an environment. (#14917 via #14919)
  • Lazily evaluate CLI options originating from the plugin manager. (#14925)
  • Improve the error message that appears when duplicate records are found in the prefix. (#14927)
  • Add virtual packages field to the Environment model. (#14979)
  • Add ability to create EnvironmentConfig instances from a given context. (#14986)
  • Add CondaPlugin base class with name normalization. (#15002)
  • Enhance LazyChoicesAction with dynamic choices property and caching for improved CLI argument validation and help text generation. (#15046)

Bug fixes

  • Set default value for version parameter when build is set in MatchSpec.conda_build_form(). (#11200 via #15025)
  • Improve conda notices cache handling for better user experience. (#14229)
  • Improve type hints and error handling in conda installer functions. (#14820)
  • Fix conda export --override-channels behavior to properly include installed packages' channels (unless --ignore-channels is also provided), restoring the original intended functionality and improving environment reproducibility. (#15048 via #14886)
  • Fix tmp_channel fixture to also include dependencies in the temporary channel. (#14924)
  • Fix unsetting environment variables when envvars_force_uppercase = False. (#14934 via #14942)
  • Respect --platform option on subsequent environment operations after initial conda env create call. (#14949 via #14956)
  • Apply case normalization to all activation environment variables. (#14960)
  • Separate requirements.txt and explicit environment specs. (#14684 via #14963)
  • Fix EnvironmentConfig.aggressive_update_packages type. It is a list of strings, not a bool. (#14982)
  • Fix EnvironmentConfig.channel_settings type. It is a list of dicts, not a dict. (#14984)
  • Ensure file types can not be mixed in the conda install command. (#14999)
  • ProxyError now accepts an optional custom message parameter to provide more specific error details. (#14945)

Deprecations

  • Mark monkey-patching json to support frozendict and obj.to_json() as pending deprecation, to be removed in 26.9. Use conda.common.serialize.json.CondaJSONEncoder instead. (#14709)
  • Mark conda.auxlib.entity.EntityEncoder as pending deprecation, to be removed in 26.9. Use conda.common.serialize.json.CondaJSONEncoder instead. (#14709)
  • Mark conda.auxlib.logz.DumpEncoder as pending deprecation, to be removed in 26.9. Use conda.common.serialize.json.CondaJSONEncoder instead. (#14709)
  • Mark conda.auxlib.logz._DUMPS as pending deprecation, to be removed in 26.9. Use conda.common.serialize.json.CondaJSONEncoder(sort_keys=True).encode instead. (#14709)
  • Mark conda.auxlib.logz.jsondumps as pending deprecation, to be removed in 26.9. Use conda.common.serialize.json.CondaJSONEncoder(sort_keys=True).encode instead. (#14709)
  • Mark conda.common.serialize.EntityEncoder as pending deprecation, to be removed in 26.9. Use conda.common.serialize.json.CondaJSONEncoder instead. (#14709)
  • Mark conda.common.serialize.json_load as pending deprecation, to be removed in 26.9. Use conda.common.serialize.json.loads(sort_keys=True) instead. (#14709)
  • Mark conda.common.serialize.json_dump as pending deprecation, to be removed in 26.9. Use conda.common.serialize.json.dumps(sort_keys=True) instead. (#14709)
  • Mark conda.exports.EntityEncoder as pending deprecation, to be removed in 26.9. Use conda.common.serialize.json.CondaJSONEncoder instead. (#14709)
  • Mark conda.env.specs.binstar.BinstarSpec.environment as pending deprecation in 26.9. Use conda.env.specs.binstar.BinstarSpec.env instead. (#14397)
  • Mark conda.env.specs.requirements.RequirementsSpec.environment as pending deprecation in 26.9. Use conda.env.specs.requirements.RequirementsSpec.env instead. (#14397)
  • Mark conda.env.specs.yaml_file.YamlFileSpec.environment as pending deprecation in 26.9. Use conda.env.specs.yaml_file.YamlFileSpec.env instead. (#14397)
  • Mark conda.env.env.Environment as pending deprecation in 26.9. Use conda.env.env.EnvironmentYaml instead. (#14981)
  • Mark conda.cli.common.arg2spec as pending deprecation, to be removed in 26.9. (#15028)
  • Mark conda.cli.common.specs_from_args keyword argument json as pending deprecation, to be removed in 26.9. (#15028)
  • Mark conda.gateways.disk.create.create_application_entry_point as pending deprecation, to be removed in 26.9. (#15062)
  • Mark conda.gateways.disk.create.ProgressFileWrapper as pending deprecation, to be removed in 26.9. (#15062)
  • Mark conda.gateways.disk.create.create_fake_executable_softlink as pending deprecation, to be removed in 26.9. (#15062)
  • Postpone conda.env.specs.binstar deprecation to 26.9. (#15062)

Docs

  • Add documentation for conda export command with examples and format specifications. (#14886)
  • Add environment exporter plugin development guide with examples and best practices. (#14886)
  • Update environment management documentation to highlight new export capabilities. (#14886)
  • Update cheatsheet with new export formats and commands. (#14886)
  • Enhance command comparison table to include new export functionality. (#14886)
  • Add glossary entries for CEP 23, environment exporters, explicit format, and requirements format. (#14886)
  • Add note about enhanced conda export functionality alongside existing conda env export. (#14886)
  • Add docs about environment spec plugin detection. (#14918)
  • No longer claim that noarch/repodata.json.bz2 is required. Conda has not used repodata.json.bz2 for years. (#14965)

Other

  • Delay environment activation in dev setup to avoid issues when default_activation_env is set. (#14910)
  • Environment Spec plugins should return an Environment model. (#14937)
  • EnvironmentConfig lists of values should be tuples. (#15000)
  • Avoid modifying tests/env/support in test suite and confusing subsequent test runs. (#15011)
  • Remove unused import of deprecated DumpEncoder. (#15015)

Contributors

25.5.1

05 Jun 15:24
5dae0ef

Choose a tag to compare

25.5.1 (2025-06-05)

Bug fixes

  • Allow conda config commands to process aliased settings names by forwarding them to the canonical name (e.g. self_update -> auto_update_conda). (#14899 via #14898)

Docs

  • Mark environment spec hooks and types as experimental (#14900)

Contributors

25.5.0

22 May 08:00
7c3c098

Choose a tag to compare

25.5.0 (2025-05-21)

Enhancements

  • Add the ability to define pre- and post-transaction hooks. (#14754)
  • Adds support for showing and manipulating settings registered via the settings plugin hook to conda config. (#13661 via #14510)
  • Raise conda.exceptions.OfflineError instead of generic RuntimeError when --offline is used for better error handling. (#14664 via #14665)
  • Add context.default_activation_env setting, which allows users to customize which environment should get auto activated on initialization (if context.auto_activate is enabled), as well as conda activate calls without arguments. Defaults to base. (#14666)
  • Provide conda init --condabin, which only adds the $CONDA_PREFIX/condabin directory to the PATH environment variable instead of installing a shell function. (#14703)
  • Add environment_specifiers plugin hooks to allow the creation of plugins to read different file formats and sources. (#14710)
  • Extend PrefixData API with two constructors (from_name(), from_context()), a new property (name), several boolean-returning methods (exists(), is_environment(), is_base()), and a few exception-raising methods (assert_exists(), assert_environment(), assert_writable(), validate_path(), validate_name()). An additional method set_nonadmin() allows to plant the .nonadmin marker on Windows. (#14747 via #14750)
  • Add support for frozen environment markers (CEP 22). (#14746 via #14766)
  • Add a plugin hook for PrefixData loaders and use it to wrap the existing PyPI interoperability features. These are now present in conda.plugins.prefix_data_loaders.pypi. (#14780)
  • Add a --fields flag to conda list that allows to customize the content of the human output format. (#14781)
  • Add debug logs to get visibility into environment spec plugin selection. (#14815)
  • Add conda.models.records.SolvedRecord class. It is a PackageRecord subclass augmented with the requested_spec field originally found in PrefixRecord. (#14821)

Bug fixes

  • Cleanup references to DepsModifier.UPDATE_SPECS. (#14807)
  • Report package variant installation as "REVISED" as opposed to "DOWNGRADED". (#13797 via #14727)
  • Add a validation step to check if the target environment is writable when running the install or update commands. (#12561 via #14668)
  • Fix cache key in PrefixData. It will now consider interoperability. (#14750)
  • Do not cache PrefixData records across successive conda list invocations. (#14750)
  • environment.yaml spec plugin should only handle yaml files (files with .yaml or .yml file extensions). (#14823)
  • Fix conda info rendering to display components in a consistent order. (#14829 via #14831)

Deprecations

  • Mark conda.base.context.context.auto_activate_base as pending deprecation. Use conda.base.context.context.auto_activate instead. It will be permanently removed in 26.3. (#14666)
  • Mark conda.base.context.Context.pip_interop_enabled as pending deprecation, to be removed in 26.3. Use conda.base.context.Context.prefix_data_interoperability. instead. (#14750)
  • Mark conda.base.context._first_writable_envs_dir as pending deprecation. Use conda.gateways.disk.create.first_writable_envs_dir() and PrefixData.from_name() instead. It will be permanently removed in 26.3. (#14750)
  • Mark conda.base.context.validate_prefix_name as pending deprecation. Use PrefixData.validate_name() and PrefixData.from_name() instead. It will be permanently removed in 26.3. (#14750)
  • Mark conda.cli.common.validate_prefix as pending deprecation. Use PrefixData.assert_environment() instead. It will be permanently removed in 26.3. (#14750)
  • Mark conda.cli.common.validate_prefix_is_writable as pending deprecation. Use PrefixData.assert_writable() instead. It will be permanently removed in 26.3. (#14750)
  • Mark conda.cli.install.check_prefix as pending deprecation. Use PrefixData.exists(), PrefixData.validate_path(), PrefixData.validate_name() instead. It will be permanently removed in 26.3. (#14750)
  • Mark conda.cli.install.print_activate as pending deprecation. Use conda.cli.common.print_activate instead. It will be permanently removed in 26.3. (#14670)
  • Mark conda.cli.install.validate_new_prefix as pending deprecation. Use PrefixData.exists() and PrefixData.validate_path() instead. It will be permanently removed in 26.3. (#14750)
  • Mark conda.cli.install.validate_prefix_exists as pending deprecation. Use PrefixData.exists() instead. It will be permanently removed in 26.3. (#14750)
  • Mark conda.cli.main_info.get_info_components as pending deprecation to be removed in 26.3. Use conda.cli.main_info.iter_info_components instead. (#14837)
  • Mark conda.cli.main_rename.check_protected_dirs as pending deprecation. Use PrefixData.validate_path() instead. It will be permanently removed in 26.3. (#14750)
  • Mark conda.cli.main_rename.validate_src as pending deprecation. Use PrefixData.validate_path() and PrefixData.validate_name() instead. It will be permanently removed in 26.3. (#14750)
  • Mark conda.common.pkg_formats.python module as pending deprecation, to be removed in 26.3. Use conda.plugins.prefix_data_loaders.pypi.pkg_format instead. (#14798)
  • Mark conda.common.pkg_formats subpackage as pending deprecation, to be removed in 26.3. Use the prefix_data_loaders plugin hook instead. (#14798)
  • Mark conda.common.url.hex_octal_to_int as pending deprecation. Use int(..., 16) instead. It will be permanently removed in 26.3. (#14750)
  • Mark conda.core.link.PrefixActionGroup as pending deprecation. Use conda.core.link.PrefixActions instead. It will be permanently removed in 26.3. (#14754)
  • Mark conda.core.link.PrefixActions as deprecated. It will be renamed to conda.core.link.PrefixActionGroup in 26.3. (#14754)
  • Mark conda.core.path_actions._Action as pending deprecation. Use conda.core.path_actions.Action instead. It will be permanently removed in 26.3. (#14754)
  • Mark conda.core.prefix_data.get_python_version_for_prefix() as pending deprecation, to be removed in 26.3. Use conda.core.prefix_data.PrefixData(prefix).get("python").version instead. (#14750)
  • Mark conda.core.prefix_data.PrefixData keyword argument pip_interop_enabled as pending deprecation, to be removed in 26.3. Use the interoperability keyword argument instead. (#14750)
  • Mark conda.core.prefix_data.PrefixData._load_site_packages() as pending deprecation, to be removed in 26.3. Use conda.plugins.prefix_data_loaders.pypi.load_site_packages() instead. (#14750)
  • Mark conda.core.prefix_data.PrefixData._python_pkg_record as pending deprecation, to be removed in 26.3. Use PrefixData.get("python") instead. (#14750)
  • Mark conda.core.prefix_data.python_record_for_prefix() as pending deprecation. Use conda.core.prefix_data.PrefixData(prefix).get("python") instead. (#14750)
  • Mark conda.gateways.disk.read.read_python_record as pending deprecation, to be removed in 26.3. Use conda.plugins.prefix_data_loaders.pypi.pkg_format.read_python_record instead. (#14798)
  • Mark conda.gateways.disk.test.is_conda_environment as pending deprecation. Use PrefixData.is_environment() instead. It will be permanently removed in 26.3. (#14750)
  • Mark conda.gateways.disk.test.touch_nonadmin as pending deprecation. Use PrefixData.set_nonadmin() instead. It will be permanently removed in 26.3. (#14750)
  • Mark conda.models.records.PackageRecord.schannel as pending deprecation. Use conda.models.records.PackageRecord.channel_name instead. It will be permanently removed in 26.3. (#14781)
  • Mark conda.trust.signature_verification and conda.trust.constants modules for deprecation in version 25.9.0, to be removed in version 26.3.0. The functionality will be moved to conda-content-trust and conda-anaconda-trust-root packages respectively. (#14849)
  • Mark conda info --license as pending deprecation to be removed in 26.3. (#14831)
  • Mark conda info --root as pending deprecation to be removed in 26.3. Use conda info --base instead. (#14831)

Docs

  • Add type hints and docstrings to conda.core.portability. (#13820)
  • Add type hints and docstrings to conda.core.subdir_data. (#13821)
  • Add type hints to conda.base.constants. (#13480)
  • Add type hints to conda.base.context. (#14776)
  • Add type hints to conda.__init__, conda.exceptions and conda.exception_handler. (#14776)
  • Add type hints to conda.core.prefix_data. (#14779)
  • Add examples to environment specs plugin docs. (#14814)
  • Add type hints to conda.models.channel.Channel. (#14817)
  • Update the conda cheatsheet to 25.3.1 version. (#14830)

Other

  • Refactor --repodata-fn iteration in conda.cli.install and other smaller cleanups. (#14670)
  • Refactor command line argument validations from conda.cli.install.install to the relevant cli modules. (#14742)
  • Refactor conda create --clone logic into a separate function. (#14743)
  • Use dict.fromkeys for sequence deduplication, instead of IndexedSet(). (#14777)

Contributors

New Contributors

25.3.1

03 Apr 20:26
e50fc37

Choose a tag to compare

Bug fixes

Contributors

Full Changelog: 25.3.0...25.3.1

25.3.0

19 Mar 16:37
f7deaf2

Choose a tag to compare

Enhancements

  • Add support for Python 3.13. (#14584)
  • Refactor CMD's activation process to use a static shell script instead of a dynamic temporary script. This resolves using conda activate with script execution restrictions when Windows AppLocker is enabled. (#13610 via #14607)

Bug fixes

  • Fix variable deletion in xonsh. (#14543 via #14550)
  • Make conda.gateways.logging.TokenURLFilter.TOKEN_REPLACE a staticmethod for future Python compatibility. (#14590)
  • Allow user to specify --name or --prefix as part of conda config command. (#12137 via #14648)

Deprecations

  • Postpone conda.base.context.Context.conda_exe deprecation to 26.3. (#14647)
  • Postpone conda.base.context.Context.restore_free_channel deprecation to 25.9. (#14647)
  • Postpone implicit defaults multichannel deprecation to 25.9. Users relying on this behavior are encouraged to run conda config --add channels defaults. (#14178 via #14662)
  • Postpone loading subcommands from executables deprecation to conda 26.3. (#14644)
  • Mark conda {create,install,update} -f as pending deprecation. Use conda {create,install,update} --file instead. (#14446)
  • Mark conda._vendor as pending deprecation. Conda no longer vendors dependencies. (#14562)
  • Mark conda.common.io._logger_lock as pending deprecation. Use logging._lock instead. (#14584)
  • Mark conda.exports.plan as pending deprecation. (#14631)
  • Mark conda.plan.Channel as pending deprecation. Use conda.models.channel.Channel instead. (#14603)
  • Mark conda.plan.context as pending deprecation. Use conda.base.context.context instead. (#14603)
  • Mark conda.plan.dashlist as pending deprecation. Use conda.common.io.dashlist instead. (#14603)
  • Mark conda.plan.defaultdict as pending deprecation. Use builtin collections.defaultdict instead. (#14603)
  • Mark conda.plan.DEFAULTS_CHANNEL_NAME as pending deprecation. Use conda.base.constants.DEFAULTS_CHANNEL_NAME instead. (#14603)
  • Mark conda.plan.Dist as pending deprecation. Use conda.models.dist.Dist instead. (#14603)
  • Mark conda.plan.env_vars as pending deprecation. Use conda.common.io.env_vars instead. (#14603)
  • Mark conda.plan.FETCH as pending deprecation. Use conda.instructions.FETCH instead. (#14603)
  • Mark conda.plan.groupby_to_dict as pending deprecation. Use conda.common.iterators.groupby_to_dict instead. (#14603)
  • Mark conda.plan.human_bytes as pending deprecation. Use conda.utils.human_bytes instead. (#14603)
  • Mark conda.plan.IndexedSet as pending deprecation. Use boltons.setutils.IndexedSet instead. (#14603)
  • Mark conda.plan.LAST_CHANNEL_URLS as pending deprecation. Use conda.core.index.LAST_CHANNEL_URLS instead. (#14603)
  • Mark conda.plan.LINK as pending deprecation. Use conda.instructions.LINK instead. (#14603)
  • Mark conda.plan.LinkType as pending deprecation. Use conda.models.enums.LinkType instead. (#14603)
  • Mark conda.plan.log as pending deprecation. Use builtin logging instead. (#14603)
  • Mark conda.plan.MatchSpec as pending deprecation. Use conda.models.match_spec.MatchSpec instead. (#14603)
  • Mark conda.plan.normalized_version as pending deprecation. Use conda.models.version.normalized_version instead. (#14603)
  • Mark conda.plan.PackageRecord as pending deprecation. Use conda.models.records.PackageRecord instead. (#14603)
  • Mark conda.plan.PrefixSetup as pending deprecation. Use conda.core.link.PrefixSetup instead. (#14603)
  • Mark conda.plan.prioritize_channels as pending deprecation. Use conda.models.channel.prioritize_channels instead. (#14603)
  • Mark conda.plan.reset_context as pending deprecation. Use conda.base.context.reset_context instead. (#14603)
  • Mark conda.plan.SYMLINK_CONDA as pending deprecation. Use conda.instructions.SYMLINK_CONDA instead. (#14603)
  • Mark conda.plan.sys as pending deprecation. Use builtin sys instead. (#14603)
  • Mark conda.plan.time_recorder as pending deprecation. Use conda.common.io.time_recorder instead. (#14603)
  • Mark conda.plan.TRACE as pending deprecation. Use conda.common.constants.TRACE instead. (#14603)
  • Mark conda.plan.UNKNOWN_CHANNEL as pending deprecation. Use conda.base.constants.UNKNOWN_CHANNEL instead. (#14603)
  • Mark conda.plan.UNLINK as pending deprecation. Use conda.instructions.UNLINK instead. (#14603)
  • Mark conda.plan.UnlinkLinkTransaction as pending deprecation. Use conda.core.link.UnlinkLinkTransaction instead. (#14603)
  • Mark conda.plan as pending deprecation. (#14603)
  • Mark conda.testing.fixtures.session_capsys as pending deprecation. (#14575)
  • Mark conda_env.cli as pending deprecation. (#14564)
  • Mark conda_env.installers as pending deprecation. (#14564)
  • Mark conda_env as pending deprecation. (#14564)
  • Remove conda create --mkdir. Redundant argument. (#14644)
  • Remove conda install --mkdir. Use conda create instead. (#14644)
  • Remove conda rename --force. Use conda rename --yes instead. (#14644)
  • Remove conda._vendor.frozendict. Use frozendict instead. (#14562, #14582)
  • Remove conda.activate._Activator._get_path_dirs(extra_library_bin). (#14563)
  • Remove conda.activate._Activator.add_export_unset_vars. Use conda.activate._Activator.get_export_unset_vars instead. (#14563)
  • Remove conda.activate._Activator.get_scripts_export_unset_vars. Use get_scripts_export_unset_vars helper function in test_activate.py instead. (#14563)
  • Remove conda.activate.JSONFormatMixin.get_scripts_export_unset_vars. Use conda.activate._Activator.get_export_unset_vars instead. (#14563)
  • Remove conda.auxlib.collection.make_immutable. Use frozendict.deepfreeze instead. (#14586)
  • Remove conda.cli.main_env.configure_parser(sub_parsers=None). (#14600)
  • Remove conda.cli.main_env_list.execute. Use conda.cli.main_info.execute(envs=True) instead. (#14604)
  • Remove conda.cli.main_info.get_info_dict(system). (#14604)
  • Remove conda.common.compat.encode_arguments. (#14604)
  • Remove conda.env.specs.detect(remote_definition). (#14604)
  • Remove conda.instructions.PREFIX. (#14604)
  • Remove conda.plan._get_best_prec_match. Use conda.misc._get_best_prec_match instead. (#14603)
  • Remove conda.plan._handle_menuinst. (#14603)
  • Remove conda.plan._inject_UNLINKLINKTRANSACTION. (#14603)
  • Remove conda.plan._plan_from_actions. (#14603)
  • Remove conda.plan._update_old_plan. (#14603)
  • Remove conda.plan.add_defaults_to_specs. (#14603)
  • Remove conda.plan.add_unlink. (#14603)
  • Remove conda.plan.display_actions. (#14603)
  • Remove conda.plan.execute_actions. (#14603)
  • Remove conda.plan.execute_plan. (#14603)
  • Remove conda.plan.execute_plan. (#14603)
  • Remove conda.plan.get_blank_actions. (#14603)
  • Remove conda.plan.install_actions. (#14603)
  • Remove conda.plan.print_dists. (#14603)
  • Remove conda.plan.revert_actions. Use conda.cli.install.revert_actions instead. (#14603)
  • Remove conda.plan as an entrypoint. (#14603)
  • Remove conda.testing.integration._get_temp_prefix. Use tmp_path, conda.testing.path_factory, or conda.testing.tmp_env instead. (#14645)
  • Remove conda.testing.integration.create_temp_location. Use tmp_path or conda.testing.fixtures.path_factory fixtures instead. (#14604)
  • Remove conda.testing.integration.FORCE_temp_prefix. Use tmp_path, conda.testing.fixtures.path_factory, or conda.testing.fixtures.tmp_env fixtures instead. (#14604)
  • Remove conda.testing.integration.make_temp_channel. Use conda.testing.fixtures.tmp_channel fixture instead. (#14604)
  • Remove conda.testing.integration.make_temp_env. Use conda.testing.fixtures.tmp_env fixture instead. (#14604)
  • Remove conda.testing.integration.make_temp_package_cache. Use conda.testing.fixtures.tmp_pkgs_dir fixture instead. (#14604)
  • Remove conda.testing.integration.make_temp_prefix. Use tmp_path, conda.testing.path_factory, or conda.testing.tmp_env instead. (#14645)
  • Remove conda.testing.integration.run_command. Use conda.testing.conda_cli instead. (#14645)
  • Remove conda.testing.integration.running_a_python_capable_of_unicode_subprocessing. (#14669)
  • Remove conda.testing.integration.set_tmpdir fixture. Use tmp_path, conda.testing.path_factory, or conda.testing.tmp_env instead. (#14645)
  • Remove conda.testing.integration.tempdir. Use tmp_path or conda.testing.fixtures.path_factory fixtures instead. (#14604)
  • Remove conda_env.cli.common. Use conda.env.env instead. (#14564)
  • Remove conda_env.cli.main_config. Use conda.cli.main_env_config instead. (#14564)
  • Remove conda_env.cli.main_create. Use conda.cli.main_env_create instead. (#14564)
  • Remove conda_env.cli.main_export. Use conda.cli.main_export instead. (#14564, #14601)
  • Remove conda_env.cli.main_list. Use conda.cli.main_env_list instead. (#14564)
  • Remove conda_env.cli.main_remove. Use conda.cli.main_env_remove instead. (#14564)
  • Remove conda_env.cli.main_update. Use conda.cli.main_env_update instead. (#14564)
  • Remove conda_env.cli.main_vars. Use conda.cli.main_env_vars instead. (#14564)
  • Remove conda_env.env. Use conda.env.env instead. (#14564)
  • Remove conda_env.installers.base. Use conda.env.installers.base instead. (#14564)
  • Remove conda_env.installers.conda. Use conda.env.installers.conda instead. (#14564)
  • Remove conda_env.installers.pip. Use conda.env.installers.pip instead. (#14564)
  • Remove conda_env.pip_util. Use conda.env.pip_util instead. (#14564)
  • Remove conda_env.specs.binstar. Use conda.env.specs.binstar instead. (#14564)
  • Remove conda_env.specs.requirements. Use conda.env.specs.requirements instead. (#14564)
  • Remove conda_env.specs.yaml_file. Use conda.env.specs.yaml_file instead. (#14564)
  • Remove conda_env.specs. Use conda.env.specs instead. (#14564)
  • Remove `logging.Logger....
Read more

25.1.1

29 Jan 15:40
561fbf6

Choose a tag to compare

Bug fixes

  • Fix PowerShell activation/deactivation to properly unset $env:_CE_M and $env:_CE_CONDA environment variables. (#14292 via #14517)

Contributors

Full Changelog: 25.1.0...25.1.1

25.1.0

17 Jan 18:32
5acd0dd

Choose a tag to compare

Enhancements

  • Set __win version and enable CONDA_OVERRIDE_WIN usage. (#14443 via #14450)

Bug fixes

  • Merge overlapping glob build specs instead of raising Incompatible component merge. (#11612)
  • Fix a bug when invalid values are being passed to conda shell.posix command (#14398)
  • Sort suggested subcommands when an incorrect subcommand is provided in the CLI. (#13332 via 14402)
  • Fix a bug where the setting denylist_channels was not being recognized in certain cases. (#14405)
  • Do not use native platform version to set __osx or __linux version if the underlying OS is not macOS or Linux, respectively. (#14448 via #14449)
  • Report real macOS version (11+ instead of 10.16) even if the Python interpreter was linked against SDK 10.15 or earlier. This applies to the __osx virtual package and the user agent info. (#13178, #13832 via #14449)
  • Accept %-encoded URLs as a valid MatchSpec. (#14481)
  • Retry failed downloads one time on ChecksumMismatchError as caused by bad
    partial downloads. Use r+b or w+b instead of "append" mode. Improve test
    coverage. (#13488)

Docs

  • Use the correct parameter name, handler, in the CondaAuthHandler example (#14428).

Other

  • Require conda-libmamba-solver >=24.11.0 for libmamba 2.x compatibility. (#11612)
  • Added new PYTHONPATH autoused fixture in conda.testing to ensure development conda is used across all tests. The fixture doesn't apply if PYTHONPATH is already set in the environment. (#14475)

Contributors

Full Changelog: 24.11.3...25.1.0

24.11.3

07 Jan 14:33
3679723

Choose a tag to compare

Bug fixes

  • Fix recursion error introduced in __conda_reactivate deprecation message. (#14468)

Contributors

Full Changelog: 24.11.2...24.11.3