跳至主要内容

conda 和 conda-build 2023 年 7 月发布

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

2023 年 7 月发布的版本已经发布了!🎊 Conda 23.7.0、23.7.1、23.7.2 和 conda-build 3.26.0 现在已在 mainconda-forge 频道上提供。

Conda 的变更 23.7.0/23.7.1/23.7.2

要更新 conda,请运行

conda install -n base conda=23.7.2

✨ 新特性 ✨

在最新版本的 conda 中,现在提供了新的预命令和后命令插件钩子,允许您在 conda 子命令之前或之后运行您的代码,以及一个改进的子命令插件钩子和插件基础设施。还有一个新的 conda doctor 健康检查,通过比较预期和计算的 sha256 校验和来检测环境中已更改的包,以及一个扩展的 API 和命令文档 (conda env!)。

此外,在 conda 23.7.0 中可以找到以下特性和更改

  • 一个新的 conda.deprecations.DeprecationHandler.action 帮助程序,用于更轻松地进行 argparse.Action 的弃用。
  • 现在支持 FreeBSD 操作系统,另外 freebsd-64 现在是 x86-64 上 FreeBSD 的已知子目录。
  • 当提供 --name--prefix 时,不再模拟 $CONDA_PREFIX
  • 支持 MatchSpec 语法中的 sha256 过滤器(例如 *[sha256=f453db4ffe2271ec492a2913af4e61d4a6c118201f07de757df0eff769b65d2e])。
  • 根据 PEP 632 迁移指南,已删除 distutils,改用 setuptools 60 及更高版本中的供应商版本或标准库等效项。
  • 现在在存储库的根目录中有一个新的 CITATION.cff 文件,以便用户更轻松地引用 conda。
  • 有一个可选的 CondaSubcommand.configure_parser,允许第三方插件连接到 conda 的参数解析器。
  • 只有第三方子命令会显示在 conda --help 中;插件和旧式命令也会使用该命令进行去重。
  • 插件使用它们的规范/完全限定名称注册,而不是易于伪造的入口点名称。
  • 子命令解析已重构为使用贪婪解析器,因为 argparse.REMAINDER 存在 已知问题

🔧 修复问题 🔧

在 conda 23.7.0 中实施了以下错误修复

  • requests.exceptions.JSONDecodeError 用于确保与 requests 使用的不同 json 实现的兼容性。这修复了导致仅尝试多个给定源 URL 中的第一个 URL 的错误。这也将所需的最小 requests 版本提高到 2.27.0。
  • CONDA_OVERRIDE_OSX 设置为空字符串时,不再导出 __osx 虚拟包。
  • 修复了错误的 conda deactivate 行为,该行为会取消设置在 conda activate 期间设置的与先前存在的环境变量相同的环境变量。
  • 第三方子命令现在可以正确接收剩余参数,而不是 sys.argv[2:],这会破坏 conda_cli 测试。

在 conda 23.7.1/23.7.2 中实施了以下错误修复

  • 修复了对 --json--debug 参数的解析回归。

📄 文档中的新特性 📄

  • pre_commandspost_commands 插件钩子。
  • 已为所有公共模块添加文档字符串。
  • API 文档现在使用 sphinx-autoapi 自动生成。
  • 所有手动重定向已使用 sphinx-reredirects 转换为配置。
  • 插件索引页已修改,以更轻松地了解如何创建 conda 插件。
  • 已添加缺少的 conda env CLI 文档。

🌅 什么被标记为 弃用? 🌅

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


Conda-Build 的变更 3.26.0

要更新 conda-build,请运行

conda install -n base conda-build=3.26.0

✨ 新特性 ✨

在最新版本的 conda-build 中,记录了 extra-meta 数据,以便更轻松地验证正确 的 extra-meta 数据是否被刻录到包中(这也帮助将包与其构建日志相关联)。该特性最初在 PR #4303 中引入,现在通过记录调用得到改进。

此外,在 conda-build 3.26.0 中可以找到以下特性和更改

  • pip 已添加到 env-doc make 命令中,以便该函数能够正常工作(pip 现在不再默认添加到 python conda 包中)。
  • 子命令被实现为 conda 插件。
  • conda_build.skeletons.pypi 中删除了重复的 get_summary 调用。
  • 由于最近的 OpenSSL 3.0.8 版本发布为默认版本,导致 resolved_packages 测试失败,现在已修复。

🔧 修复问题 🔧

在 conda-build 3.26.0 中实施了以下错误修复

  • 修复了使用较新的 (py)lief 版本处理未知二进制文件的处理。
  • 禁用了 LIEF 日志,以消除“未知格式”警告消息。
  • conda_build.configenable_static 的默认值已恢复,以消除“无法获取静态库导出”警告消息。
  • 我们现在通过不传播顶级 conda-build 日志来避免重复记录。
  • 修复了包含包含本地相对路径的子模块的存储库的 Git 克隆。

📄 文档中的新特性 📄

  • pkg-spec 文档已更新,以提及 .conda 包格式。
  • 已从 variants.rst 文档文件中删除了 pkg-spec 文档已更新,以提及 .conda 包格式。

🌅 什么被标记为 弃用? 🌅


我们 ❤️ 我们的社区

总共在这个发布周期中,我们有 10 位 (!) 新的贡献者加入了 conda 和 conda-build 存储库;感谢我们所有开源社区成员帮助我们使 conda 和 conda-build 的新版本如此出色。

如果您有想法或想帮助改进 conda 和/或 conda-build,我们很高兴看到新的(和回归的)贡献者!😄