The January 2024 releases included updates to four conda community projects: conda, conda-build, conda-libmamba-solver, and conda-index! ๐ Each of these have been released to both main and conda-forge.
Changes in Conda 24.1.0/24.1.1/24.1.2โ
To update conda, run:
conda install -n base conda=24.1.2
โจ What's New? โจโ
- Verify signatures on to-be-installed packages instead of on all packages.
- Add new
pre-solvesandpost-solvesplugin hooks. - Add support for Python 3.12.
- Check
repodata.json.zstfor faster repodata downloads. - Add
--skip-flexible-searchoption inconda searchto skip flexible search. - Provide a more useful warning when attempting to rename a non-existent prefix.
- Add a new flag
--keep-envto be used withconda remove --all. It allows users to delete all packages in the environment while retaining the environment itself. - Add a Y/N prompt warning users that
conda env removeandconda remove --alldeletes not only the conda packages but the entirety of the specified environment. - Add
--repodata-use-zst/--no-repodata-use-zstflag to controlrepodata.json.zstcheck; correspondingrepodata_use_zst: true/falsesetting for.condarc. Default is to check forrepodata.json.zst. Disable if remote returns unparsablerepodata.json.zstinstead of correct data or 404.
๐ง What Got Fixed? ๐งโ
- Create the
~/.condadirectory before trying to write to theenvironments.txtfile. - Ensure
PackageRecord.timestampis dumped in milliseconds. - Fix error when setting a non-default repodata filename via
CONDA_REPODATA_FNS. - Fix the config file location where the integrated Anaconda client gateway loads user configuration from. This is a regression introduced in conda 23.11.0 when the
platformdirslibrary was adopted. - Interpret missing
Cache-Controlheader asmax-age=0instead of exception. - (24.1.1) Fallback to
repodata.jsonifrepodata.json.zstcannot be decompressed as zstandard. - (24.1.1) Fallback to
repodata.jsonfromrepodata.json.zston most 4xx error codes. - (24.1.2) Fix
conda.core.subdir_data.fetch_repodata_remote_requestfailure whenrepodata_use_zstis enabled.
๐ What's Marked for Deprecation? ๐ โ
The conda_env.* modules have been merged into the conda package!
To improve the integration of the conda env subcommand (previously standalone), we've moved its
code into the conda package, while allowing old conda env commands to still work via Python
import redirects. This is a first step of many to improving the user experience of the conda
command line interface related to environment management.
๐ What's New in Documentation? ๐โ
- Update Getting Started documentation in User Guide.
- Add GoatCounter for docs site analytics.
- Improve type hints and doc strings.
Changes in Conda-Build 24.1.0/24.1.1/24.1.2โ
To update conda-build, run:
conda install -n base conda-build=24.1.2
โจ What's New? โจโ
- Update
conda inspect channelsto use updated solver/transaction logic. - Relax
script_enverror in outputs when variable referenced inscript_envis not defined. This unifies current behavior with the top-level build. - Add support for Python 3.12.
- Adopt calendar versioning (CalVer) per CEP-8 for consistency with conda.
- Adopt expedited CEP-9 deprecation policy.
๐ง What Got Fixed? ๐งโ
- (24.1.1) Fix nonzero exitcode on success.
- (24.1.2) Fix
rpathspatcher being run on symbolic links. - (24.1.2) Fix corrupted package cache for outputs in subpackage tests.
๐ What's Marked for Deprecation? ๐ โ
This is the first release of conda-build removing code previously marked as deprecated per the expedited deprecation schedule. The following is a list of what was removed:
conda_build.api.update_indexconda_build.cli.main_build.mainconda_build.cli.main_convert.mainconda_build.cli.main_debug.mainconda_build.cli.main_develop.mainconda_build.cli.main_indexconda_build.cli.main_inspect.mainconda_build.cli.main_metapackage.mainconda_build.cli.main_render.mainconda_build.cli.main_skeleton.mainconda_build.conda_interface.IndexRecordconda_build.conda_interface.CrossPlatformStLinkconda_build.conda_interface.SignatureErrorconda_build.conda_interface.which_packageconda_build.conda_interface.which_prefixconda_build.conda_interface.get_installed_versionconda_build.config.python2_fs_encodeconda_build.config._ensure_dirconda_build.config.Config.CONDA_LUAconda_build.config.Config.CONDA_PYconda_build.config.Config.CONDA_NPYconda_build.config.Config.CONDA_PERLconda_build.config.Config.CONDA_Rconda_build.environ.clean_pkg_cacheconda_build.index.update_indexconda_build.inspect_pkg.dist_filesconda_build.inspect_pkg.which_package(avoid_canonical_channel_name)conda_build.inspect_pkg._installedconda_build.metadata.Metadata.name(fail_ok)conda_build.os_utils.ldd.get_package_filesconda_build.os_utils.liefldd.is_stringconda_build.os_utils.liefldd.codefile_type_lieflddconda_build.os_utils.liefldd.codefile_type_pylddconda_build.os_utils.liefldd.codefile_typeconda_build.os_utils.pyldd.mach_o_changeconda_build.os_utils.pyldd.is_codefileconda_build.os_utils.pyldd.codefile_typeconda_build.os_utils.pyldd.inspect_rpathsconda_build.os_utils.pyldd.get_runpathsconda_build.os_utils.pyldd.otool_sysconda_build.os_utils.pyldd.ldd_sysconda_build.plugin.indexconda_build.post.determine_package_natureconda_build.post.library_nature(subdir)conda_build.post.library_nature(bldpkgs_dirs)conda_build.post.library_nature(output_folder)conda_build.post.library_nature(channel_urls)conda_build.post.dists_from_namesconda_build.post.FakeDistconda_build.post._get_fake_pkg_distconda_build.utils.relativeconda_build.utils.samefile
In addition, we continued with the effort to remove any remaining usage of the legacy conda.models.dist.Dist object:
- Mark
conda inspect channels --test-installableas pending deprecation. - Mark
conda_build.inspect_pkg.check_install(package)as pending deprecation in favor ofconda_build.inspect_pkg.check_install(subdir). - Mark
conda_build.inspect_pkg.check_install(prepend)as pending deprecation. - Mark
conda_build.inspect_pkg.check_install(minimal_hint)as pending deprecation. - Mark
conda_build.conda_interface.Distas pending deprecation. - Mark
conda_build.conda_interface.display_actionsas pending deprecation. - Mark
conda_build.conda_interface.execute_actionsas pending deprecation. - Mark
conda_build.conda_interface.execute_planas pending deprecation. - Mark
conda_build.conda_interface.get_indexas pending deprecation. - Mark
conda_build.conda_interface.install_actionsas pending deprecation. - Mark
conda_build.conda_interface.linkedas pending deprecation. - Mark
conda_build.conda_interface.linked_dataas pending deprecation. - Mark
conda_build.utils.linked_data_no_multichannelsas pending deprecation. - Mark
conda_build.environ.get_install_actionsas pending deprecation in favor ofconda_build.environ.get_package_records. - Mark
conda_build.environ.create_env(specs_or_actions)as pending deprecation in favor ofconda_build.environ.create_env(specs_or_precs). - Mark
conda_build.index.channel_dataas pending deprecation. - Mark
conda_build.index._determine_namespaceas pending deprecation. - Mark
conda_build.index._make_secondsas pending deprecation. - Mark
conda_build.index.REPODATA_VERSIONas pending deprecation. - Mark
conda_build.index.CHANNELDATA_VERSIONas pending deprecation. - Mark
conda_build.index.REPODATA_JSON_FNas pending deprecation. - Mark
conda_build.index.REPODATA_FROM_PKGS_JSON_FNas pending deprecation. - Mark
conda_build.index.CHANNELDATA_FIELDSas pending deprecation. - Mark
conda_build.index._clear_newline_charsas pending deprecation. - Mark
conda_build.index._apply_instructionsas pending deprecation. - Mark
conda_build.index._get_jinja2_environmentas pending deprecation. - Mark
conda_build.index._maybe_writeas pending deprecation. - Mark
conda_build.index._maybe_build_stringas pending deprecation. - Mark
conda_build.index._warn_on_missing_dependenciesas pending deprecation. - Mark
conda_build.index._cache_post_install_detailsas pending deprecation. - Mark
conda_build.index._cache_recipeas pending deprecation. - Mark
conda_build.index._cache_run_exportsas pending deprecation. - Mark
conda_build.index._cache_iconas pending deprecation. - Mark
conda_build.index._make_subdir_index_htmlas pending deprecation. - Mark
conda_build.index._make_channeldata_index_htmlas pending deprecation. - Mark
conda_build.index._get_source_repo_git_infoas pending deprecation. - Mark
conda_build.index._cache_info_fileas pending deprecation. - Mark
conda_build.index._alternate_file_extensionas pending deprecation. - Mark
conda_build.index._get_resolve_objectas pending deprecation. - Mark
conda_build.index._get_newest_versionsas pending deprecation. - Mark
conda_build.index._add_missing_depsas pending deprecation. - Mark
conda_build.index._add_prev_ver_for_featuresas pending deprecation. - Mark
conda_build.index._shard_newest_packagesas pending deprecation. - Mark
conda_build.index._build_current_repodataas pending deprecation. - Mark
conda_build.index.ChannelIndexas pending deprecation. - Mark
conda_build.render.actions_to_pinsas pending deprecation. - Mark
conda_build.render.execute_download_actions(actions)as pending deprecation in favor ofconda_build.render.execute_download_actions(precs). - Mark
conda_build.render.get_upstream_pins(actions)as pending deprecation in favor ofconda_build.render.get_upstream_pins(precs).
๐ What's New in Documentation? ๐โ
- Add GoatCounter for docs site analytics.
Changes in Conda-Libmamba-Solver 24.1.0โ
To update conda-libmamba-solver, run:
conda install -n base conda-libmamba-solver=24.1.0
โจ What's New? โจโ
- Prioritize explicitly requested specs with stricter constraints over implicit ones or name-only specs (e.g. a CLI-specified
name=version=buildwill be sent to the solver before CLI-specifiedname=versionandname). - Load
pkgs_dirsrecords when called in offline mode.
๐ง What Got Fixed? ๐งโ
- Fix a regression introduced in 23.11.1, where certain solves would hard crash due to the given specs input order.
- Properly propagate customized local channels (conda-build workspaces). Requires
libmamba 1.5.6or above. - Do not raise an error if an unsupported
MatchSpecfield can be safely dropped instead. Currently ignoringurl,md5andsha256. - Do not crash if a stateless repodata cache is accessed with
--offlineor--use-index-cache.
Changes in Conda-Index 0.4.0โ
To update conda-index, run:
conda install -n base conda-index=0.4.0
โจ What's New? โจโ
- Add
--compact-json/--no-compact-jsonoption, default to compact. - Add an
indexsubcommand using conda's new subcommand plugin hook, allowingconda indexinstead ofpython -m conda_index. Note the CLI has changed compared to oldconda-index. Whenconda-build < 24.1.0is installed, the olderconda-indexcode will still be used instead of this plugin.
๐ง What Got Fixed? ๐งโ
- Check size in addition to
mtimewhen deciding which packages to index. - Update cached
index.json, not just stat values, for changed packages that are already indexed.
We โค๏ธ Our Communityโ
Altogether, we had 2 (!) new contributors this release cycle; thank you to all of our open source community members for helping making these improvements possible.
- @schuylermartin45 made their first contribution in conda#13385
- @samhaese made their first contribution in conda#13465
If you have ideas or want to help improve any of the conda community projects, we love to see new (and returning) contributors! ๐
