When I used cargo upgrade -i --recursive on my project with lots of outdated dependencies, it upgraded only part of them. I needed to use cargo update afterwards to upgrade the rest. What is the reason for that behavior? Is it expected? If yes, should one use cargo upgrade followed by cargo update or the other way around?
When I used
cargo upgrade -i --recursive
on my project with lots of outdated dependencies, it upgraded only part of them. I needed to usecargo update
afterwards to upgrade the rest. What is the reason for that behavior? Is it expected? If yes, should one usecargo upgrade
followed bycargo update
or the other way around?I'm using cargo-edit-upgrade 0.12.0.
Steps to reproduce:
Clone https://github.com/ArekPiekarz/rusty-git-gui
Checkout commit 9593857e291976f5d00ed42f833eff7d400b81fd
Run
cargo upgrade -i --recursive --verbose
to upgraded all dependencies recursively to the latest versions:(It's also strange that it printed a suggestion to rerun with
--verbose
, even though I already added it, but that's another bug to report.)Run
cargo outdated -R
to check only direct dependencies:The direct dependencies were correctly upgraded.
Run
cargo outdated
to check indirect dependencies:We can see that lots of indirect dependencies are still outdated, even though we used
--recursive
flag.Run
cargo update
to update indirect dependencies:Run
cargo outdated
again:Only now all dependencies are upgraded.