Use semver::Version's cmp_precedence for deciding what is downgrade

This commit is contained in:
David Tolnay 2023-10-09 15:19:38 -07:00
parent 985e1eeef5
commit c0ed70ef5e
No known key found for this signature in database
GPG key ID: F9BA143B95FF6D82
3 changed files with 5 additions and 8 deletions

4
Cargo.lock generated
View file

@ -2886,9 +2886,9 @@ dependencies = [
[[package]]
name = "semver"
version = "1.0.19"
version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0"
checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
dependencies = [
"serde",
]

View file

@ -76,7 +76,7 @@ rand = "0.8.5"
rustfix = "0.6.1"
same-file = "1.0.6"
security-framework = "2.9.2"
semver = { version = "1.0.19", features = ["serde"] }
semver = { version = "1.0.20", features = ["serde"] }
serde = "1.0.188"
serde-untagged = "0.1.1"
serde-value = "0.7.0"

View file

@ -8,6 +8,7 @@ use crate::util::config::Config;
use crate::util::style;
use crate::util::CargoResult;
use anstyle::Style;
use std::cmp::Ordering;
use std::collections::{BTreeMap, HashSet};
use tracing::debug;
@ -156,11 +157,7 @@ pub fn update_lockfile(ws: &Workspace<'_>, opts: &UpdateOptions<'_>) -> CargoRes
// regardless of whether the build metadata has gone up or down.
// This metadata is often stuff like git commit hashes, which are
// not meaningfully ordered.
let removed = removed[0].version();
let added = added[0].version();
if (removed.major, removed.minor, removed.patch, &removed.pre)
> (added.major, added.minor, added.patch, &added.pre)
{
if removed[0].version().cmp_precedence(added[0].version()) == Ordering::Greater {
print_change("Downgrading", msg, &style::WARN)?;
} else {
print_change("Updating", msg, &style::GOOD)?;