Skip to content

Instantly share code, notes, and snippets.

@intelliot
Created October 10, 2021 18:25
Show Gist options
  • Save intelliot/b4aa449977632eacd35582f80c0de2c4 to your computer and use it in GitHub Desktop.
Save intelliot/b4aa449977632eacd35582f80c0de2c4 to your computer and use it in GitHub Desktop.
Rust cargo build-bpf - feature `edition2021` is required
cargo build-bpf
Failed to obtain package metadata: Error during execution of `cargo metadata`: error: failed to parse manifest at `/Users/elliot/solana/smart-contract/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.55.0 (32da73ab1 2021-08-23)).
Consider trying a newer version of Cargo (this may require the nightly release).
See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2021 for more information about the status of this feature.
--
The steps to try out the Rust 2021 Edition as follows (more detailed directions can be found here [1]):
Install the most recent nightly: rustup update nightly.
Run cargo +nightly fix --edition.
Edit Cargo.toml and place cargo-features = ["edition2021"] at the top (above [package]), and change the edition field to say edition = "2021".
Run cargo +nightly check to verify it now works in the new edition.
[1] https://doc.rust-lang.org/nightly/edition-guide/editions/transitioning-an-existing-project-to-a-new-edition.html
--
@markstos
Copy link

markstos commented Jan 5, 2022

Very helpful!

A diagnostic message says "you can add cargo-features = ["edition2021"] to enable this feature", but it doesn't see which section of which file to add it to. For someone who is just trying to build a package and is not a Rust developer, what to do is not at all clear without instructions like the ones here.

@kornelski
Copy link

The real fix for this is to upgrade Rust to 1.56 or later. Do not add cargo-features anywhere — that is an outdated advice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment