-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Misleading error message when crates.io is replace-with
a local source
#14697
Comments
Thanks for the report. It might be improved by using a similar mechanism you pointed out. The relevant code cargo-search handling error resides here and here. We might want a simpler message for resolver errors, such as
Calling |
Hi, I did some research on the issue the used Registry::describe_source in
Since I'm new to both open source and Rust, I'm not sure if this is the right way to approach the issue, and I would greatly appreciate any feedback. Thanks. |
Feel free to claim this issue and submit a pull request! Personally I lean toward keeping the message concise, and prefer showing the replaced source first. Other may have different preference. |
@rustbot claim |
I just understood what you meant. We already have such a message, so probably we can just apply this a simple fix, and update all test snapshots. diff --git a/src/cargo/core/resolver/errors.rs b/src/cargo/core/resolver/errors.rs
index 7fbf4e22c0e..64503b9401a 100644
--- a/src/cargo/core/resolver/errors.rs
+++ b/src/cargo/core/resolver/errors.rs
@@ -355,3 +355,6 @@ pub(super) fn activation_error(
}
- msg.push_str(&format!("location searched: {}\n", dep.source_id()));
+ msg.push_str(&format!(
+ "location searched {}\n",
+ registry.describe_source(dep.source_id())
+ ));
msg.push_str("required by "); |
Thanks, I'll follow the advice! |
Problem
When using a local source via a
replace-with
inconfig.toml
and there is a missing package,cargo build
gives confusing errors saying that it searchedcrates-io
for the package when it only looked in the local file system. The error it gives is identical to the error from an actually missing package:Possible Solution(s)
If you run
cargo seach
it gives much more specific information:It would be great if the original error included this "crates-io is replaced with non-remote-registry source" remark.
Steps
cargo build
in rootAs an alternative, instead of unpacking, make an empty folder, cd into it, make the following files and then do the following shell instructions:
Cargo.toml
.cargo/config.toml
Shell instructions
Then:
Version
cargo 1.84.0-nightly (15fbd2f 2024-10-08)
release: 1.84.0-nightly
commit-hash: 15fbd2f
commit-date: 2024-10-08
host: x86_64-unknown-linux-gnu
libgit2: 1.8.1 (sys:0.19.0 vendored)
libcurl: 8.9.0-DEV (sys:0.4.74+curl-8.9.0 vendored ssl:OpenSSL/1.1.1w)
ssl: OpenSSL 1.1.1w 11 Sep 2023
os: Ubuntu 22.4.0 (jammy) [64-bit]
The text was updated successfully, but these errors were encountered: