oxidecomputer/helios

`gmake setup` fails due to "unstable features" in pilot

Opened this issue · 2 comments

The helios repo does not use a rust-toolchain file to specify a rust version to use. As a result, if folks use features that are in newer rust versions then folks who do not actively use rustup / cargo will be broken. This has happened again in pilot:

Jun 20 15:14:00.102 INFO E| Compiling racktest-driver v0.0.0 (/home/rm/src/apob/projects/pilot/racktest/driver)
Jun 20 15:14:00.942 INFO E| error[E0658]: use of unstable library feature 'map_first_last'
Jun 20 15:14:00.942 INFO E| --> racktest/driver/src/runcmd.rs:68:50
Jun 20 15:14:00.942 INFO E| |
Jun 20 15:14:00.942 INFO E| 68 |         while let Some((_, ent)) = i.rc_inflight.pop_first() {
Jun 20 15:14:00.942 INFO E| |                                                  ^^^^^^^^^
Jun 20 15:14:00.942 INFO E| |
Jun 20 15:14:00.942 INFO E| = note: see issue #62924 <https://github.com/rust-lang/rust/issues/62924> for more information
Jun 20 15:14:01.011 INFO E| For more information about this error, try `rustc --explain E0658`.
Jun 20 15:14:01.058 INFO E| error: could not compile `racktest-driver` due to previous error
Jun 20 15:14:01.058 INFO E| warning: build failed, waiting for other jobs to finish...
Error: exec ["cargo", "build", "--locked", "--release"]: failed ExitStatus(unix_wait_status(25856))
gmake: *** [Makefile:42: setup] Error 1

The problem is that I do not regularly run rustup and therefore I'm on 1.65 without a rust-toolchain or other way of enforcing it. I realize that we have chosen not to use the rust-toolchain as part of an effort around reproducibility in other environments (I think?) or to avoid surprise downloads. But I think we need a better way of knowing that this has happened and to send up a heads up that's not surprise you're broken.

For context it appears this was added in 1.66.

NB: I have added a rust-version directive to the crate that is failing to build there in https://github.com/oxidecomputer/pilot/commit/d9a75526e81678021fa97aa7f00400eee896e004