-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor for libmamba v2 #457
Conversation
pre-commit.ci autofix |
for more information, see https://pre-commit.ci
…el for CLI names, fix subdir URL, readd ChannelInfo dataclass
@conda/conda-libmamba-solver, I think this is ready for merge now. Not sure if we want to do this for 24.11 right away, in which case I would advocate for a rc release sometime soon, accumulate feedback, and then proceed with 24.11 final by mid-end November? If we need to do some more work on the 24.9.x series we can always start a branch later, but I think 24.11 should be |
Once conda/conda#13784 is merged, I can revert the CI changes so we point to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thank you @jaimergp 🥳
Description
Adds compatibility for libmamba v2, which enables a few refactors (see below). Supersedes conda/conda#414.
Progress:
Checklist - did you ...
news
directory (using the template) for the next release's release notes?Summary of changes
CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED
. No longer needed with v2. Closes pip-integration: --dry-run still installs with pip conda#411time_recorder
decorator for metadata collection and solving loopstate.BaseIndexHelper
. We just have ourindex.IndexHelper
nowpool
(collection ofrepos
, where arepo
represents a loadedrepodata.json
) is now adatabase
ofRepoInfo
objects.current_repodata.json
if explicitly set in CLICONDA_LIBMAMBA_SOLVER_DEBUG_LIBSOLV
is required.allow_uninstall
was previously set tofalse
(onlytrue
forconda remove
), and we set it up for individual solver jobs involving updates or conflicts. With v2, we have individual control over what to "Keep" instead of drop. This required marking important updates as keepers instead. Otherwise they would be uninstalled.