跳至主要内容

Conda、Conda-Build 和 Conda-Libmamba-Solver 5 月份版本发布

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

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 --reverseconda list 命令的一个新选项,它返回已安装包的反向列表。
  • 启用 签名验证 的用户将收到警告,而不是关于错误配置的 info 级别的消息。
  • 在 conda 的内容信任代码周围添加了更多功能测试。
  • 对于我们的构建系统,我们从 setup.py 切换到 pyproject.toml 并使用 Hatchling
  • conda activate 调用期间导入的 Python 模块现在针对速度进行了优化。
  • conda_cli pytest 夹具已添加,以替换 conda.testing.helpers.run_inprocess_conda_commandconda.testing.integration.run_command
  • tmp_env pytest 夹具已添加,以替换 conda.testing.integration.make_temp_env
  • path_factory pytest 夹具已添加,以替换自定义前缀逻辑,例如 conda.testing.integration._get_temp_prefixconda.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.subdirwin-* 时,defaults 的默认值包含 msys2
  • 在将非字符串类型写入索引缓存元数据时,避免 TypeError
  • conda.core.package_cache_data.UrlsData.get_url 现在不再在 package_path 具有 .conda 扩展名时失败。
  • 不再在 conda.sh 中将路径预转换为 Unix 风格(在 Windows 上);这样做是为了使它们在安装时可替换前缀。

🌅 已标记为 弃用 的内容? 🌅

以下模块和函数已标记为弃用


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_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 函数的配方时,现在需要源。
  • 在构建期间将包下载到正确的 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 环境变量,以防止从已安装的包中注入通道,这对于无法访问外部通道服务器的隔离环境很有用。

此外,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 已被使用。

🌅 已标记为 弃用 的内容? 🌅

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