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 中,新的 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_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
fixture)
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
默认值以删除“Failed to get_static_lib_exports”警告消息。 - 我们现在通过不传播顶级 conda-build 记录器来避免重复日志记录。
- 修复了包含本地相对路径的子模块的仓库的 Git 克隆。
📄 文档中的新功能? 📄
pkg-spec
文档已更新,以提及.conda
包格式。- 已删除
variants.rst
文档文件中不必要的 Jinja 包名称变量。
🌅 标记为弃用的内容? 🌅
我们 ❤️ 我们的社区
总而言之,在这个发布周期中,我们有 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 的想法或想为此做出贡献,我们非常欢迎新的(和回归的)贡献者! 😄