Conda、Conda-Build 和 Conda-Libmamba-Solver 的五月发布
五月发布已到!🎊 Conda 23.5.0、conda-build 3.25.0 和 conda-libmamba-solver 23.5.0 现在已在 main 和 conda-forge 上提供
Conda 中的更改
要更新 conda,请运行
conda install -n base conda=23.5.0
✨ 新功能? ✨
期待已久的 conda doctor
子命令插件已经实现!相关的 conda 问题已经有九年历史了,并且一直是经常被要求的功能。conda doctor
命令使 conda 用户能够检测其 conda 环境中是否有文件丢失的软件包(即,损坏的软件包)。
此外,以下功能和更改可在 conda 23.5.0 中找到
conda list --reverse
是conda list
命令的新选项,它返回已安装软件包的反向列表。- 启用了签名验证的用户将收到警告,而不是关于错误配置的
info
级别消息。 - 围绕 conda 的内容信任代码添加了更多功能测试。
- 对于我们的构建系统,我们从
setup.py
切换到pyproject.toml
并使用 Hatchling。 - 现在优化了在
conda activate
调用期间导入的 Python 模块,以提高速度。 - 添加了
conda_cli
pytest fixture,以替换conda.testing.helpers.run_inprocess_conda_command
和conda.testing.integration.run_command
。 - 添加了
tmp_env
pytest fixture,以替换conda.testing.integration.make_temp_env
。 - 添加了
path_factory
pytest fixture,以替换自定义前缀逻辑,例如conda.testing.integration._get_temp_prefix
和conda.testing.integration.make_temp_prefix
。 - 以上所有三个 pytest fixture 都在文章 集成测试 中进行了文档化。
- 在
conda/activate.py
中定义Activator
类的方式已得到重构。 - 索引缓存元数据文件
.state.json
已重命名为.info.json
,以跟踪 草案 Repodata 元数据.info.json
CEP。 - 改进了使用
jlap
时的缓存锁定和日志记录。 - 项目的 README 示例已从 IPython Notebook 和 NumPy 更改为 PyTorch。
- 灵活求解和
repodata
日志中的重试语言现在更加用户友好。 - 现在支持 Python 3.11。
🔧 修复了什么? 🔧
在 conda 23.5.0 版本中实施了以下错误修复
- 如果
conda clean
无法获取文件统计信息,则不再失败。 - 如果
conda.deprecations.DeprecationHandler
收到错误的版本,则会提供回退版本。 - 当
context.subdir
在非 Windows 平台上为win-*
时,defaults
的默认值包括msys2
。 - 当非字符串类型写入索引缓存元数据时,避免了
TypeError
。 - 当
package_path
具有.conda
扩展名时,conda.core.package_cache_data.UrlsData.get_url
不再失败。 - 在
conda.sh
中不再预转换路径为 Windows 上的 Unix 样式;这样做是为了使它们在安装时可前缀替换。
🌅 标记为弃用的内容? 🌅
以下模块和函数被标记为弃用
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
(请改用conda env
)python -m conda_env
(请改用conda env
)conda.auxlib.packaging
conda.testing.integration.get_conda_list_tuple
(请改用conda.core.prefix_data.PrefixData().get()
)conda.testing.encode_for_env_var
conda.testing.integration.temp_chdir
(请改用monkeypatch.chdir
)
Conda-Build 中的更改
要更新 conda-build,请运行
conda install -n base conda-build=3.25.0
✨ 新功能? ✨
在最新版本的 conda-build 中,现在可以将使用虚拟软件包的 noarch 软件包添加到软件包的哈希内容中。这有助于为具有平台特定依赖项的不同平台多次构建 noarch 软件包。在 conda-build 3.25.0 中,可以为 __linux
、__osx
或 __win
构建不同的变体,并获得不冲突的软件包文件名。
此外,以下功能和更改可在 conda-build 3.25.0 中找到
- 支持
svn
源代码凭据(svn_username
和svn_password
)。 - 现在使用独立的
conda-index
而不是捆绑的索引代码。 - 对于我们的构建系统,我们从
setup.py
切换到pyproject.toml
并使用 Hatchling。 - 针对
conda_build.index.ChannelIndex._ensuredirs
的次要代码简化。 - 在 MacOS 上启用了
xattr
测试。 - 现在支持 Python 3.11。
🔧 修复了什么? 🔧
在 conda-build 3.25.0 版本中实施了以下错误修复
tests/commands
也可以在run_test.*
存在的情况下运行。- 当渲染使用
load_file_data
Jinja2 函数的 recipe 时,现在需要 source。 - 在构建期间将软件包下载到正确的
subdir
文件夹中。 - 在为多输出构建重建索引时,使用唯一的
subdir
变量名称,这修复了从osx-64
真实交叉编译osx-arm64
软件包时发生的错误。
🌅 标记为弃用的内容? 🌅
- 内联
conda index
逻辑(conda-build
仍然提供conda-index
又名conda index
CLI,但在构建期间使用独立的conda-index
)。 - 首选 独立的 conda-index 软件包,而不是
conda-build index
或conda index
,以使用更快的索引代码。 conda_build.metadata.ns_cfg
(请改用conda_build.get_selectors.get_selectors
)。(#4837)conda_build.config.python2_fs_encode
conda_build.config._ensure_dir
(请改用stdlib
的pathlib.Path.mkdir(exist_ok=True)
或os.makedirs(exist_ok=True)
)。
Conda-Libmamba-Solver 中的更改
要更新 conda-libmamba-solver,请运行
conda install -n base conda-libmamba-solver=23.5.0
✨ 新功能? ✨
在其他改进和错误修复中,最新版本的 conda-libmamba-solver 提供了一个 CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED
环境变量,以防止从已安装的软件包中注入 channel,这对于无法访问外部 channel 服务器的气隙环境非常有用。
此外,以下功能和更改可在 conda-libmamba-solver 23.5.0 中找到
- 简化
libmambapy.Context
初始化,以便我们仅设置我们使用的部分。 - 使用新的
RepoInterface
并删除SubdirData
子类解决方法,这需要 conda 23.5.0。 - 已知求解器行为差异现在已记录在案。
- 开发文档已更新,以反映构建系统和其他不准确之处的更改。
- 添加了重现已知求解器差异的测试。
- 现在临时跳过
libmamba
1.4.2 上的一些测试,以解决一些测试失败问题。
🔧 修复了什么? 🔧
在 conda-libmamba-solver 23.5.0 版本中实施了以下错误修复
- 已修复运行
conda update <package>
会导致在没有更新版本可用时软件包被降级的问题。 - conda-libmamba-solver 23.5.0 确保如果已存在经过身份验证的等效项,则不会从已安装的软件包的 channel 列表中重新注入未经身份验证的 channel。
context.repodata_threads
受到尊重。
🌅 标记为弃用的内容? 🌅
- 删除了不必要的用户代理测试。