跳到主要内容

Conda、Conda-Build 和 Conda-Libmamba-Solver 的五月发布

·5 分钟阅读
Bianca Henderson
Conda 维护者 🐍📦

五月发布已到!🎊 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 --reverseconda list 命令的新选项,它返回已安装软件包的反向列表。
  • 启用了签名验证的用户将收到警告,而不是关于错误配置的 info 级别消息。
  • 围绕 conda 的内容信任代码添加了更多功能测试。
  • 对于我们的构建系统,我们从 setup.py 切换到 pyproject.toml 并使用 Hatchling
  • 现在优化了在 conda activate 调用期间导入的 Python 模块,以提高速度。
  • 添加了 conda_cli pytest fixture,以替换 conda.testing.helpers.run_inprocess_conda_commandconda.testing.integration.run_command
  • 添加了 tmp_env pytest fixture,以替换 conda.testing.integration.make_temp_env
  • 添加了 path_factory pytest fixture,以替换自定义前缀逻辑,例如 conda.testing.integration._get_temp_prefixconda.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-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_usernamesvn_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-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 受到尊重。

🌅 标记为弃用的内容? 🌅

  • 删除了不必要的用户代理测试。