Conda、Conda-Build 和 Conda-Libmamba-Solver 5 月份版本发布
5 月份版本发布啦!🎊 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 夹具已添加,以替换conda.testing.helpers.run_inprocess_conda_command
和conda.testing.integration.run_command
。tmp_env
pytest 夹具已添加,以替换conda.testing.integration.make_temp_env
。path_factory
pytest 夹具已添加,以替换自定义前缀逻辑,例如conda.testing.integration._get_temp_prefix
和conda.testing.integration.make_temp_prefix
。- 以上三个 pytest 夹具都已在文章 集成测试 中进行了解释。
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
收到错误版本,则会提供一个备用版本。 - 在非 Windows 平台上,当
context.subdir
为win-*
时,defaults
的默认值包含msys2
。 - 在将非字符串类型写入索引缓存元数据时,避免
TypeError
。 conda.core.package_cache_data.UrlsData.get_url
现在不再在package_path
具有.conda
扩展名时失败。- 不再在
conda.sh
中将路径预转换为 Unix 风格(在 Windows 上);这样做是为了使它们在安装时可替换前缀。
🌅 已标记为 弃用 的内容? 🌅
以下模块和函数已标记为弃用
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 的最新版本中,现在可以将使用虚拟包的无体系结构包添加到包的哈希内容中。这有助于针对不同的平台(具有平台特定依赖项)多次构建无体系结构包。在 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 函数的配方时,现在需要源。 - 在构建期间将包下载到正确的
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
环境变量,以防止从已安装的包中注入通道,这对于无法访问外部通道服务器的隔离环境很有用。
此外,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 确保如果已存在经身份验证的等效项,则不会从已安装的包中在通道列表中重新注入未经身份验证的通道。
context.repodata_threads
已被使用。
🌅 已标记为 弃用 的内容? 🌅
- 已删除不必要的用户代理测试。