Returns true if `latest` is a newer version than `current` AND the difference is at least a minor version bump (patch-only bumps return false). Used by the CLI version warning to avoid nagging on patch releases.
(current: &str, latest: &str)
| 281 | /// |
| 282 | /// Used by the CLI version warning to avoid nagging on patch releases. |
| 283 | pub fn is_newer_minor_version(current: &str, latest: &str) -> bool { |
| 284 | fn parse(v: &str) -> Option<(u64, u64)> { |
| 285 | let base = v.split_once('-').map_or(v, |(b, _)| b); |
| 286 | let mut parts = base.split('.'); |
| 287 | let major = parts.next()?.parse().ok()?; |
| 288 | let minor = parts.next()?.parse().ok()?; |
| 289 | Some((major, minor)) |
| 290 | } |
| 291 | |
| 292 | is_newer_version(current, latest) |
| 293 | && match (parse(current), parse(latest)) { |
| 294 | (Some(c), Some(l)) => l > c, |
| 295 | _ => true, |
| 296 | } |
| 297 | } |
| 298 | |
| 299 | /// How tracedecay was installed, detected from the binary path. |
| 300 | pub enum InstallMethod { |
no test coverage detected