Unable to install cargo-generate

Hi guys,
I am planning to use Rust for Embedded applications on Ubuntu 18.10.
On my first day itself I am getting this error .
I tried to install cargo-generate from cargo tool like

cargo install cargo-generate

It says something like this

Compiling proc-quote v0.2.2
error[E0433]: failed to resolve: could not find `__rt` in `quote`

Yes, this is a known issue. See here.

So how do I resolve it for cargo-generate .
PS:Found your reply on the thread

`cargo install --override-dependency='quote = "=1.0.2"' [INSTALLABLE].`

See the thread I linked, there's more info there.

BTW, my reply there is about a hypothetical extension to cargo install. So it doesn't work today.
The real solution seems to be based on cloning the repo, then altering the Cargo.toml to force a newer version of the dependency.

It should be working now with the release of failure v0.1.7
https://crates.io/crates/failure/0.1.7

so cargo install failure ? It says error: specified package failure v0.1.7 has no binaries.

No, cargo couldn't install cargo-generate because the failure dependency was broken.

just try again with cargo install cargo-generate

Interesting that they published an unbreaking change (which, ironically, is a breaking change) as a point release.
I mean I get it, if they didn't then the onus to fix the ecosystem at large would fall on maintainers distributed everywhere, and now it's just the maintainers of failure (BurntSushi?) that have to bother with that.

Still, not exactly semver semantics...

Seems the issue is fixed for cargo-generate

I don't maintain failure.

quote did not break semver here. failure was relying on an unpublished API in quote.

4 Likes

I knew it was a long time well-known person in the Rust community and your name popped up in my head (I'm guessing because I use the regex crate extensively). But I wasn't sure either.
I just looked it up and I was half-right: @withoutboats is also pretty well-known in the community. Sorry about the confusion.

As for the quote failure (pun intended), I guess I'll have to take a peek at the code. I'm really curious what could on the one hand require using an unpublished API but on the other is easy enough to rewrite to not need that API anymore. Either that or some functionality was slashed.

Or there was no other choice when failure_derive was first written.

Boats is also not maintaining failure these days, as far as I know.

Fixing bugs is absolutely fine, with regards to semver.

Sure but it's still his name on the crate. If he's not maintaining it anymore that I assume it's because of the fact that better alternatives are available now, not least of which is an improved Error trait.

If say that depends on the actual changes made. If the API changes, then it's quite unlikely that a point release is appropriate. The interesting thing about this is that the API used (and purged) was a private one, not a public API.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.