Unified · Split
| @@ -5,6 +5,7 @@ use super::{ · 4 unmodified lines | ||
| 5 | 5 | }; |
| 6 | 6 | use cargo_metadata::{Metadata, Package}; |
| 7 | 7 | use git_repository::hash::ObjectId; |
| 8 | +use semver::{Version, VersionReq}; | |
| 8 | 9 | use std::{collections::BTreeMap, str::FromStr}; |
| 9 | 10 | |
| 10 | 11 | pub(in crate::command::release_impl) fn edit_version_and_fixup_dependent_crates( |
| @@ -102,6 +103,7 @@ fn set_version_and_update_package_dependency( · 91 unmodified lines | ||
| 102 | 103 | } |
| 103 | 104 | for dep_type in &["dependencies", "dev-dependencies", "build-dependencies"] { |
| 104 | 105 | for (name_to_find, new_version) in publishees.iter().map(|(p, nv)| (&p.name, nv)) { |
| 106 | + let new_version = Version::parse(new_version)?; | |
| 105 | 107 | for name_to_find in package_to_update |
| 106 | 108 | .dependencies |
| 107 | 109 | .iter() |
| @@ -115,15 +117,18 @@ fn set_version_and_update_package_dependency( · 7 unmodified lines | ||
| 115 | 117 | .and_then(|deps| deps.get_mut(name_to_find).and_then(|name| name.as_inline_table_mut())) |
| 116 | 118 | .and_then(|name_table| name_table.get_mut("version")) |
| 117 | 119 | { |
| 118 | − log::info!( | |
| 119 | − "Pending '{}' manifest {} update: '{} = \"{}\"' (from {})", | |
| 120 | − package_to_update.name, | |
| 121 | − dep_type, | |
| 122 | − name_to_find, | |
| 123 | − new_version, | |
| 124 | − current_version | |
| 125 | − ); | |
| 126 | − *current_version = toml_edit::Value::from(new_version.as_str()); | |
| 120 | + let version_req = VersionReq::parse(¤t_version.as_str().expect("versions are strings"))?; | |
| 121 | + if !version_req.matches(&new_version) { | |
| 122 | + log::info!( | |
| 123 | + "Pending '{}' manifest {} update: '{} = \"{}\"' (from {})", | |
| 124 | + package_to_update.name, | |
| 125 | + dep_type, | |
| 126 | + name_to_find, | |
| 127 | + new_version, | |
| 128 | + current_version | |
| 129 | + ); | |
| 130 | + *current_version = toml_edit::Value::from(new_version.to_string().as_str()); | |
| 131 | + } | |
| 127 | 132 | } |
| 128 | 133 | } |
| 129 | 134 | } |