oxidecomputer / oxidecomputer/omicron
thing-flinger has some hard-coded assumptions that are not universally true
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
-
The assumption that rustup modified
$HOME/.profileis not universal; I think this is dependent on how the remote machine installed rust:
https://github.com/oxidecomputer/omicron/blob/2103a5f8bfe2ea03a272db92651b01bd1a1c972f/package/src/bin/thing-flinger.rs#L527-L529 -
The "build", "package", and "check" commands attempt to perform a
git checkout- I don't think we should assume that the remote filesystem is a git repository (it doesn't seem necessary here, and modifying which commit a user is operating on as a part of their build process seems bug-prone). As an example, I have traditionally rsync'd all files except my.gitrepository when developing between multiple machines.
- The choice of "debug" seems hardcoded in several spots (see:
target/debugvstarget/release) - it would be nice to have this be configurable
Contributor guide
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 in package/src/bin/thing-flinger.rs, inspecting the rustup profile handling around lines 527-529, the git checkout operations around lines 198, 222, and 239, and the hard-coded debug paths. Trace the build, package, and check commands first. Done means these commands no longer rely on those remote-environment assumptions and the debug/release choice is configurable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, tooling
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100