-
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
Remove old logic in SolverOutputState.prepare_specs()
and apply enabled cleanups
#381
Conversation
Woah! |
Whatever is going on with #317, this PR reproduces it reliably on Windows in the last few runs 🤷 |
Co-authored-by: Ken Odegard <kodegard@anaconda.com>
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.
A few questions mostly, I may need a session of elaboration about this refactoring, my brain keeps not forgetting the start of the PR when I'm in the middle
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.
Just some minor questions and naming inconsistencies.
There's something off with |
Co-authored-by: jaimergp <jaimergp@users.noreply.github.com>
Changed the base back to main, now that 23.12.x is out. |
It fixed itself :D |
Description
In conda-libmamba-solver 23.9.0 we changed how we build the tasks for the
libmambapy.Solver.add_jobs()
method (#270). This allowed us to removestate.SolverOutputState.prepare_specs()
, which tried to agnostically mimicclassic
's solver logic to add specs topycosat
, since we were not using it.Since all the task state is now encoded in the
tasks
dictionary we iterate over before callingSolver.add_jobs()
, we can also remove all theTrackedMap
business (dictionaries whose operations had logged 'reasons'). Less code to maintain, less RAM used, everyone's happy.Finally, since we have to iterate over some list of
MatchSpec
names, in some order (in #378 we have decided to do it alphabetically, but that's totally arbitrary), I took the opportunity to provide aSolverOutputState.specs
property that iterates over all possible spec sources in a certain order that makes certain sense. Within each group, strictest specs go first (because we assume the user is putting extra effort in being explicit, so it must be important).Checklist - did you ...
news
directory (using the template) for the next release's release notes?