oxidecomputer / oxidecomputer/helios
`gmake setup` fails due to "unstable features" in pilot
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 481
- Forks
- 21
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 2
Description
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.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with Makefile:42 and the gmake setup path that runs cargo build --locked --release; then inspect racktest/driver/src/runcmd.rs:68 and the reported Rust 1.65 failure. Review the repository's reproducibility constraints before deciding how version incompatibilities should be detected or reported. Done means setup provides an actionable outcome rather than failing unexpectedly on an unsupported compiler.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system, developer-experience
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100