rustsubstratepolkadot

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?


Solution

  • 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.