-
Notifications
You must be signed in to change notification settings - Fork 147
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
Verbose output for cargo upgrade #812
Comments
We are not looking at the lock file at all and instead doing this based on what is the latest on crates.io. We are making the assumption that the lock file was modified in lock step with the manifest and so those lines would most likely be upgrades that could be performed.
The output has two goals
This is why we list all unchanged crates; to show what we had considered but skipped. So long as we still show the note, I can see us skipping this one as users will have a hint that some information was elided. I decided to show rows where there was the potential for upgrade by default. Think of it the other way, when running |
Well, maybe it should be taking the lock file into account? With the current way it's setup, I get many lines of output none of which are actionable (because my lockfile has already been updated to grab all the latest semver-compatible upgrades). In a single crate setting, it might make more sense to inform users about upgrades we did not perform but could, but at workspace granularity the output is just overwhelming and hard to understand. |
Was this from running The current area of exploration is "what if cargo-upgrade replaced cargo-update", so if you run cargo-update, then that case is lower priority for resolving. |
From running It's still actionable for me because even if there's one command to do everything I would still likely want to update compatible and incompatible versions independently. |
Thanks for following up so quickly! Have these changes been released yet? Do you have a plan for releasing them? |
Its released since it isn't a breaking change. There are some related improvements that I'm holding off on as they are breaking and am wanting more generally settle other breaking discussions. |
Okay, so here's that I got from cargo-edit 0.11.11:
So far, so good! Honestly, for this case I'd still prefer to only get the
This seems overly verbose and unnecessary?
This shouldn't happen -- I requested
I think the
This seems useful. At the same time, here I would be inclined to put them in the table, because one consistent way of giving me the data is better than having two separate ways.
This also seems low value.
I also don't think there's much value here. |
As it runs in multiple modes, I think consistency in modes is important for processing the information
The main value for this is
This was the breaking change that I referred to holding off on
I held off on completely not showing it when I remembered the coalescing conversation during MSRV to more slowly change this because
Except we can't really show much about git because we don't process updating these dependencies and this takes up much less space Something that might not be obvious is that I made the max number of crates to show before coalescing to be 3 or 4. That is something I'm willing to tweak (originally, I always coalesced).
I feel the same about this as about I'll have to think about hiding these two when verbosity is off (my automatic solution). |
Ah, I was not aware of this because in non-testing scenarios I only run |
Counter arguments here: in the vast majority of cases, the |
It wasn't about doing too much but too little. |
Recursive dependency updating is compatible dependency updating and we should respect it if users disable compatible upgrades. See also killercup#812
When I run
cargo upgrade --compatible ignore --incompatible allow
(after runningcargo update
separately), I get a table of dependencies whose version inCargo.toml
doesn't match the locked version. In this case, all of thenew req
versions are older than the version requirements. Then, I get a long list ofunchanged
crates at the end.IMO the output should focus on things that are actually affected, and thus:
--compatible ignore
, no rows should be printed ifnew req
is the same asold req
unchanged
crates, which can be quite long and doesn't provide very useful informationThe text was updated successfully, but these errors were encountered: