| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| conda-26.9.0.tar.gz | 2026-10-01 | 26.0 MB | |
| conda-26.9.0.tar.gz.sha256sum | 2026-10-01 | 65 Bytes | |
| 26.9.0 source code.tar.gz | 2026-09-30 | 26.0 MB | |
| 26.9.0 source code.zip | 2026-09-30 | 27.1 MB | |
| README.md | 2026-09-30 | 18.4 kB | |
| Totals: 5 Items | 79.0 MB | 0 | |
✨ Special announcements ✨
Upcoming change to automatic pip installation
Conda 26.9 marks the implicit installation of pip alongside Python as pending deprecation. It remains enabled by default in this release. The behavior becomes deprecated in conda 27.3, and add_pip_as_python_dependency will default to false in conda 27.9. The setting itself remains supported.
If your environments need pip, request it explicitly, for example with conda create -n myenv python pip. To retain automatic installation, run conda config --set add_pip_as_python_dependency true. To opt out early, run conda config --set add_pip_as_python_dependency false. See the rollout schedule and configuration documentation for details.
Native Windows ARM64 launchers
Conda 26.9 selects signed native ARM64 launchers for Python console entry points in win-arm64 target environments and verifies their SHA-256 hashes before installation. The release also fixes upgrades from defaults conda 26.7.2 that could leave those entry points missing. See #16293 and #16777.
Enhancements
- Clarify the classic solver's repodata fallback message so it no longer describes the fallback as an unsuccessful attempt. (#12008 via [#16599])
- Add
--exclude-newerandexclude_newerconfiguration to exclude package records newer than a timestamp cutoff, with channel overrides andexclude_newer_packagesettings. Configured cutoffs also filterconda searchresults. The configured solver must support the requested cutoffs. Accurate timestamps can give security vendors time to flag newly built malicious packages before installation. Conda prefers channel-providedindexed_timestampvalues and otherwise uses build timestamps. Records without usable timestamps remain eligible, so filtering does not guarantee a full delay after publication. (#15759) - Leave cached repodata unfiltered when applying
exclude_newer, and validate solver selections before installation. (#15759) - Load subcommand parsers only when needed, reducing the number of modules imported at startup and improving conda startup time. (#15867 via [#15868])
- Prefer extracted packages cached on the target environment's filesystem during transaction setup so they can be hard linked instead of copied. (#15969)
- Use
conda-launchersfor Windows entry points, including native ARM64 launchers, and verify their SHA-256 hashes before installation. Use SHA-256 instead of MD5 forconda initlauncher comparisons. Retain bundled launchers for upgrade compatibility and Windows 32-bit fallback. (#16293) - Add
conda plugins listandconda plugins infoto list installed plugins and inspect their metadata, including disabled plugins. (#16354, [#16356]) - Show Constructor installer metadata in
conda info. (#16432) - Show guidance for enabling sharded repodata when a channel provides only shards and sharded repodata is disabled. (#16453)
- Show
add_pip_as_python_dependencyunder Solver Configuration inconda config --describe. (#16545) - Add
is_stdin_tty(),is_stderr_tty(), andis_interactive_tty()helpers toconda.common.terminalfor checking stdin, stderr, and both stdin and stdout, respectively. Keepis_tty()as a stdout-only check. Use these helpers for stream checks and interactive prompts instead of handwrittenisatty()checks. (#16594) - Avoid loading unrelated package records when copying indexes or preparing classic-solver solves, while preserving installed records and cached packages with their dependencies. (#16638)
- Speed up wildcard searches of sharded channels by matching package names before constructing records, and show progress when searching for similar package names. (#16745 via [#16757])
- Add a
conda config --clear KEYoption to explicitly set sequence configuration parameters to an empty list. (#7617 via [#16499])
Bug fixes
- Do not force
context.devoff when--devis absent from activation or hook commands. Preserve dev mode configured throughCONDA_DEVordev: true, keepingCONDA_EXEintact when stacking or reactivating environments. (#14142 via [#16571], [#15696] via [#16571]) - Require confirmation through
--yesoralways_yesto replace an existing environment withconda env create. (#15071) - Validate
conda install --revisionvalues during command parsing and report non-integer values as usage errors. (#16536) - Filter duplicate
.tar.bz2records from v3 sharded repodata when a.condapackage with the same filename stem exists. (#16310) - Install pip dependencies from multiple environment files in one pip invocation so pip resolves them together. (#16359)
- Cache the absence of classic
repodata.jsonafter an HTTP 404 when shards are present, avoiding repeated fallback requests. (#16452) - Limit cached channel notice responses to 24 hours so newly published notices can be fetched. (#16502)
- Fix
channel_settingslookups for channel names and URLs. (#16510) - Include support for individual sharded-repodata package shards up to 64 MiB after decompression, first released in conda 26.7.2. (#16575)
- Fix false reports of altered files from
conda doctorafter binary prefix replacement on macOS ARM64 by recordingsha256_in_prefixafter code signing. (#16590) - Fix
conda doctor --fixreinstalls for missing or altered files by buildingname=version=buildspecs from conda-meta records and passingforce_reinstallthrough to the solver. (#16591 via [#16617]) - Keep extracted cache packages referenced by soft-linked environments when running
conda clean --packagesorconda clean --all. (#16614) - Wrap channel notice text to fit the terminal. (#16598 via [#16629])
- Invalidate context-derived caches when entering and exiting
Context._override(), includingmemoizedpropertyvalues such ascustom_multichannelsandcustom_channels, and theChannel.from_valuecache. Prevent stale values from masking temporary overrides or persisting after they end. (#16631 via [#16651]) - Fix
Channel.url(with_credentials=True)mangling authenticated sharded-repodata URLs by recognizing.msgpack.zstas a repodata extension. (#16637 via [#16634]) - Send YAML environment-file warnings to stderr, including ignored sections and
pip:dependencies without an explicit condapippackage. (#16543 via [#16641]) - Make
conda env configcommand help consistent and remove the invalidconda env config --appendexample. (#16642 via [#16643]) - Fix the classic solver raising a
TypeErrorinstead of a package-not-found error for missing packages. (#16659) - Find v3 package records when searching channels without sharded repodata. (#16677 via [#16731])
- Ensure v3 packages are available when mixing sharded and unsharded channels. (#16676 via [#16688])
- Allow configuration map entries containing periods to be set, read, and removed without losing nested-key access. (#16691 via [#16693])
- Fix
get_sessionraising aTypeErrorwhenchannel_settingsidentifies a channel with afile://URL. (#16698 via [#16732]) - Parse unquoted comma-separated MatchSpec extras as a list (e.g.
pkg[extras=http2,cli]). (#16722 via [#16730]) - Preserve
exclude_newercapabilities when wrapping solver backends for sharded repodata. (#16752) - Fix
IsADirectoryErrorwhen installing packages with absolute directory symlinks, and remove directory symlinks correctly during package removal and rollback. (#16759) - Report an actionable error without a traceback when activating with a positive
CONDA_SHLVLand an unset or emptyCONDA_PREFIX. (#15864, [#16764] via [#16064]) - Fix native Windows ARM64 upgrades from defaults conda 26.7.2 that leave Python entry points missing by preserving the launcher needed by the running installer. (#16776 via [#16777])
- Report Python entry-point creation failures through the existing transaction error handling and roll back failed transactions when rollback is enabled. (#16776 via [#16777])
Deprecations
- Mark
conda activate --dev,conda create --dev,conda install --dev,conda remove --dev,conda.base.context.Context.dev, andconda.utils.wrap_subprocess_call(dev_mode)as pending deprecation, to be removed in 27.9. Outside dev mode, activation unsets_CE_Mand_CE_CONDA, while shell wrappers continue expanding them. SetPYTHONPATHto the conda source root instead. (#14142 via [#16571]) - Mark the
conda.cli.conda_argparse.configure_parser_*re-exported functions as pending deprecation, to be removed in 27.9. Importconfigure_parserdirectly from the relevantconda.cli.main_*module instead. (#15867 via [#15868]) - Mark
conda.cli.conda_argparse.user_rc_path,sys_rc_path,escaped_user_rc_path, andescaped_sys_rc_pathas pending deprecation, to be removed in 27.9. Useconda.base.context.user_rc_pathorsys_rc_pathinstead, applying.replace("%", "%%")locally for the escaped variants. (#15867 via [#15868]) - Remove
conda.gateways.disk.create.create_application_entry_point,conda.gateways.disk.create.ProgressFileWrapper, andconda.gateways.disk.create.create_fake_executable_softlink, deprecated in 26.3. (#16314) - Remove
conda.cli.common.arg2spec. Usestr(MatchSpec(arg))withconda.models.match_spec.MatchSpecinstead, keeping error handling and name-only validation for update commands in the caller. (#16314) - Remove the deprecated
jsonkeyword argument fromconda.cli.common.specs_from_argsandspecs_from_url. Stop passing this argument. (#16314) - Remove
conda.cli.main_compare.get_packages. Useconda.core.prefix_data.PrefixData(prefix, interoperability=True).map_records(), which returns a mapping of package names to records instead of a sorted list. (#16314) - Remove
json.JSONEncodermonkey patching forfrozendictandobj.to_json(). Useconda.common.serialize.json.dumps()orCondaJSONEncoderto encode these objects. (#16314) - Remove
conda.auxlib.entity.EntityEncoder,conda.common.serialize.EntityEncoder, andconda.exports.EntityEncoder. Useconda.common.serialize.json.CondaJSONEncoderinstead. Removeconda.common.serialize.json_loadandjson_dump. Useloads()anddumps(..., sort_keys=True)fromconda.common.serialize.json, respectively. (#16314) - Remove
conda.auxlib.logz.DumpEncoder,_DUMPS, andjsondumps. UseCondaJSONEncoderordumps(..., ensure_ascii=False, sort_keys=True)fromconda.common.serialize.jsoninstead. (#16314) - Remove
conda.plugins.hookspec.spec_name. Useconda.base.constants.APP_NAME. (#16314) - Remove type re-exports from
conda.plugins. Import them fromconda.plugins.typesinstead. (#16314) - Mark implicit installation of pip as a Python dependency as pending deprecation. Deprecate this behavior in conda 27.3 and change the default of
add_pip_as_python_dependencytofalsein conda 27.9. To keep installing pip automatically with Python, runconda config --set add_pip_as_python_dependency true. To request pip explicitly, include it in the package specs, for exampleconda create -n myenv python pip. To opt out early, runconda config --set add_pip_as_python_dependency false. (#16404) - Mark
conda.cli.install.get_revisionas pending deprecation, to be removed in 27.9. Parse revision numbers withint()and handle invalid values in the caller. (#16536) - Mark passing
caused_byas a positional argument toCondaErroras pending deprecation, to be removed in 27.9. Use thecaused_bykeyword argument instead. (#16537) - Remove
conda.env.env.Environment. Useconda.env.env.EnvironmentYamlinstead. (#16314) - Remove
conda.env.specs.yaml_file.YamlFileSpec.environment. UseYamlFileSpec.env, which returnsconda.models.environment.Environmentinstead ofEnvironmentYaml. (#16314) - Remove the CEP-24 compliance warning when loading non-compliant environment files. (#16314)
- Remove automatic fallback to the
environment.ymlenvironment specifier when auto-detection fails. Pass--format=environment.ymlto select this reader explicitly. (#16314) - Remove
conda.auxlib.compat.isiterable. Useconda.common.compat.isiterableinstead. (#16564) - Remove
conda.core.index.calculate_channel_urls. Useconda.models.channel.all_channel_urls(context.channels)for configured channels, preserving any custom channels, platform, oruse_localhandling in the caller. (#16564) - Mark
conda.base.context.Context.experimentalas pending deprecation, becoming deprecated in 27.3 and removed in 27.9. (#16018 via [#16685]) - Mark
conda.common.configuration.Configuration.register_reset_callabackas pending deprecation, to be removed in 27.9. Use the correctly spelledregister_reset_callbackinstead. (#16631)
Docs
- Note that
_CE_Mand_CE_CONDAin activation examples are empty no-ops. UsePYTHONPATHanddev/startfor local conda development. (#14142 via [#16571]) - Correct the cheatsheet page's stale PDF note — the linked file is 64 KB and two pages, not 3 MB and single-page. (#15122)
- Update the commands concept page with common conda commands, command-line help examples, and a note about plugin-provided commands. (#16023 via [#16485])
- Update the channels concept page with examples of common public channels, guidance for finding channels on Anaconda.org, and a section explaining local channels. (#16026 via [#16484])
- Add a user guide task page for using authenticated channels with the
conda-authplugin. (#16231 via [#16483]) - Clarify how command-line package specifications are interpreted when installing packages with conda. (#10491 via [#16465])
- Document conda environment activation in Bash and PowerShell scripts using
conda shell.<shell> hook, andconda runas an alternative for executing a single command in an environment. (#7980 via [#16478]) - Install PlantUML from conda-forge instead of downloading the jar from SourceForge during docs builds. (#16492)
- Fix Miniconda download and information links. (#16529)
- Document
add_pip_as_python_dependency, including the planned default change in [#16404]. (#16545) - Add a developer guide to planning, announcing, and shipping breaking changes beyond public API removals, including configuration defaults, solver defaults, and CLI behavior. Link it from the Deprecations page and developer guide index. (#16570)
- Document running and writing benchmarks, and link to Bencher results. (#16586 via [#16639])
- Clarify wildcard matching in version specs: a trailing
*matches version segments, so1.4*matches1.4.1but not1.40. An embedded*uses glob matching. (#16619 via [#16655]) - Add a guide to installing supported pure Python wheels from PyPI with
conda-pypi, including workflows, additional commands, security considerations, and limitations. (#16475 via [#16625], [#16756]) - Update the new features page for stable
conda-pypisupport and multi-platform lockfiles, and add a card for--exclude-newer. (#16626) - Add a card to the new features page for native Windows ARM64 support, including choosing between
win-64andwin-arm64environments. (#16736) - Clarify the
exclude_newerbuild-timestamp fallback and its publication-cooldown limitations. (#16739 via [#16741])
Other
- Build Windows ARM64 canaries with native Python 3.14 and exercise their Windows entry points. (#15448 via [#16719])
- Require
packaging26.3 or newer. (#16354) - Speed up
test_dont_remove_condawith localcondaandpycosattest packages. (#16426, [#16427] via [#16577]) - Add Windows ARM64 GitHub-hosted runner coverage using win-64 emulation. (#16466)
- Run the Windows test suite natively on ARM64 with Python 3.14 and conda-forge packages. (#16540)
- Raise the
ruamel.yamlupper version bound from<0.19to<0.20. (#16576) - Fix always-true skip condition so
test_dont_remove_conda_3runs with solvers shipped with conda. (#16579) - Report benchmark results for the measured commit and compare matching testbeds. (#16586 via [#16639])
- Speed up
test_clone_env_with_condaby installing the local test-recipescondapackage instead of a fullconda-forge::condastack before cloning. (#16604) - Speed up
test_update_env_no_action_json_outputby usingtmp_envwithca-certificatesinstead of creating an environment withpipand PyPIclick. (#16605) - Speed up
test_json_create_install_update_removeby usingtest_recipes_channelwithpycosatandversionedinstead of remotezlibandca-certificates. (#16606) - Speed up
test_dont_remove_conda_3by checking transaction verification directly instead of installing conda and converting the checkout. (#16669 via [#16751]) - Speed up
test_update_env_json_outputby usingtest_recipes_channelwithsmall-executableanddependencyinstead of remoteca-certificatesandzlib. (#16670 via [#16744]) - Speed up
test_updateby usingtest_recipes_channelwithsmall-executableanddependencyinstead of remoteca-certificatesandzlib. (#16671 via [#16743]) - Record informational pull request benchmark comparisons and runner diagnostics on Ubuntu 24.04. (#16681)
- Fix context cleanup in the shard connection test. (#16702)
- Add
conda-rattler-solverto the plugins bundled with conda and update plugin minimums toconda-libmamba-solver >=26.7.0,conda-lockfiles >=0.2.2,conda-pypi >=0.13.0,conda-rattler-solver >=0.2.0, andconda-self >=0.3.0. (#16491, [#16784])
Contributors
- @agriyakhetarpal
- @andreruizloera made their first contribution in https://github.com/conda/conda/pull/16436
- @anki-code
- @carterbox
- @codewithdaniel1 made their first contribution in https://github.com/conda/conda/pull/16465
- @conda-bot
- @danyeaw
- @dependabot[bot]
- @ForgottenProgramme
- @GruffElixir made their first contribution in https://github.com/conda/conda/pull/16668
- @isuruf
- @jaimergp
- @jezdez
- @jjerphan made their first contribution in https://github.com/conda/conda/pull/16495
- @kathatherine
- @kenodegard
- @lrandersson
- @mwtoews made their first contribution in https://github.com/conda/conda/pull/16455
- @paperbenni made their first contribution in https://github.com/conda/conda/pull/16635
- @ryanskeith
- @soapy1
- @travishathaway