One thing that came up recently: if a crate depends on A which depends on older, semver-incompatible version of B then cargo add B
should use the version that's already in the crate tree for two reasons: de-duplication of code and avoiding compatibility problems. Obviously this would require cargo add
to update Cargo.lock
which I'm unsure if it's acceptable.
I'm raising it here because I suspect it should be the default behavior (opt-out, not opt-in).