oxidecomputer / oxidecomputer/helios

disallow cargo-driven Rust tool updates during build

Open
#53 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
481
Forks
21
Avg merge
1d 17h
Merged PRs (30d)
2

Description

Using the rust-toolchain.toml feature in repos containing Rust code is a good way to make sure the right/expected toolchain gets used when building it (unless you're a library in which case haha fuck you!!!). But it also induces cargo to invoke, in some manner, rustup if you don't have that toolchain installed, which modifies the build environment. For anything we're going to ship to a customer, we definitely don't want rustup on the machine at all, and we certainly don't want the user doing the build to be able to invoke it. But we do -- I would expect -- want this toolchain version checking for repos that request it. This leads to the conclusion that we probably want to make sure we enumerate the set of toolchains that are expected to be used ourselves, and cut rustup out of the picture entirely. If we don't have the right toolchains, we should fail.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by examining how rust-toolchain.toml is handled during builds and where Cargo can invoke rustup. Define the expected toolchain set and the failure behavior when a required toolchain is unavailable, then verify that builds do not modify the environment or depend on rustup.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.