May Releases for Conda, Conda-Build, and Conda-Libmamba-Solver
May releases are here! ๐ Conda 23.5.0, conda-build 3.25.0, and conda-libmamba-solver 23.5.0 are now available on both main and conda-forge:
Changes in Condaโ
To update conda, run:
conda install -n base conda=23.5.0
โจ What's New? โจโ
The long-awaited conda doctor
subcommand plugin has been implemented! The related conda issue is over nine years old and has been a regularly requested feature. The conda doctor
command enables conda users to detect any packages with files missing (i.e., corrupt packages) in their conda environment.
Additionally, the following features and changes can be found in conda 23.5.0:
conda list --reverse
is a new option for theconda list
command which returns a reversed list of installed packages.- Folks who have signature verification enabled will get warnings instead of an
info
-level message about misconfiguration. - More functional tests have been added around conda's content trust code.
- For our build system, we switched from
setup.py
topyproject.toml
and use Hatchling. - Which Python modules get imported during
conda activate
calls are now optimized for speed. - The
conda_cli
pytest fixture has been added in order to replaceconda.testing.helpers.run_inprocess_conda_command
andconda.testing.integration.run_command
. - The
tmp_env
pytest fixture has been added in order to replaceconda.testing.integration.make_temp_env
. - The
path_factory
pytest fixture has been added to replace custom prefix logic likeconda.testing.integration._get_temp_prefix
andconda.testing.integration.make_temp_prefix
. - All three of the above pytest fixtures have been documented in the article Integration Tests.
- The way that the
Activator
classes are defined inconda/activate.py
has been refactored. - The index cache metadata file
.state.json
was renamed to.info.json
to track draft Repodata Metadata.info.json
CEP. - Improved cache locking and logging when using
jlap
. - The project's README example has changed from IPython Notebook and NumPy to PyTorch.
- Retry language in flexible solve and
repodata
logs are now more user friendly. - Python 3.11 is now supported.
๐ง What Got Fixed? ๐งโ
The following bug fixes were implemented in the 23.5.0 version of conda:
conda clean
no longer fails if it was unable to get the file stats.- If
conda.deprecations.DeprecationHandler
receives a bad version, a fallback version is provided. - The default value for
defaults
includesmsys2
whencontext.subdir
iswin-*
on non-Windows platforms. TypeError
s are avoided when non-string types are written to the index cache metadata.conda.core.package_cache_data.UrlsData.get_url
no longer fails whenpackage_path
has a.conda
extension.- No more pre-converting of paths to Unix style on Windows in
conda.sh
; this done to make them prefix-replaceable upon installation.
๐ What's Marked for Deprecation? ๐ โ
The following modules and functions were marked for deprecation:
conda_env.pip_util.get_pip_version
conda_env.pip_util.PipPackage
conda_env.pip_util.installed
conda_env.pip_util._canonicalize_name
conda_env.pip_util.add_pip_installed
conda_env.env.load_from_directory
python -m conda_env.cli.main
(useconda env
instead)python -m conda_env
(useconda env
instead)conda.auxlib.packaging
conda.testing.integration.get_conda_list_tuple
(useconda.core.prefix_data.PrefixData().get()
instead)conda.testing.encode_for_env_var
conda.testing.integration.temp_chdir
(usemonkeypatch.chdir
instead)
Changes in Conda-Buildโ
To update conda-build, run:
conda install -n base conda-build=3.25.0
โจ What's New? โจโ
In the latest version of conda-build, noarch packages that use virtual packages can now be added to the hash contents of a package. This facilitates the building of noarch packages multiple times for different platforms with platform-specific dependencies. In conda-build 3.25.0, different variants can be built for __linux
, __osx
, or __win
and get non-clashing package file names.
Additionally, the following features and changes can be found in conda-build 3.25.0:
- Support for
svn
source credentials (svn_username
andsvn_password
). - Standalone
conda-index
is now utilized instead of bundled indexing code. - For our build system, we switched from
setup.py
topyproject.toml
and use Hatchling. - Minor code simplification for
conda_build.index.ChannelIndex._ensuredirs
. xattr
test is enabled on MacOS.- Python 3.11 is now supported.
๐ง What Got Fixed? ๐งโ
The following bug fixes were implemented in the 3.25.0 version of conda-build:
tests/commands
can also run in the presence ofrun_test.*
.- When rendering a recipe that uses the
load_file_data
Jinja2 function, the source is now required. - Download packages during build into the correct
subdir
folder. - A unique
subdir
variable name is used when rebuilding the index for multi-output builds, which fixes an error that occurs during true cross-compilation ofosx-arm64
packages fromosx-64
.
๐ What's Marked for Deprecation? ๐ โ
- Inline
conda index
logic (conda-build
still providesconda-index
a.k.a.conda index
CLI, but uses standaloneconda-index
during builds). - Prefer the standalone conda-index package, instead of
conda-build index
orconda index
, to use faster indexing code. conda_build.metadata.ns_cfg
(useconda_build.get_selectors.get_selectors
instead). (#4837)conda_build.config.python2_fs_encode
conda_build.config._ensure_dir
(usestdlib
'spathlib.Path.mkdir(exist_ok=True)
oros.makedirs(exist_ok=True)
instead).
Changes in Conda-Libmamba-Solverโ
To update conda-libmamba-solver, run:
conda install -n base conda-libmamba-solver=23.5.0
โจ What's New? โจโ
Amongst other improvements and bug fixes, the latest version of the conda-libmamba-solver provides a CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED
environment variable to prevent channels from being injected from installed packages, which is useful for air-gapped environments where external channel servers are not reachable.
Additionally, the following features and changes can be found in conda-libmamba-solver 23.5.0:
- Simplify
libmambapy.Context
initialization so that we only set the parts that we use. - Use the new
RepoInterface
and remove theSubdirData
subclass workarounds, which requires conda 23.5.0. - Known solver behavior differences are now documented.
- Development docs have been updated to reflect changes in build system and other inaccuracies.
- Tests reproducing the known solver differences were added.
- Some tests on
libmamba
1.4.2 are now skipped temporarily to workaround some test failures.
๐ง What Got Fixed? ๐งโ
The following bug fixes were implemented in the 23.5.0 version of conda-libmamba-solver:
- An issue where running
conda update <package>
would result in the package being downgraded if no newer versions were available has been fixed. - conda-libmamba-solver 23.5.0 ensures that unauthenticated channels are not re-injected in the channel lists from installed packages if an authenticated equivalent is already present.
context.repodata_threads
are honored.
๐ What's Marked for Deprecation? ๐ โ
- Unnecessary user-agent tests were removed.