2023 年 9 月发布
·阅读时长 6 分钟
2023 年 9 月发布包含对五个 Conda 社区项目的更新:Conda、Conda-build、Conda-libmamba-solver、Conda-index 和 Pycosat!🎉 这些项目都发布到了 main
和 conda-forge
。
Conda 中的变化 23.9.0
要更新 Conda,请运行
conda install -n base conda=23.9.0
📢 特别公告 📢
信息
Conda 的默认求解器将在不久的将来的特殊 23.10.0 版本中更改为 conda-libmamba-solver
!
您现在就可以通过 配置您的 Conda 安装以使用它(例如,通过运行 conda config --set solver libmamba
)来从 conda-libmamba-solver
中受益。
当前的“经典”求解器基于 pycosat/Picosat,并将继续作为 Conda 的一部分,并在可预见的将来可用。 回退是可能的并且可用。
有关此更改的更多详细信息以及完整公告,请参阅 conda 23.9.0 变更日志。
✨ 新功能 ✨
- 为 Conda 添加了一个新的“身份验证处理程序”插件挂钩。 查看新的
conda-auth
插件以获取示例。 - 索引缓存元数据默认情况下是锁定的;现在也提供了一个
--no-lock
选项。 - 一个新的
context.register_envs
选项可以控制在创建环境时是否在~/.conda/environments.txt
中注册环境。 默认值为 true。 - 新的详细输出详细程度级别(即,旧的调试级别
-vv
现在是-vvv
)。 - 已将对
truststore
的支持添加到ssl_verify
配置选项,使 Conda 能够使用操作系统证书存储(需要 Python 3.10 或更高版本)。 - 现在支持
emscripten-wasm32
和wasi-wasm32
平台。
🔧 修复问题 🔧
conda env create
在使用 pip 依赖项写入磁盘之前检查目录权限。- 当
CONDA_SSL_VERIFY=false
时,隐藏 JLAP 的InsecureRequestWarning
,与非 JLAP 行为相匹配。 - 不再允许使用冒号创建 Conda 环境。
- 使用 JLAP 和
file:///
URI 时,已修复记录不存在请求的AttributeError
响应。 - 为了更清晰的日志,进度条不再显示在非交互式运行中。
--json
和--debug
默认值为NULL
,因此不会覆盖CONDA_JSON
和CONDA_DEBUG
环境变量。- 已修复
conda remove --all --json
输出。 - 测试数据已更新,以停止触发安全扫描仪的误报。
- WSL 上不再出现基本命令(例如,
conda info
)的性能下降。 - Conda 现在配置为忽略“Retry-After”标头,以避免此值非常大并导致 Conda 无限期挂起的情况。
repodata.info.json
上的JSONDecodeError
被视为警告,相当于缺少repodata.info.json
。- 已修复
conda config --show-sources --json
的排序错误。 - 现在检测到
find_commands
中的OSError
,以解决 Windows 上的错误PATH
条目。 conda env update --prune
仅使用来自environment.yml
文件的规范,并忽略历史规范。
🌅 标记为 弃用 的内容? 🌅
这是 Conda 第一个移除之前根据 弃用时间表 标记为弃用的代码的版本。 以下是已移除内容的列表
conda.another_unicode()
conda._vendor.toolz
conda._vendor.tqdm
conda.auxlib.decorators.memoized
conda.base.context.Context.experimental_solver
conda.base.context.Context.conda_private
conda.base.context.Context.cuda_version
conda.base.context.get_prefix()
conda.cli.common.ensure_name_or_prefix()
--experimental-solver
conda.common.cuda
conda.common.path.explode_directories(already_split)
conda.common.url.escape_channel_url()
conda.core.index.check_whitelist()
conda.core.solve._get_solver_class()
conda.core.subdir_data.read_mod_and_etag()
conda.gateways.repodata.RepodataState.load()
conda.gateways.repodata.RepodataState.save()
conda.lock
conda_env.cli.common.stdout_json()
conda_env.cli.common.get_prefix()
conda_env.cli.common.find_prefix_name()
Conda-Build 中的变化 3.27.0
要更新 Conda-build,请运行
conda install -n base conda-build=3.27.0
✨ 新功能 ✨
- 已移除
glob2
依赖项。 - 现在支持
emscripten-wasm32
和wasi-wasm32
平台。
🔧 修复问题 🔧
- Conda 命令插件中的导入已延迟到使用该命令时,避免了导入时的副作用。
📄 文档中的新内容 📄
- 改进了
~=
(兼容性发布)匹配规范的格式。 - 文档现在阐明了
build
前缀是在host
前缀之后激活的。 - 已添加解释说明,指出 Conda-build 应该从基本环境中运行。
Conda-Libmamba-Solver 中的变化 23.9.0/23.9.1
要更新 Conda-libmamba-solver,请运行
conda install -n base conda-libmamba-solver=23.9.1
✨ 新功能 ✨
- 提高了
notify_conda_outdated
逻辑的性能。 - Libmamba 的
repoquery
搜索功能现在作为 Conda 子命令插件公开。 - 已重写
libsolv
任务的创建方式,利用了libmamba
的add_pin
功能(需要libmambapy >=1.5.1
)。 - 仅名称的固定现在会锁定已安装的相应软件包。
- 如果可用且最近,将使用 repodata 的
.solv
缓存。
🔧 修复问题 🔧
- 求解器在连续两次运行相同的命令时不再在两个兼容的解决方案之间跳动。
- 没有传递通道的命令得到优雅地处理。
- 已添加解决方法,用于返回的
PackageRecord
负载中缺少noarch
字段。 - 已修复
conda env update
命令中--prune
标志无法正常工作的错误。 - 在某些情况下,环境不再被积极更新到更高优先级的通道。
- 不再注入来自不存在或不可用的已安装软件包的通道。
PackagesNotFoundError
异常中的所有已配置通道都正确打印。- 在 CLI 中指定了具有构建字符串的
MatchSpec
且存在具有相同软件包名称的固定规范时,不再出现崩溃。 defaults::pkg
解决方法仅适用于默认值default_channels
。- 用户将无法再使用不兼容的 CLI 规范覆盖固定规范。 相反,他们必须显式修改他们的固定规范。
📄 文档中的新内容 📄
- 现在记录了与 Conda 的
classic
求解器行为有意偏离的地方。
Conda-Index 中的变化 0.3.0
要更新 Conda-index,请运行
conda install -n base conda-index=0.3.0
✨ 新功能 ✨
- 已添加
--run-exports
以为每个subdir
生成符合 CEP-12 的run_exports.json
文档。 - 不再默认美化打印
repodata.json
,节省时间和空间。 - 版本要求:
conda >= 4.14
。
Pycosat 中的变化 0.6.5/0.6.6
要更新 Conda-index,请运行
conda install -n base pycosat=0.6.6
✨ 新功能 ✨
- Pycosat 0.6.4 意外地没有包含要发布的更改。 Pycosat 0.6.5 包含这些更改。
PyMem_Calloc()
用于将内存初始化为0
。
我们 ❤️ 我们的社区
总的来说,我们在本发布周期中有 11 位 (!) 新贡献者;感谢我们所有开源社区成员的帮助,使这些改进成为可能。
- @boldorider4 在 conda-build#4960 中做出了首次贡献
- @DaveKaretnyk 在 conda-build#5004 中做出了他们的第一个贡献。
- @dholth 在 pycosat#54 中做出了他们的第一个贡献。
- @jmcarpenter2 在 conda#13034 中做出了他们的第一个贡献。
- @Mon-ius 在 conda#12811 中做出了他们的第一个贡献。
- @otaithleigh 在 conda#13035 中做出了他们的第一个贡献。
- @psteyer 在 conda#11610 中做出了他们的第一个贡献。
- @scdub 在 conda-build#4965 中做出了他们的第一个贡献。
- @tarcisioe 在 conda#9614 中做出了他们的第一个贡献。
- @wolfv 在 conda#13095 和 conda-build#4813 中做出了他们的第一个贡献。
- @zeehio 在 conda#13075 中做出了他们的第一个贡献。
如果您有想法或想帮助改进任何 conda 社区项目,我们很乐意看到新的(和回归的)贡献者!😄