-
Notifications
You must be signed in to change notification settings - Fork 363
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
Changed solver behaviour in release 1.4.2 #2486
Comments
@costrouc has identified the PR that introduced the change. It's #2433. I am not sure what part of that PR affects the solver, but we do know that these are the
|
Hi @jaimergp, thanks for reporting this! Do you know what is the changed behavior? For instance "when updating with a channel-specific ms, previous libmamba would get [...], now it gets [...] / report an error". If the change is arbitrary, would you consider that this could be an acceptable break for a |
@AntoinePrv so I did a deep dive into this issue and have all the details in conda/conda-libmamba-solver#186 (comment) onwards. I have three branches Good branchcostrouc@68c19e5 which just adds some printing of the libsolv state m_flags and m_jobs and what the matchspec <-> id is and is based on the commit just prior to 0345b9d (the commit which "breaks" a few conda-libmamba-solver tests. Bad branchcostrouc@99ac04e which again just adds some printing of the libsolve state m_flags and m_jobs and what the matchspec <-> id is and is based on the "bad" commit 0345b9d "Fix" BranchThis is a branch which has a single commit which "fixes" the bad branch costrouc@f72a63d. Essentially this change throws away the conda channel in the matchspec when This comment https://github.com/costrouc/mamba/blob/issue-186-hack-fix/libmamba/src/core/pool.cpp#L227-L229 does make me think those that this is all related. The comments in issue conda/conda-libmamba-solver#186 (comment) dive deep into the libsolve state m_job and the integers. cc @jaimergp since I now have a "fix" but it does feel wrong to throw away the channel. |
Also wanted to note here the scope of the issue. Looking at costrouc@f72a63d which "fixes" these failing tests in conda-libmamba-solver. This breakage only occurs when performing an update and "complex" matchspecs are specified e.g. not just package name and version constraint (example conda-forge::numpy would be complex). So the scope is not too large. From this work though it is clear that the mamba behavior did change for this condition (update + complex matchspecs). |
@costrouc thanks for the details. #2433 did make a common entry point for resolving all matchspecs, which sparsingly done before. if I understand correctly the behavior is with update commands only? I do remember changing the code used by micromamba create -n foo defaults::numpy # 1
micromamba update -n foo conda-forge::numpy # 2 Here what is expected of
The simple thing to do is B because it is simply evaluating the matchspec. |
@AntoinePrv I would expect more of
|
With more time to think about this, I think B/ is wrong. B/ implies that spec the user provided is applied to the installed package. However we already have |
Would reverting the behavior back to A/ fix this issue? |
Closing as stale, especially with all the changes coming in 2.0. Feel free to reopen a new issue as needed. |
Troubleshooting docs
How did you install Mamba?
Other (please describe)
Search tried in issue tracker
N/A
Latest version of Mamba
Tried in Conda?
Not applicable
Describe your issue
The new 1.4.2 release broke some conda integration tests that used to work with all previous versions. I took a look at the changelog and I guess the breaking change must be in one of these three PRs:
We are keeping a list of broken tests at conda/conda-libmamba-solver#186. I'll add more details as we investigate, but the key point is that downgrading to 1.4.1 makes everything pass.
mamba info / micromamba info
Logs
environment.yml
N/A
~/.condarc
N/A
The text was updated successfully, but these errors were encountered: