-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
cargo update
ping pongs between crate versions
#2164
Comments
There's some degree of non-determinism during resolution due to usage of what is presumably a That being said I haven't ever run across a downside to this behavior, so I'm somewhat inclined to leave it as-is? |
I believe I am missing something here. My output:
Presumably there have been interesting bugfixes that occurred between these versions, especially a crate like |
I believe I am encountering this same issue. I have a project where I would like to specify a precise version for a dependency (iron) of a dependency (a cookie utility), so that I can converge on a single version of iron in my application. I depend on iron 0.3.0 and my cookie utility specifies its iron dependency like On the one hand, this is great, since I want this to happen, but the fact that it seems random bothers me. There is a little bit of additional information and steps to reproduce at my StackOverflow question. |
I believe that much of this will get mitigated by #2064 as Cargo will have a much better understanding of what's exporting what, but I don't think the nondeterminism will ever really go away. Cargo will likely have heuristics to maximize things like the version number, but fundamentally crate resolution is a problem with multiple solutions where it's not always clear which is optimal. |
I'm going to close this in favor of #2064 |
IMO, non-determinism is a separate issue from cargo resolving non-buildable lock files. #2064 only adds additional restrictions which fix build errors, but doesn't remove non-determinism (which is still a problem). |
This doesn't cause any actual issues, but it seems that when you have a dependency being pulled in with multiple versions,
cargo update
always outputs changes:This is currently reproducible via this checkout: danburkert/raft@4147bfb.
Dependencies:
Cargo.lock:
The text was updated successfully, but these errors were encountered: