Skip to content

Commit 60ea32c

Browse files
committed
fix(upgrade): Don't silence network errors
Fixes #924
1 parent 8515e68 commit 60ea32c

File tree

4 files changed

+39
-297
lines changed

4 files changed

+39
-297
lines changed

src/bin/upgrade/upgrade.rs

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use std::path::PathBuf;
55

66
use anyhow::Context as _;
77
use cargo_edit::{
8-
get_compatible_dependency, get_latest_dependency, registry_url, set_dep_version, shell_note,
8+
find_compatible_version, find_latest_version, registry_url, set_dep_version, shell_note,
99
shell_status, shell_warn, shell_write_stdout, CargoResult, CertsSource, CrateSpec, Dependency,
1010
IndexCache, LocalManifest, RustVersion, Source,
1111
};
@@ -290,18 +290,17 @@ 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()
@@ -310,13 +309,11 @@ fn exec(args: UpgradeArgs) -> CargoResult<()> {
310309
});
311310

312311
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-
});
312+
find_latest_version(&versions, is_prerelease, rust_version).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)