| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| conda-26.3.0.tar.gz | 2026-03-31 | 25.6 MB | |
| conda-26.3.0.tar.gz.sha256sum | 2026-03-31 | 65 Bytes | |
| 26.3.0 source code.tar.gz | 2026-03-31 | 25.7 MB | |
| 26.3.0 source code.zip | 2026-03-31 | 26.7 MB | |
| README.md | 2026-03-31 | 13.9 kB | |
| Totals: 5 Items | 78.0 MB | 4 | |
Enhancements
- Improve handling of Windows CMD.EXE activation for environment paths that contain the
^(caret) character. (#12558 via [#15628]) - Add support for
PackageRecord.requested_specs. This will store all the MatchSpec objects that were involved in requesting a package (instead of a single, pre-merged object). To that end, two new attributes inconda.core.solve.Solver,unmerged_specs_to_addandunmerged_specs_to_remove, store the list of input specs as received, instead of always attempting to merge them. (#15111 via [#15110]) - Pass unmerged MatchSpec objects to
pre-solveplugins (instead of pre-merged). (#15110) - Add option to disable redefining Fish shell prompt functions in conda init. (#15545 via [#15549])
conda create --file <filename>now supports environment.yaml files as well as requirements.txt and explicit environment exports, and detects name and prefix automatically when--name/--prefixare omitted. (#15573 via [#15770])- Add
descriptionandenvironment_formatmetadata fields to environment plugin types (CondaEnvironmentSpecifierandCondaEnvironmentExporter). (#15577 via [#15763]) - Optimize S3 downloads to avoid an extra file copy through a temporary buffer. (#15636)
- Add path customization parameters to
tmp_envfixture (name,path_prefix,path_infix,path_suffix) that pass through topath_factory. Add "parts mode" topath_factorywhere specifyingprefix,infix, orsuffixtriggers UUID defaults for unspecified parts, enabling easier special character path testing. (#15650) - Add
PackagesNotFoundInChannelsErrorandPackagesNotFoundInPrefixErroras specialized cases ofPackagesNotFoundError, to distinguish between packages missing from configured channels and packages missing from a specific environment prefix. (#12197 via [#15653]) - Always include conda-meta manifest file size in
PrefixRecord.package_size(), so packages with no files (such as metapackages, mutex packages) display a non-zero size instead of "0 B" inconda list --size. (#15681 via [#15656]) - Speed up
conda runby dropping the shell hook subprocess and relying on inline activators. (#14993 via [#15672]) conda remove <spec>with the classic solver now exits early if the spec to be removed does not exist in the environment. (#15697)conda search --envs <package>now raises an error when the package is not found in any environment. (#15698)- Add support for defining aliases of environment spec plugins. (#15701)
- Add pattern matching support to environment specifier and exporter plugins via
default_filenamesfield. Plugins can now use wildcards (e.g.,*.conda-lock.yml) for filename-based detection. (#15717 via [#15719]) conda create|install -fis now recognized as an alias toconda create|install --file. (#15790)- Improve log messages when conda auto-detects the applicable environment file format. (#15736)
Bug fixes
- Fix
conda config --show-sourcesdisplayingfrozendict.frozendict(...)forchannel_settingsentries instead of readable dict format. (#15505 via [#15789]) - Do not include pip-installed packages in the list of explicit packages when building a
conda.models.Environmentwithconda.models.Environment.from_prefix. (#15619) - Use bundled Windows stub executables (
conda/shell/cli-32.exe,conda/shell/cli-64.exe) for creating entry points instead of relying onScripts/conda.exeso that entry point creation works when conda is not installed as a conda package (e.g. tests viapython -m pytest). Select the correct exe for the target env via a platform-to-stub mapping; for win-arm64 usecli-64.exe(relying on Windows x64-on-ARM64 emulation). Use target platform forconda initas well, fixing cross-architecture installs (e.g. win-32 host creating a win-64 env). (#15678) - Use case-insensitive matching when finding Python metadata files on Windows to make sure they are correctly identified as conda packages. (#15153 via [#15725])
- Always include the
dependenciesfield when exporting an environment.yaml-style environment, including when it is empty, for CEP-24 compliance. (#15753) - Fix a regression first introduced in [#14661] that adversely affected package resolution for custom multichannels. (#15750 via [#15776])
- Allow
conda search --offlineto use the local channel cache. (#15781 via [#15795]) - Fix flaky
test_token_not_present_in_conda_createtest by removing unreliable assertion that expected/t/<TOKEN>/in output. The test now focuses on the critical security guarantee (raw tokens must not leak) while new unit tests verify theTokenURLFilterintegration. (#13939) - Fix
win-arm64subdir detection on native Windows ARM64.platform.machine()returns uppercaseARM64on Windows, which did not match the lowercase entries innon_x86_machines, causing the platform to incorrectly resolve towin-64. (#15716) - Ignore JSON metadata paths beginning with
._(e.g. AppleDouble files) when loading prefix data, so spurious files from macOS or external drives do not break metadata loading. (#15652 via [#15664])
Deprecations
- Mark
conda.common.io.env_var,conda.common.io.env_vars, andconda.common.io.env_unmodifiedas pending deprecation to be removed in 27.3. In tests, prefermonkeypatch.setenv/monkeypatch.delenvinstead. (#14095 via [#15728]) - Mark
conda run --devas pending deprecation, to be removed in 27.3. SetPYTHONPATHto the conda source root instead. (#15641) -fis no longer an alias for--force. (#15790)- Remove
conda info --root. Useconda info --baseinstead. (#15791) - Remove
conda info -l/--license. (#15791) - Remove
conda_envmodule. (#15791, [#15816]) - Remove
conda._vendormodule. Conda no longer vendors dependencies. (#15791) - Remove
conda.base.context._first_writable_envs_dir. Useconda.gateways.disk.create.first_writable_envs_dirinstead. (#15791) - Remove
conda.base.context.add_plugin_setting. Useconda.plugins.config.PluginConfig.add_plugin_settinginstead. (#15791) - Remove
conda.base.context.Context.auto_activate_base. Useconda.base.context.Context.auto_activateinstead. (#15791) - Remove
conda.base.context.Context.conda_exe. Useconda.base.context.Context.conda_exe_vars_dictinstead. (#15791) - Remove
conda.base.context.Context.pip_interop_enabled. Useconda.base.context.Context.prefix_data_interoperabilityinstead. (#15791) - Remove
conda.base.context.get_plugin_config_data. Useconda.base.context.context.plugins.raw_datainstead. (#15791) - Remove
conda.base.context.remove_all_plugin_settings. Useconda.plugins.config.PluginConfig.remove_all_plugin_settingsinstead. (#15791) - Remove
conda.base.context.validate_prefix_name. Useconda.core.prefix_data.PrefixData.{validate_name,from_name}instead. (#15791) - Remove
conda.cli.common.validate_prefix_is_writable. Useconda.core.prefix_data.PrefixData.assert_writableinstead. (#15791) - Remove
conda.cli.common.validate_prefix. Useconda.core.prefix_data.PrefixData.assert_environmentinstead. (#15791) - Remove
conda.cli.install.check_prefix. Useconda.core.prefix_data.PrefixData.{exists,validate_path,validate_name}instead. (#15791) - Remove
conda.cli.install.print_activate. Useconda.cli.common.print_activateinstead. (#15791) - Remove
conda.cli.install.validate_new_prefix. Useconda.core.prefix_data.PrefixData.{exists,validate_path}instead. (#15791) - Remove
conda.cli.install.validate_prefix_exists. Useconda.core.prefix_data.PrefixData.existsinstead. (#15791) - Remove
conda.cli.main_info.get_info_components. Useconda.cli.main_info.iter_info_componentsinstead. (#15791) - Remove
conda.cli.main_rename.check_protected_dirs. Useconda.core.prefix_data.PrefixData.validate_pathinstead. (#15791) - Remove
conda.cli.main_rename.validate_src. Useconda.core.prefix_data.PrefixData.{validate_path,validate_name}instead. (#15791) - Remove
conda.common.io._logger_lock. Uselogging._lockinstead. (#15791) - Remove
conda.common.pkg_formatsmodule. Useconda.plugins.prefix_data_loaders.pypi.pkg_formatinstead. (#15791) - Remove
conda.common.url.hex_octal_to_int. Useint(..., 16)instead. (#15791) - Remove
conda.core.index._supplement_index_with_system. Useconda.core.Index.reloadinstead. (#15791) - Remove
conda.core.index.check_allowlist. Useconda.base.context.validate_channelsinstead. (#15791) - Remove
conda.core.path_actions._Action. Useconda.core.path_actions.Actioninstead. (#15791) - Remove
conda.core.prefix_data.get_python_version_for_prefix. Useconda.core.prefix_data.PrefixData.get("python").versioninstead. (#15791) - Remove
conda.core.prefix_data.PrefixData._load_site_packages. Useconda.plugins.prefix_data_loaders.pypi.load_site_packagesinstead. (#15791) - Remove
conda.core.prefix_data.PrefixData._pip_interop_enabled. Useconda.core.prefix_data.PrefixData.interoperabilityinstead. (#15791) - Remove
conda.core.prefix_data.PrefixData._python_pkg_record. Useconda.core.prefix_data.PrefixData.get("python")instead. (#15791) - Remove
conda.core.prefix_data.python_record_for_prefix. Useconda.core.prefix_data.PrefixData.get("python")instead. (#15791) - Remove
conda.env.env.get_filename. (#15791) - Remove
conda.env.specs.binstarmodule. (#15791) - Remove
conda.env.specs.detect(name,directory). Specify the full path in filename instead. (#15791) - Remove
conda.env.specs.get_spec_class_from_file. Useconda.base.context.plugin_manager.detect_environment_specifierinstead. (#15791) - Remove
conda.env.specs.requirements.RequirementsSpec._valid_file. (#15791) - Remove
conda.env.specs.requirements.RequirementsSpec._valid_name. (#15791) - Remove
conda.env.specs.requirements.RequirementsSpec.environment. Useconda.env.specs.requirements.RequirementsSpec.envinstead. (#15791) - Remove
conda.env.specs.requirements.RequirementsSpec.name. (#15791) - Remove
conda.env.specs.requirements.RequirementsSpec(name). (#15791) - Remove
conda.gateways.disk.read.read_python_record. Useconda.plugins.prefix_data_loaders.pypi.pkg_format.read_python_recordinstead. (#15791) - Remove
conda.gateways.disk.test.is_conda_environment. Useconda.core.prefix_data.PrefixData.is_environmentinstead. (#15791) - Remove
conda.misc.touch_nonadmin. Useconda.core.prefix_data.PrefixData.set_nonadmininstead. (#15791) - Remove
conda.models.records.PackageRecord.schannel. Useconda.models.records.PackageRecord.channel_nameinstead. (#15791) - Remove
conda.planmodule. (#15791) - Remove
conda.testing.fixtures.session_capsys. (#15791) - Remove
conda.utils.unix_path_to_win. Useconda.common.path.unix_path_to_wininstead. (#15791) - Remove loading conda subcommands via executables. Use the plugin system instead. (#15791)
- Rename
conda.activate._Activator.hook(auto_activate_base)toauto_activate. (#15791) - Rename
conda.core.prefix_data.PrefixData(pip_interop_enabled)tointeroperability. (#15791) - Remove
conda.trustmodule. The implementation has been moved toconda-content-trust. (#15649) - Remove built-in
signature-verificationpost-solve plugin. Signature verification is now provided by theconda-content-trustplugin when installed. (#15649) - Rename
conda.core.PrefixActionstoconda.core.PrefixActionGroup. (#15824)
Docs
- Update documentation for
conda create --fileenv specifier support in several places. (#15573 via [#15770]) - Remove documentation for RPM and DEB packages, which are no longer supported. (#13896 and [#14826] via [#15694])
- Update advice on improving conda performance in the Concepts section of the conda User Guide. (#15780)
- Update pip interoperability documentation page with historical note and link to conda-pypi documentation. (#15815)
- Fix broken links on contributing documentation pages. (#15729)
- Remove Discourse logo from documentation build. (#15806)
- Expand
conda searchdocumentation to include more search examples. (#15774)
Other
- Add comprehensive test cases to characterize environment name validation behavior for Windows special characters (
!,=,^,%,(,)). Tests confirm that!now works (previously fixed in [#14607]) and identify^as broken. (#12558 via [#15628]) - Remove JLAP (JSON Line-oriented Patch) experimental support. Zstd-compressed repodata (
.json.zst) functionality is preserved and continues to work as before. (#15233 via [#15693]) - Remove file extension validation from environment spec plugins. Requirements plugin now validates that all lines are valid matchspecs to avoid collisions with other plugins (e.g., environment.yaml). (#15714)
- Remove internal use of
boltons.setutils.IndexedSet(). It has been replaced with either sequences or sets. (#15742 via [#15744]) - Improve the error message when an environment spec plugin cannot handle a file. (#15718 via [#15792])
- Add
pre-commitupdates to Dependabot and keep automated dependency updates managed via.github/dependabot.yml. (#15814)
Contributors
- @agriyakhetarpal
- @conda-bot
- @danyeaw
- @ELundby45 made their first contribution in https://github.com/conda/conda/pull/15716
- @jaimergp
- @jezdez
- @kathatherine
- @kenodegard
- @ForgottenProgramme
- @ryanskeith
- @schuylermartin45
- @soapy1
- @crowecawcaw made their first contribution in https://github.com/conda/conda/pull/15636
- @travishathaway
- @dependabot[bot]
- @lsoksane made their first contribution in https://github.com/conda/conda/pull/15549
- @pre-commit-ci[bot]
- @shenhaofang made their first contribution in https://github.com/conda/conda/pull/15664
Full Changelog: https://github.com/conda/conda/compare/26.1.1...26.3.0