Conda 和 libmamba 求解器:2023 年推广计划
一年多以前,Anaconda 的 conda 团队与 Quansight 和 QuantStack 的 conda 开发人员一起,宣布发布了一个新的 conda 求解器,该求解器基于 mamba 项目在历史悠久的 libsolv 项目之上开发的库。
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
客户端的主要支柱之一(仅次于网络和 IO 堆栈或命令行界面)。鉴于 conda 生态系统的发展,多年来它一直是许多性能和用户体验问题的根源。特别是,conda-forge 和其他较大的 conda 渠道的用户在使用当前基于 pycosat 的求解器实现时遇到了困难。
在 2022 年 12 月,我们发布了一个新的插件包 conda-libmamba-solver
,它将 mamba
求解器集成到 conda
本身中。通过这个早期版本,我们旨在获得来自实际使用场景的反馈。如果您已经尝试过并且想说些什么,我们仍然很高兴在 GitHub 上的 conda-libmamba-solver 存储库中听到您的声音。
推广计划
我们很高兴地宣布求解器下一阶段的推广计划,以便让更多人使用 conda-libmamba-solver。
Anaconda Distribution 和 miniconda 安装程序的 2023 年 7 月版本将在 base
环境中包含 conda-libmamba-solver 包。
这将使最终用户更容易切换到求解器,因为它只需要添加 --solver=libmamba
(用于一次性运行)或 conda config --set solver libmamba
(用于通过 .condarc
文件持久切换),而无需额外的安装步骤。有关详细信息,请参阅 conda-libmamba-solver 入门指南。
我们期望更多用户以这种方式试用它,以获得更多反馈,以便我们进一步改进它。如果您现在想向我们发送您的反馈,请随时在 GitHub 上的 conda 和 conda-libmamba-solver 存储库中相应地打开一个工单。
更改默认求解器
之后,在 conda 的 2023 年 9 月发布窗口(根据 CEP 8 为 23.9.0
),我们还将
- 将默认求解器配置切换为
libmamba
(不再需要使用--solver=libmamba
CLI 标志), - 将
classic
求解器代码保留在conda
中,以便在情况需要时可以通过--solver=classic
“切换回”,以及 - 制定一个计划,在遥远的未来淘汰
classic
求解器。
classic
求解器的长期计划将包括根据 CEP 9 制定从主 conda
代码库中弃用的时间表,以及与用户的额外公开讨论,以确定是否值得在单独的 conda 插件包(例如)中维护该求解器。
我们理解有些用户围绕经典求解器构建了他们的工作流程,我们希望为他们提供充足的时间和支持来迁移到新的求解器。如果您对我们的计划有任何意见,请告诉我们!我们期待与 conda 社区的其他成员紧密合作,以确保平稳过渡。