Always sort installed records and solver specs #378
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
I've been thinking about some failures we get (only!) sometimes in CI, like
tests/core/test_solve.py::test_conda_downgrade[libmamba]
(see #317). These errors often go away with a retry in the same PR, so there's some randomness at play.The hypothesis here is that some container is getting a different order depending on the attempt.
SolverInputState.installed
takes whatever order appears inPrefixData._prefix_records
, which blindly "takes" whateveros.scandir()
is returning. This function does not guarantee order, so we are going to switch to a toposortedinstalled
container. Maybe this makes the tests behave more reliably?Checklist - did you ...
news
directory (using the template) for the next release's release notes?