Conda 和 libmamba 求解器:2023 年推广计划
一年前,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 求解器将是
libmamba
。classic
可通过--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 Distribution 和 miniconda 安装程序将在 base
环境中包含 conda-libmamba-solver 包。
这将使最终用户更容易切换到求解器,因为只需要添加 --solver=libmamba
(一次性运行)或 conda config --set solver libmamba
(通过 .condarc
文件持久切换),而无需额外的安装步骤。有关更多详细信息,请参阅 conda-libmamba-solver 入门指南。
我们预计更多用户将尝试使用它,以便我们能够获得更多反馈,从而进一步改进它。如果您现在想向我们发送反馈,请随时在 conda 和 conda-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 社区的其他成员密切合作,确保平稳过渡。