Check minimum supported Rust version.
Opened this issue · 1 comments
rndhouse commented
When I try to build using Rust 1.43 I get the following output:
user@dev:~/dev/revault/revaultd$ podman build -t test ./tests
STEP 1: FROM docker.io/rust:1.43 AS builder_revaultd
STEP 2: WORKDIR /revaultd
--> Using cache 16b89cbfb92d59dc0a8df00cb5a6ec41fa9448dc0ce67b255a3b93ab8a21d593
--> 16b89cbfb92
STEP 3: COPY ../ .
--> 57ffba82b4a
STEP 4: RUN cargo install --path .
^Cuser@dev:~/dev/revault/revaultd$ podman build -t test -f ./tests/Containerfile .
STEP 1: FROM docker.io/rust:1.43 AS builder_revaultd
STEP 2: WORKDIR /revaultd
--> Using cache 16b89cbfb92d59dc0a8df00cb5a6ec41fa9448dc0ce67b255a3b93ab8a21d593
--> 16b89cbfb92
STEP 3: COPY . .
--> 438caaab23c
STEP 4: RUN cargo install --path .
Installing revaultd v0.3.1 (/revaultd)
Updating crates.io index
Updating git repository `https://github.com/revault/revault_net`
Updating git repository `https://github.com/revault/revault_tx`
Downloading crates ...
Downloaded serde v1.0.136
Downloaded base64 v0.13.0
Downloaded mio v0.7.14
Downloaded dirs v3.0.2
Downloaded serde_json v1.0.79
Downloaded bitcoin v0.27.1
Downloaded toml v0.5.9
Downloaded log v0.4.16
Downloaded jsonrpc-core v15.1.0
Downloaded daemonize-simple v0.1.5
Downloaded jsonrpc v0.12.1
Downloaded backtrace v0.3.65
Downloaded jsonrpc-derive v15.1.0
Downloaded miniscript v6.1.0
Downloaded rusqlite v0.26.3
Downloaded libc v0.2.124
Downloaded fern v0.6.1
Downloaded snow v0.7.2
Downloaded cfg-if v1.0.0
Downloaded bitflags v1.3.2
Downloaded addr2line v0.17.0
Downloaded ryu v1.0.9
Downloaded rustc-demangle v0.1.21
Downloaded quote v1.0.18
Downloaded syn v1.0.91
Downloaded bitcoin_hashes v0.10.0
Downloaded secp256k1 v0.20.3
Downloaded base64-compat v1.0.0
Downloaded cc v1.0.73
Downloaded memchr v2.4.1
Downloaded dirs-sys v0.3.7
Downloaded hashlink v0.7.0
Downloaded fallible-streaming-iterator v0.1.9
Downloaded bech32 v0.8.1
Downloaded futures v0.1.31
Downloaded itoa v1.0.1
Downloaded fallible-iterator v0.2.0
Downloaded smallvec v1.8.0
Downloaded serde_derive v1.0.136
Downloaded object v0.28.3
Downloaded proc-macro2 v1.0.37
Downloaded sodiumoxide v0.2.7
Downloaded miniz_oxide v0.5.1
Downloaded proc-macro-crate v0.1.5
Downloaded unicode-xid v0.2.2
Downloaded rand_core v0.5.1
Downloaded rustc_version v0.2.3
Downloaded subtle v2.4.1
Downloaded secp256k1-sys v0.4.2
Downloaded hashbrown v0.11.2
Downloaded byteorder v1.4.3
Downloaded ed25519 v1.4.1
error: failed to compile `revaultd v0.3.1 (/revaultd)`, intermediate artifacts can be found at `/revaultd/target`
Caused by:
failed to parse manifest at `/usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/ed25519-1.4.1/Cargo.toml`
Caused by:
failed to parse the `edition` key
Caused by:
supported edition values are `2015` or `2018`, but `2021` is unknown
Error: error building at STEP "RUN cargo install --path .": error while running runtime: exit status 101
Container file is just:
FROM docker.io/rust:1.43 as builder_revaultd
WORKDIR /revaultd
COPY . .
RUN cargo install --path .
Which porbably means that the README is incorrect:
Line 49 in 457ff85
I'm not sure how important that is to you guys but I figured I'd point it out.
darosior commented
Thank you for raising this. The ed25519
crate recently bumped their MSRV (in a minor version...). We therefore need to pin it.
Looks like cargo install
ignores the Cargo.lock
? It is pinned to 1.2.0
in the Cargo.lock so i don't have any issue building with 1.43 locally with:
git fetch upstream && git checkout upstream/master && cargo clean && cargo +1.43 build
I'm not sure how important that is to you guys but I figured I'd point it out.
It is important for a number of reasons, but primarily:
- to be able to use a compiler vouched-by and released in decent package managers (current Debian stable is 1.48 so we have some margin)
- to be able to use an alternative compiler, such as
mrustc
(which was recently upgraded to support 1.54, so here again we have some slack) - for bootstrap-able builds that are a goal to have for this project. Bootstrapping the compiler is part of this (see point 2.) and we therefore don't want to depend on bleeding-edge features.