September 2023 Releases
The September 2023 releases included updates to five conda community projects: conda, conda-build, conda-libmamba-solver, conda-index, and pycosat! ๐ Each of these have been released to both main and conda-forge.
Changes in Conda 23.9.0โ
To update conda, run:
conda install -n base conda=23.9.0
๐ข Special Announcement ๐ขโ
Conda's default solver will change to conda-libmamba-solver in a special 23.10.0 release in the near future!
You can already benefit from conda-libmamba-solver today by configuring your conda installation to use it (e.g. by running conda config --set solver libmamba).
The current "classic" solver is based on pycosat/Picosat and will remain part of conda for the foreseeable future. A fallback is possible and available.
Additional details on this change as well as the full announcement can be found in the conda 23.9.0 changelog.
โจ What's New? โจโ
- A new "auth handler" plugin hook has been added for conda. See the new 
conda-authplugin for an example. - Index cache metadata is locked by default; a 
--no-lockoption is also now available. - A new 
context.register_envsoption can control whether to register environments in~/.conda/environments.txtwhen they are created. Defaults to true. - New detailed output verbosity level (i.e., the old debug level 
-vvis now-vvv). - Support for 
truststoreto thessl_verifyconfig option has been added, enabling conda to use the operating system certificate store (requires Python 3.10 or later). emscripten-wasm32andwasi-wasm32platforms are now supported.
๐ง What Got Fixed? ๐งโ
conda env createchecks the directory permissions when using pip dependencies before writing to disk.InsecureRequestWarningfor JLAP is hidden whenCONDA_SSL_VERIFY=false, matching non-JLAP behavior.- The ability to create a conda environment with a colon in the prefix is no longer allowed.
 AttributeErrorlogging response with nonexistent request has been fixed when using JLAP withfile:///URIs.- For cleaner logs, progress bars no longer show up in non-interactive runs.
 --jsonand--debugdefault toNULLso as to not overrideCONDA_JSONandCONDA_DEBUGenvironment variables.- Fixed 
conda remove --all --jsonoutput. - Test data has been updated to stop triggering security scanners' false-positives.
 - No more performance regression of basic commands (e.g., 
conda info) on WSL. - Conda is now configured to ignore "Retry-After" header to avoid the scenarios when this value is very large and causes conda to hang indefinitely.
 JSONDecodeErroronrepodata.info.jsonis treated as a warning, equivalent to a missingrepodata.info.json.- Fixed sorting error for 
conda config --show-sources --json. OSErrorinfind_commandsis now detected to account for incorrectPATHentries on Windows.conda env update --pruneuses only the specs coming fromenvironment.ymlfile and ignores the history specs.
๐ What's Marked for Deprecation? ๐ โ
This is the first release of conda removing code previously marked as deprecated per the deprecation schedule. The following is a list of what was removed:
conda.another_unicode()conda._vendor.toolzconda._vendor.tqdmconda.auxlib.decorators.memoizedconda.base.context.Context.experimental_solverconda.base.context.Context.conda_privateconda.base.context.Context.cuda_versionconda.base.context.get_prefix()conda.cli.common.ensure_name_or_prefix()--experimental-solverconda.common.cudaconda.common.path.explode_directories(already_split)conda.common.url.escape_channel_url()conda.core.index.check_whitelist()conda.core.solve._get_solver_class()conda.core.subdir_data.read_mod_and_etag()conda.gateways.repodata.RepodataState.load()conda.gateways.repodata.RepodataState.save()conda.lockconda_env.cli.common.stdout_json()conda_env.cli.common.get_prefix()conda_env.cli.common.find_prefix_name()
Changes in Conda-Build 3.27.0โ
To update conda-build, run:
conda install -n base conda-build=3.27.0
โจ What's New? โจโ
- Removed 
glob2dependency. emscripten-wasm32andwasi-wasm32platforms are now supported.
๐ง What Got Fixed? ๐งโ
- Imports in conda command plugins are delayed until the command is used, avoiding import-time side effects.
 
๐ What's New in Documentation? ๐โ
- Improved formatting of 
~=(compatibility release) match spec. - Docs now clarify that the 
buildprefix is activated after thehostprefix. - An explanation has been added stating that conda-build should be run from the base environment.
 
Changes in Conda-Libmamba-Solver 23.9.0/23.9.1โ
To update conda-libmamba-solver, run:
conda install -n base conda-libmamba-solver=23.9.1
โจ What's New? โจโ
- Increased performance of 
notify_conda_outdatedlogic. - Libmamba's 
repoquerysearch features are now exposed as a conda subcommand plugin. - How tasks for 
libsolvare created has been rewritten, making use oflibmamba'sadd_pinfeatures (requireslibmambapy >=1.5.1). - Name-only pins now lock the corresponding package if installed.
 - The 
.solvcache for repodata is used if available and recent. 
๐ง What Got Fixed? ๐งโ
- The solver no longer bounces between two compatible solutions when the same command is run twice in a row.
 - Commands with no channels passed are handled gracefully.
 - Workaround added for missing 
noarchfield in returnedPackageRecordpayload. - A bug where the 
--pruneflag was not working correctly inconda env updatecommands has been fixed. - Environments are no longer aggressively updated to higher priority channels under certain conditions.
 - No more injection of channels from installed packages that do not exist or are unavailable.
 - All configured channels in 
PackagesNotFoundErrorexceptions print correctly. - No more crashes when a 
MatchSpecwith a build string is specified in the CLI and there's a pinned spec for the same package name. defaults::pkgworkarounds are only applied for the default valuedefault_channels.- Users won't be able to override pinned specs with incompatible CLI specs anymore. Instead, they must modify their pinned specs explicitly.
 
๐ What's New in Documentation? ๐โ
- Intentional deviations from conda's 
classicsolver behavior are now documented. 
Changes in Conda-Index 0.3.0โ
To update conda-index, run:
conda install -n base conda-index=0.3.0
โจ What's New? โจโ
--run-exportshas been added to generate CEP-12 compliantrun_exports.jsondocuments for eachsubdir.- Pretty-print 
repodata.jsonis no longer default, saving time and space. - Version requirement: 
conda >= 4.14. 
Changes in Pycosat 0.6.5/0.6.6โ
To update conda-index, run:
conda install -n base pycosat=0.6.6
โจ What's New? โจโ
- Pycosat 0.6.4 accidentally did not include the changes intended to be released. Pycosat 0.6.5 includes those changes.
 PyMem_Calloc()is utilized in order to initialize memory to0.
We โค๏ธ Our Communityโ
Altogether, we had 11 (!) new contributors this release cycle; thank you to all of our open source community members for helping making these improvements possible.
- @boldorider4 made their first contribution in conda-build#4960
 - @DaveKaretnyk made their first contribution in conda-build#5004
 - @dholth made their first contribution in pycosat#54
 - @jmcarpenter2 made their first contribution in conda#13034
 - @Mon-ius made their first contribution in conda#12811
 - @otaithleigh made their first contribution in conda#13035
 - @psteyer made their first contribution in conda#11610
 - @scdub made their first contribution in conda-build#4965
 - @tarcisioe made their first contribution in conda#9614
 - @wolfv made their first contribution in conda#13095 and conda-build#4813
 - @zeehio made their first contribution in conda#13075
 
If you have ideas or want to help improve any of the conda community projects, we love to see new (and returning) contributors! ๐
