You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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)