Merge master
diff --git a/Cargo.lock b/Cargo.lock
index 5f1dc39..6302b41 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -140,7 +140,7 @@
[[package]]
name = "cargo-outdated"
-version = "0.9.16"
+version = "0.9.17"
dependencies = [
"anyhow",
"cargo",
diff --git a/Cargo.toml b/Cargo.toml
index c8f4433..5746e5e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "cargo-outdated"
-version = "0.9.16"
+version = "0.9.17"
authors = [
"Kevin K. <kbknapp@gmail.com>",
"Frederick Z. <frederick888@tsundere.moe>",
diff --git a/src/cargo_ops/temp_project.rs b/src/cargo_ops/temp_project.rs
index 3aaa4a7..2ca6259 100644
--- a/src/cargo_ops/temp_project.rs
+++ b/src/cargo_ops/temp_project.rs
@@ -280,6 +280,7 @@
}
Self::manipulate_dependencies(&mut manifest, &|deps| {
Self::replace_path_with_absolute(
+ &self,
deps,
orig_root.as_ref(),
tmp_root.as_ref(),
@@ -330,6 +331,7 @@
}
Self::manipulate_dependencies(&mut manifest, &|deps| {
Self::replace_path_with_absolute(
+ &self,
deps,
orig_root.as_ref(),
tmp_root.as_ref(),
@@ -471,6 +473,14 @@
) -> CargoResult<()> {
let dep_keys: Vec<_> = dependencies.keys().cloned().collect();
for dep_key in dep_keys {
+ // this, by brute force, allows a user to ignore a dependency by not writing
+ // it to the temp project's manifest
+ // In short this allows cargo to build the package with semver minor compatibilities issues
+ // https://github.com/rust-lang/cargo/issues/6584
+ // https://github.com/kbknapp/cargo-outdated/issues/230
+ if self.options.flag_ignore.contains(&dep_key) {
+ continue;
+ }
let original = dependencies.get(&dep_key).cloned().unwrap();
match original {
@@ -599,6 +609,7 @@
}
fn replace_path_with_absolute(
+ &self,
dependencies: &mut Table,
orig_root: &Path,
tmp_root: &Path,