conda 和 conda-build 2023 年 7 月发布
2023 年 7 月发布的版本已经发布了!🎊 Conda 23.7.0、23.7.1、23.7.2 和 conda-build 3.26.0 现在已在 main
和 conda-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_commands
和post_commands
插件钩子。- 已为所有公共模块添加文档字符串。
- API 文档现在使用
sphinx-autoapi
自动生成。 - 所有手动重定向已使用
sphinx-reredirects
转换为配置。 - 插件索引页已修改,以更轻松地了解如何创建 conda 插件。
- 已添加缺少的
conda env
CLI 文档。
🌅 什么被标记为 弃用? 🌅
以下模块和函数被标记为弃用
conda.base.context.context.root_dir
(请使用conda.base.context.context.root_prefix
代替)conda.plugins.subcommands.doctor.cli.get_prefix
(请使用conda.base.context.context.target_prefix
代替)conda.models.leased_path_entry.LeasedPathEntry
conda.models.enums.LeasedPathType
conda.common.temporary_content_in_file
(请使用tempfile
代替)conda.cli.python_api
(请使用conda.testing.conda_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.config
中enable_static
的默认值已恢复,以消除“无法获取静态库导出”警告消息。- 我们现在通过不传播顶级 conda-build 日志来避免重复记录。
- 修复了包含包含本地相对路径的子模块的存储库的 Git 克隆。
📄 文档中的新特性 📄
pkg-spec
文档已更新,以提及.conda
包格式。- 已从
variants.rst
文档文件中删除了pkg-spec
文档已更新,以提及.conda
包格式。
🌅 什么被标记为 弃用? 🌅
我们 ❤️ 我们的社区
总共在这个发布周期中,我们有 10 位 (!) 新的贡献者加入了 conda 和 conda-build 存储库;感谢我们所有开源社区成员帮助我们使 conda 和 conda-build 的新版本如此出色。
- @johanneskoester 在 conda#12683 中做出了他们的首次贡献
- @josegonzalez 在 conda-build#3998 中做出了他们的首次贡献
- @kalawac 在 conda#12738 中做出了他们的首次贡献
- @lesteve 在 conda#12715 中做出了他们的首次贡献
- @marcoesters 在 conda#12863 中做出了他们的首次贡献
- @mattkram 在 conda#12730 中做出了他们的首次贡献
- @morremeyer 在 conda#12871 中做出了他们的首次贡献
- @mpotane 在 conda#11740 中做出了他们的首次贡献
- @rfezzani 在 conda-build#4850 中做出了他们的首次贡献
- @schackartk 在 conda#12781 中做出了他们的首次贡献
如果您有想法或想帮助改进 conda 和/或 conda-build,我们很高兴看到新的(和回归的)贡献者!😄