]> git.proxmox.com Git - cargo.git/commitdiff
Clarify error for repo-based dependencies when publishing.
authorBryant Mairs <bryant@mai.rs>
Fri, 27 Jan 2017 17:54:43 +0000 (09:54 -0800)
committerBryant Mairs <bryant@mai.rs>
Mon, 30 Jan 2017 19:25:11 +0000 (11:25 -0800)
Specifically add a description of how to resolve the error.

src/cargo/ops/registry.rs
tests/publish.rs

index f3c8de934155aad898aba5527694fc48bcc5362c..e3492073fda43fc7533c7cb38c9cfb69e73ff7d3 100644 (file)
@@ -81,9 +81,11 @@ fn verify_dependencies(pkg: &Package, registry_src: &SourceId)
                        a version", dep.name())
             }
         } else if dep.source_id() != registry_src {
-            bail!("all dependencies must come from the same source.\n\
-                   dependency `{}` comes from {} instead",
-                  dep.name(), dep.source_id())
+            bail!("crates cannot be published to crates.io with dependencies sourced from \
+                   a repository\neither publish `{}` as its own crate on crates.io and \
+                   specify a crates.io version as a dependency or pull it into this \
+                   repository and specify it with a path and version\n(crate `{}` has \
+                   repository path `{}`)", dep.name(), dep.name(),  dep.source_id());
         }
     }
     Ok(())
index cacf8faa499506ae497e77bc8f07cbf44954f4de..fd3558a4e1b232b37979f16d51c8bfc573a81418 100644 (file)
@@ -115,8 +115,11 @@ fn git_deps() {
                  .arg("--host").arg(registry().to_string()),
                 execs().with_status(101).with_stderr("\
 [UPDATING] registry [..]
-[ERROR] all dependencies must come from the same source.
-dependency `foo` comes from git://path/to/nowhere instead
+[ERROR] crates cannot be published to crates.io with dependencies sourced from \
+a repository\neither publish `foo` as its own crate on crates.io and \
+specify a crates.io version as a dependency or pull it into this \
+repository and specify it with a path and version\n\
+(crate `foo` has repository path `git://path/to/nowhere`)\
 "));
 }