Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to specify `edition2021` in order to use unstable packages in Rust

I want to run an example via Cargo but I am facing an error:

error: failed to parse manifest at `/Users/aviralsrivastava/dev/subxt/Cargo.toml`

The full stacktrace is:

error: failed to parse manifest at `/Users/aviralsrivastava/dev/subxt/Cargo.toml`

Caused by:
  feature `edition2021` is required

  The package requires the Cargo feature called `edition2021`, but that feature is not stabilized in this version of Cargo (1.56.0-nightly (b51439fd8 2021-08-09)).
  Consider adding `cargo-features = ["edition2021"]` to the top of Cargo.toml (above the [package] table) to tell Cargo you are opting in to use this unstable feature.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2021 for more information about the status of this feature.

Based on the suggestion, I go ahead and modify the Cargo.toml:

  Consider adding `cargo-features = ["edition2021"]` to the top of Cargo.toml (above the [package] table) to tell Cargo you are opting in to use this unstable feature.
diff --git a/Cargo.toml b/Cargo.toml
index 26a02c7..186d09b 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [workspace]
 members = [".", "cli", "codegen", "macro"]
-
+cargo-features = ["edition2021"]
 [package]
 name = "subxt"
 version = "0.15.0"
(END)

I still face the same error as if nothing was changed in the toml file.

How do I resolve the above error in order to use unstable packages?

like image 683
Aviral Srivastava Avatar asked Nov 05 '21 03:11

Aviral Srivastava


3 Answers

Update the Rust to satisfy the new edition 2021.

rustup default nightly && rustup update

Thanks to @ken. Yes, you can use the stable channel too!

But I love nightly personally.

like image 89
AurevoirXavier Avatar answered Oct 16 '22 14:10

AurevoirXavier


Edition 2021 is now part of the stable channel.

As what happened to me, you probably just need to update your stable version by running rustup update stable.

That should fix the issue, and not require you to switch over to the nightly channel.

like image 9
chai_and_kaapi Avatar answered Oct 16 '22 14:10

chai_and_kaapi


Try:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env && rustup default nightly && rustup update
like image 4
Aviel Yosef Avatar answered Oct 16 '22 15:10

Aviel Yosef