跳转至主要内容

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 中,新的 pre-command 和 post-command 插件钩子现已可用,允许您在 conda 子命令之前或之后运行代码,以及经过大幅改进的子命令插件钩子和插件基础设施。 conda doctor 中还有一个新的健康检查,通过比较预期和计算的 sha256 校验和来检测环境中已更改的包,以及大幅扩展的 API 和命令文档 (conda env!)。

此外,以下功能和更改可在 conda 23.7.0 中找到

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

🔧 修复了什么? 🔧

以下错误修复在 conda 23.7.0 中实现

  • requests.exceptions.JSONDecodeError 用于确保与 requests 使用的不同 json 实现的兼容性。 这修复了一个导致仅尝试多个给定源 URL 中的第一个的错误。 这还将最低要求的 requests 版本提高到 2.27.0。
  • CONDA_OVERRIDE_OSX 设置为空字符串时,不再导出 __osx 虚拟包。
  • 已修复错误的 conda deactivate 行为,该行为取消设置与 conda activate 期间设置的那些相同的预先存在的环境变量。
  • 第三方子命令现在正确接收剩余参数,而不是 blanket 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 默认值以删除“Failed to get_static_lib_exports”警告消息。
  • 我们现在通过不传播顶级 conda-build 记录器来避免重复日志记录。
  • 修复了包含本地相对路径的子模块的仓库的 Git 克隆。

📄 文档中的新功能? 📄

  • pkg-spec 文档已更新,以提及 .conda 包格式。
  • 已删除 variants.rst 文档文件中不必要的 Jinja 包名称变量。

🌅 标记为弃用的内容? 🌅


我们 ❤️ 我们的社区

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

如果您有改进 conda 和/或 conda-build 的想法或想为此做出贡献,我们非常欢迎新的(和回归的)贡献者! 😄