You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Having spent about two weeks exploring the code base now, it's clear to me that it's not clear exactly how dependencies should be resolved in non-trivial cases.
We should write a small document that explains which direction we favor when tradeoffs have to be made. Then I can go through all of the yaml scenario files and explicitly write out the expected transaction for each to serve as a reference and test. Without this, it's really hard to know if the solver is doing the right thing or not.
As an example, consider this reduced version of scipy_upgrade.yaml:
The transaction listed would suggest that we want to take the newest version of scipy available and upgrade everything else as needed to achieve that. That seems reasonable, but it is not what we claim to want to do, which is to prefer to leave installed packages alone if possible. Instead, what the solver actually gives us is quite different.
transaction:
- kind: "update"
from: "scipy 0.14.0-3"
to: "scipy 0.15.1-1" # note the build number
It's an older build of scipy 0.15.1 to avoid updating numpy. This actually is the right solution if your priority is to change as little possible, which makes me think that is probably not an accurate description of what we'd like to prioritize.
At any rate, we need to make this concrete somewhere. Which is correct? Is it ever correct to prefer an older build number? Or an older version altogether?
The text was updated successfully, but these errors were encountered:
Having spent about two weeks exploring the code base now, it's clear to me that it's not clear exactly how dependencies should be resolved in non-trivial cases.
We should write a small document that explains which direction we favor when tradeoffs have to be made. Then I can go through all of the yaml scenario files and explicitly write out the expected transaction for each to serve as a reference and test. Without this, it's really hard to know if the solver is doing the right thing or not.
As an example, consider this reduced version of
scipy_upgrade.yaml
:The transaction listed would suggest that we want to take the newest version of
scipy
available and upgrade everything else as needed to achieve that. That seems reasonable, but it is not what we claim to want to do, which is to prefer to leave installed packages alone if possible. Instead, what the solver actually gives us is quite different.It's an older build of
scipy 0.15.1
to avoid updatingnumpy
. This actually is the right solution if your priority is to change as little possible, which makes me think that is probably not an accurate description of what we'd like to prioritize.At any rate, we need to make this concrete somewhere. Which is correct? Is it ever correct to prefer an older build number? Or an older version altogether?
The text was updated successfully, but these errors were encountered: