Skip to content

Commit 37bedd3

Browse files
authored
Merge pull request #925 from epage/n
fix(upgrade): Don't silence network errors
2 parents 6369443 + 15ab09a commit 37bedd3

File tree

5 files changed

+51
-312
lines changed

5 files changed

+51
-312
lines changed

src/bin/upgrade/upgrade.rs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use std::path::PathBuf;
66
use anyhow::Context as _;
77
use cargo_edit::{
88
CargoResult, CertsSource, CrateSpec, Dependency, IndexCache, LocalManifest, RustVersion,
9-
Source, get_compatible_dependency, get_latest_dependency, registry_url, set_dep_version,
9+
Source, find_compatible_version, find_latest_version, registry_url, set_dep_version,
1010
shell_note, shell_status, shell_warn, shell_write_stdout,
1111
};
1212
use clap::Args;
@@ -290,31 +290,31 @@ fn exec(args: UpgradeArgs) -> CargoResult<()> {
290290
// we're offline.
291291
let registry_url = registry_url(&manifest_path, dependency.registry())?;
292292
let index = index.index(&registry_url)?;
293+
let krate = index.krate(&dependency.name)?;
294+
let versions = krate
295+
.as_ref()
296+
.map(|k| k.versions.as_slice())
297+
.unwrap_or_default();
298+
let is_prerelease = old_version_req.contains('-');
299+
293300
let latest_compatible = VersionReq::parse(&old_version_req)
294301
.ok()
295302
.and_then(|old_version_req| {
296-
get_compatible_dependency(
297-
&dependency.name,
298-
&old_version_req,
299-
rust_version,
300-
index,
301-
)
302-
.ok()
303+
find_compatible_version(versions, &old_version_req, rust_version)
303304
})
304305
.map(|d| {
305306
d.version()
306307
.expect("registry packages always have a version")
307308
.to_owned()
308309
});
309-
let is_prerelease = old_version_req.contains('-');
310-
let latest_version =
311-
get_latest_dependency(&dependency.name, is_prerelease, rust_version, index)
312-
.map(|d| {
313-
d.version()
314-
.expect("registry packages always have a version")
315-
.to_owned()
316-
})
317-
.ok();
310+
311+
let latest_version = find_latest_version(versions, is_prerelease, rust_version)
312+
.map(|d| {
313+
d.version()
314+
.expect("registry packages always have a version")
315+
.to_owned()
316+
});
317+
318318
let latest_incompatible = if latest_version != latest_compatible {
319319
latest_version
320320
} else {

src/errors.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,6 @@ impl From<std::io::Error> for CliError {
6666
}
6767
}
6868

69-
pub(crate) fn no_crate_err(name: impl Display) -> Error {
70-
anyhow::format_err!("The crate `{}` could not be found in registry index.", name)
71-
}
72-
7369
pub(crate) fn non_existent_table_err(table: impl Display) -> Error {
7470
anyhow::format_err!("The table `{}` could not be found.", table)
7571
}

0 commit comments

Comments
 (0)