Skip to content

Commit 15ab09a

Browse files
committed
fix(upgrade): Don't silence network errors
Fixes #924
1 parent 0db0f9d commit 15ab09a

File tree

4 files changed

+36
-294
lines changed

4 files changed

+36
-294
lines changed

src/bin/upgrade/upgrade.rs

Lines changed: 13 additions & 16 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,33 +290,30 @@ 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();
293298
let is_prerelease = old_version_req.contains('-');
294299

295300
let latest_compatible = VersionReq::parse(&old_version_req)
296301
.ok()
297302
.and_then(|old_version_req| {
298-
get_compatible_dependency(
299-
&dependency.name,
300-
&old_version_req,
301-
rust_version,
302-
index,
303-
)
304-
.ok()
303+
find_compatible_version(versions, &old_version_req, rust_version)
305304
})
306305
.map(|d| {
307306
d.version()
308307
.expect("registry packages always have a version")
309308
.to_owned()
310309
});
311310

312-
let latest_version =
313-
get_latest_dependency(&dependency.name, is_prerelease, rust_version, index)
314-
.ok()
315-
.map(|d| {
316-
d.version()
317-
.expect("registry packages always have a version")
318-
.to_owned()
319-
});
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+
});
320317

321318
let latest_incompatible = if latest_version != latest_compatible {
322319
latest_version

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)