跳至主要内容

Conda 和 libmamba 求解器:2023 年推广计划

·阅读时间 4 分钟
Jannis Leidel
指导委员会成员
Jaime Rodríguez-Guerra
指导委员会成员

一年前,Anaconda 的 conda 团队与 Quansight 和 QuantStack 的 conda 开发人员 宣布发布 基于 mamba 项目 在久负盛名的 libsolv 项目基础上开发的库的新 conda 求解器。

更新

Conda 的默认求解器更改将在 **特殊的 23.10.0 版本** 中进行(而不是 23.9.0)。查看此处发布的特殊公告 此处

TL;DR

  • 从 2023 年 7 月开始,conda-libmamba-solver 将成为各种安装程序的一部分。默认的 conda 求解器仍然是 classic。请尽快关注 miniconda、Anaconda Distribution 和 miniforge 的发布。
  • 从 2023 年 9 月开始,默认的 conda 求解器将是 libmambaclassic 可通过 --solver=classic 使用(如果需要)。
  • 将来,我们将讨论是否保留经典求解器,将其维护为单独的插件,或将其彻底弃用。欢迎反馈!

我们为什么要这样做

依赖项求解器可以被认为是 conda 客户端的主要支柱之一(与网络和 I/O 堆栈或命令行界面并列)。多年来,随着 conda 生态系统的增长,它一直是许多性能和用户体验问题的根源。特别是,conda-forge 和其他较大的 conda 渠道的用户在使用基于 pycosat 的当前求解器实现时遇到了困难。

2022 年 12 月,我们宣布了一个新的插件包 conda-libmamba-solver,它将 mamba 求解器集成到 conda 本身。通过此早期版本,我们旨在从实际应用场景中获得反馈。如果您尝试过它并且想说些什么,我们仍然很乐意在 GitHub 上的 conda-libmamba-solver 存储库 中听到您的声音。

推广计划

我们很高兴宣布求解器下一阶段的推广计划,让更多人使用 conda-libmamba-solver。

2023 年 7 月版的 Anaconda Distributionminiconda 安装程序将在 base 环境中包含 conda-libmamba-solver 包。

这将使最终用户更容易切换到求解器,因为只需要添加 --solver=libmamba(一次性运行)或 conda config --set solver libmamba(通过 .condarc 文件持久切换),而无需额外的安装步骤。有关更多详细信息,请参阅 conda-libmamba-solver 入门指南

我们预计更多用户将尝试使用它,以便我们能够获得更多反馈,从而进一步改进它。如果您现在想向我们发送反馈,请随时在 condaconda-libmamba-solver 的 GitHub 存储库中相应地创建一个工单。

更改默认求解器

之后,在 conda 的 2023 年 9 月发布窗口(根据 CEP 8,为 23.9.0),我们还将

  • 将默认求解器配置切换到 libmamba(不再需要使用 --solver=libmamba CLI 标志),
  • 保留 conda 中包含的 classic 求解器代码,以便能够在需要时通过 --solver=classic “切换回去”,以及
  • 制定一项计划,在遥远的将来淘汰 classic 求解器。

classic 求解器的长期计划将包括根据 CEP 9 制定从主 conda 代码库中弃用的时间表,以及与用户进行额外的公开讨论,以确定是否值得将求解器维护在单独的 conda 插件包中(例如)。

我们理解有些用户是围绕经典求解器构建工作流程的,我们希望为他们提供充足的时间和支持,以便他们迁移到新的求解器。如果您对我们的计划有任何意见,请告诉我们!我们期待与 conda 社区的其他成员密切合作,确保平稳过渡。