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